• No results found

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