Despite the initial success of line labelling methods, the limitation to polyhedra with trihedral junctions has proved a problem. Real engineering objects are often not tri-hedral (Figures 1.1 and 1.2 on page 2 are not). Of the 85 test drawings adapted from engineering drawing textbooks [128, 129, 194], 53 are trihedral, 29 are tetrahedral, one (Figure B.478, page 329) is pentahedral and one (Figure B.471) is hexahedral (it is also extended trihedral). In practice, pentahedral vertices encountered in en-gineering objects are usually all-convex, as in Figure B.177. Hexahedral vertices are more common but are usually either all-convex or alternating as in Figure 4.6 (page 55). Figure B.402 is the only occurrence of an extended tetrahedral vertex in the test drawings. It is therefore worthwhile investigating the full tetrahedral vertex catalogue, while recognising that the pentahedral, hexahedral and extended tetrahedral vertex catalogues are of little interest in this application domain.
4.3.1 Generating the Tetrahedral Catalogue
My aim here is twofold: to derive the complete catalogue of junctions which may appear in line drawings of polyhedra with tetrahedral vertices, and to arrange this catalogue such that all of the possible junction types which can occur in views of a single underlying vertex type are grouped together. The method used is to divide space into regions by creating four planes which intersect at the origin, consider all sensible combinations (see below) of full and empty regions, and observe the central vertex from all empty regions. This is first expressed as an algorithm, with implementation details being described subsequently.
• Split the Gaussian sphere into regions by creating four planes through the origin.
• Repeat for each combination of solid and empty regions which meet the criteria for a valid single polyhedral object
– View the central vertex from one viewpoint located in each empty region.
For each view:
∗ Count the number of visible edges (if the ray from the intersection of the
edge with the Gaussian sphere to the viewpoint passes through a solid region, the edge is not visible)
∗ Determine the orientation of the visible edges, and order them clockwise
∗ For each visible edge, determine whether it is concave, convex, clockwise-occluding or anticlockwise-occluding.
∗ Derive the junction label from the number of visible edges and the edge types
– Output the set of junction labels for the different viewpoints of this vertex as a single group
As with the Clowes-Huffman procedure for trihedral vertices, it is the topology of the chosen planes which matters, not the geometry. For simplicity, three of the planes can be chosen to be the three axial planes. There are two distinct possibilities for the fourth plane: its normal may be in one of the axial planes (this subdivides space into twelve regions and creates K-type junctions), or not (this subdivides space into fourteen regions and creates X-type junctions). The two cases are treated separately. For simplicity, the fourth planes can be chosen to be X + Y = 0 for the former case and X + Y + Z = 0 for the latter.
A combination of solid and empty regions is valid providing it meets the following criteria:
• at least one region must be solid
• at least one region must be empty
• the solid regions must be contiguous, in order for the solid to be manifold
• the empty regions must be contiguous (to exclude degenerate vertices such as those which could be produced by interpreting Figure B.81)
• points and edges may not be degenerate (e.g. the four regions viewed cyclically about an edge may not be solid-empty-solid-empty, as this would produce two degenerate edges)
• none of the planes may divide the sphere into an entirely solid part and an entirely empty part (there would be no vertex to see)
If the object is not viewed from a general viewpoint, an accidental collinearity of lines could cause (for example) W -junctions and Y -junctions to be misclassified as T -junctions. As a precaution against this, the viewpoints chosen for each empty region are offset from the centre of the region by different amounts along the three axes.
In the same way that the method for cataloguing trihedral vertices also produces some, but not all, tetrahedral and higher vertices, the approach described above produces some, but not all, pentahedral and higher vertices. In particular, the most useful of these, the ones likely to appear in line drawings (convex and all-concave), are not generated. The extra vertices generated were discarded and are not listed below. In order to provide reassurance that the program implementing this approach was working correctly, the trihedral vertex results were kept and are listed also below; they correspond exactly to the Clowes-Huffman trihedral junction catalogue.
4.3.2 The Tetrahedral Junction Catalogue
Table 4.1 shows the complete tetrahedral junction catalogue (for comparison, Table 4.2 shows the equivalent trihedral junction catalogue). The columns list: the vertex type; the junction labels which can be produced by viewing this type from different viewpoints; and an appendix section which contains drawings illustrating the vertex type. The results are listed in the following order:
• X-type underlying vertex
• M-type underlying vertex
• K-type underlying vertex (and K*—see Chapter 2.4.1)
Within each section, the groups of junction types are listed in order of increasing concavity of the underlying vertex type.
In some cases, the underlying vertex type has chirality. In such cases, the groups of junction types for the “left-handed” and “right-handed” versions are shown sep-arately. Where the underlying vertex type has no chirality only one group is shown even where the illustrative solid is chiral—it may be reversed without affecting the
Vertex Type Junction Types Section
Xcccc Xcccc, Mbcca, Wbca, Lba E.2.1
Xcccd Xcccd, Mbcda, Mbdca, Yabc, Yabd, Yacc, E.2.2 Ybcc, Wbaa, Wbba, Wbca, Wbda, Lba
Xcdcd Xcdcd, Yacd, Ybdc, Yabd E.2.3
Xcddd Xcddd, Yadd, Ybdd E.2.4
Xdddd Xdddd E.2.5
Mccdc Mccdc, Xabcd, Yaab, Yabd, Wcab, E.2.6 Wcac, Wccb, Lac, Lcb, Lab
Mcdcc Mcdcc, Xabdc, Yabb, Yabd, Wabc, E.2.7 Wcbc, Wacc, Lcb, Lac, Lab
Mcddc Mcddc, Xabdd, Wadc, Wcdb, Lac, Lcb, Lab E.2.8 Mdccd Mdccd, Wbcd, Wdca, Lba, Lbd, Lda E.2.9
Mcdcd Mcdcd, Yabd, Yacd, E.2.10
Wcda, Wcbd, Wacd, Wabd, Lbd, Laa
Mdcdc Mdcdc, Yabd, Ybdc, E.2.11
Wbdc, Wdcb, Wdab, Wdac, Lda, Lbb
Mddcd Mddcd, Yadd, Wdbd, Wdda, Lbd E.2.12
Mdcdd Mdcdd, Ybdd, Wdad, Wbdd, Lda E.2.13
Kcccd Kcccd, Kabcd, Yabd, E.2.14
Taba, Tbca, Tbcc, Tcca, Iab
Kccdc Kccdc, Kabdc, Yabd, E.2.14
Tabb, Tcab, Tcac, Tccb, Iab
Kcdcd Kcdcd, Ybdc, Yabd, Tbda, Tbdc, Tcda E.2.16 Kdcdc Kdcdc, Yacd, Yabd, Tdab, Tdac, Tdcb E.2.17 Kcdcd* Wdcb, Wdab, Tbda, Tbdc, Lda, Lbb E.2.18 Kdcdc* Wacd, Wabd, Tdab, Tdac, Lbd, Laa E.2.19
Kddcd Kddcd, Tdda, Ybdd E.2.20
Kdcdd Kdcdd, Tddb, Yadd E.2.21
Table 4.1: Junction Catalogue
Vertex Type Junction Types Section
Yccc Yccc, Wbca, Lba E.1.1
Wcdc Wcdc, Yabd, Lcb, Lac, Lab E.1.2
Wdcd Wdcd, Lda, Lbd E.1.3
Yddd Yddd E.1.4
Table 4.2: Trihedral Junction Catalogue
results. Most M -type underlying vertices and all K-type are chiral; two M -type and all X-type are non-chiral.
Tables 4.3–4.9 on page 67 list all junction labels and underlying vertex types identified by RIBALD—the full trihedral, extended trihedral and tetrahedral junc-tion catalogues, and all-convex and all-concave pentahedral and hexahedral vertices.
The method described above not only gives the catalogue, but (since it lists the combination of solid and empty regions which gave rise to each junction label) it also gives the information necessary to create an example solid which illustrates each vertex type and junction label. These illustrative solids are shown in Appendix E.
The solids illustrating the trihedral catalogue are built from cubes, although non-axially-aligned trihedral polyhedra generate the same junction types. The solids illustrating the X-type and M -type tetrahedral vertices are built from cubes, tri-angular pyramids (obtained by choosing a pyramid vertex and slicing a cube in the plane of the three vertices adjacent to the pyramid vertex—Figure 4.25 is built from a cube and such a pyramid) and shapes termed oojits (that which is left after re-moving a triangular pyramid from a cube—see Figure 4.26). The solids illustrating the K-type tetrahedral vertices are built from cubes and wedges (obtained by slicing cubes along the plane of diagonally-opposed edges).
Figure 4.25: Cube plus Pyramid Figure 4.26: Oojit
Junction Label Vertex Types Junction Label Vertex Types
Kabcd Kcccd Kabdc Kccdc
Kcccd Kcccd Kccdc Kccdc
Kcdcd Kcdcd Kdcdc Kdcdc
Kddcd Kddcd Kdcdd Kdcdd
Table 4.3: K-type Junction Labels
Junction Label Vertex Types
Laa Mcdcd, Kdcdc
Lab Wcdc, Mccdc, Mcdcc, Mcddc
Lac Wcdc, Mccdc, Mcdcc, Mcddc
Lba Yccc, Xcccc, Xccccc, Xcccccc, Xcccd, Mdccd
Lbb Mdcdc, Kcdcd
Lbd Wdcd, Mdccd, Mcdcd, Mddcd, Kdcdc
Lcb Wcdc, Mccdc, Mcdcc, Mcddc
Lda Wdcd, Mdccd, Mdcdc, Mdcdd, Kcdcd Table 4.4: L-type Junction Labels
From the catalogue, it can be seen that whereas there are only 4 basic trihedral vertex types, there are 19 basic tetrahedral vertex types (5 X-type, 8 M -type and 6 K-type). In the trihedral case, excluding T -junctions, there are 12 possible valid junction labellings (14 if different viewpoints of equivalent Y -type junctions are counted separately); in the tetrahedral case, there are 91 possible valid junction labellings (127 if different viewpoints of equivalent Y -type and X-type junctions are counted separately). Of the 64 conceivable labellings for a Y -junction, only 5 are valid in line drawings of trihedral objects, but 32 are valid in line drawings of tetrahedral objects. The number of valid W -junction labellings increases from 3 to 28, and the number of valid L-junction labellings increases from 6 to 8. In the trihedral case, each junction label identifies the underlying vertex type (the number of concave edges) directly, but in the tetrahedral case, 73 of the junction labels identify the underlying vertex type (the total number of edges, the number of concave edges and the chirality) unambiguously but 18 do not, the worst being the Y abd junction type, for which there are 11 possible interpretations.
Junction Label Vertex Types Mbcca Xcccc, Xccccc, Xcccccc
Mbcda Xcccd
Mbdca Xcccd
Mccdc Mccdc
Mcdcc Mcdcc
Mcddc Mcddc
Mdccd Mdccd
Mcdcd Mcdcd
Mdcdc Mdcdc
Mddcd Mddcd
Mdcdd Mdcdd
Mbccca Xccccc
Table 4.5: M -type Junction Labels
Figure 4.27: Non-Trihedral
Figure 4.28: Non-Trihedral
Figure 4.29: Non-Trihedral
The level of ambiguity has effects both on the speed of applications using the tetrahedral junction catalogue and its usefulness in identifying three-dimensional structure. To illustrate the former, RIBALD takes about 12 seconds to produce all of the valid labellings for the line drawings in Appendix B.2.3, compared with 1/3 of a second to label the same number of trihedral line drawings. To illustrate the problem, the line drawings in Figures 4.27, 4.28 and 4.29 have, respectively, 16, 240 and 10206 valid tetrahedral labellings, whereas the apparently more complex
Figure 4.30: Trihedral Figure 4.31: Trihedral Figure 4.32: Trihedral
Junction Label Vertex Types Junction Label Vertex Types
Taba Kcccd Tabb Kccdc
Tbaa occlusion Tbab occlusion
Tbac occlusion -
-Tbad occlusion -
-Tbca Kcccd Tcab Kccdc
Tbcc Kcccd Tcac Kccdc
Tbda Kcdcd, Kcdcd*, Zcdcd* Tdab Kdcdc, Kdcdc*, Zcdcd*
Tbdc Kcdcd, Kcdcd*, Zcdcd* Tdac Kdcdc, Kdcdc*, Zcdcd*
Tcca Kcccd Tccb Kccdc
Tcda Kcdcd Tdcb Kdcdc
Tdda Kddcd Tddb Kdcdd
Table 4.6: T -type Junction Labels
trihedral Figures 4.30, 4.31 and 4.32 can be labelled unambiguously.
A final problem, not found in the trihedral object world, is illustrated in Fig-ure 4.33. K-type tetrahedral junctions can vanish if viewed from the wrong orient-ation! There is no way of detecting the presence of a vertex from the junction-line graph (although this does not affect the labelling itself). No such phenomenon can occur with trihedral polyhedra.
Figure 4.33: Vanishing K-type tetrahedral junction [175]
A candidate set of 16 possible labellings can be processed in a reasonable time in interactive applications such as RIBALD, and even 240 might not be considered excessive for some applications. If a first-choice interpretation is required, the prob-lem of picking the “correct” one is not insoluble. For drawings such as Figures 4.27 and 4.28, where the number of possible interpretations is moderate, it seems reas-onable to attempt to validate each possible interpretation by attempting to create the corresponding frontal geometry and validating the result geometrically.
Junction Label Vertex Types Junction Label Vertex Types
Wabc Mcdcc Wcab Mccdc
Wabd Mcdcd, Kdcdc* Wdab Mdcdc, Kcdcd*
Wacc Mcdcc Wccb Mccdc
Wacd Mcdcd, Kdcdc* Wdcb Mdcdc, Kcdcd*
Wadc Mcddc Wcdb Mcddc
Wbaa Xcccd Wbba Xcccd
Wbca Yccc, Xcccc, Xcccd -
-Xccccc, Xcccccc
Wbcd Mdccd Wdca Mdccd
Wbda Xcccd -
-Wbdc Mdcdc Wcda Mcdcd
Wbdd Mdcdd Wdda Mddcd
Wcac Mccdc Wcbc Mcdcc
Wcbd Mcdcd Wdac Mdcdc
Wcdc Wcdc -
-Wdad Mdcdd Wdbd Mddcd
Wdcd Wdcd -
-Table 4.7: W -type Junction Labels