Boundary modelling with special representations lan Stroud
Since the original boundary-representation modelling techniques were developed, a number of special techniques have been developed to extend the range of objects which can be represented. The paper examines the three common types of special representation: nonmanifold models, degenerate models and partial models. The three types are useful in different circumstances because they have different basic properties, but it is not entirely clear when a particular type should be used. The paper compares the different representations, and describes various implications for modelling algorithms when they are applied to special models or model parts.
•
•
Keywords: local operations, nonmanifold models, degeneracy •
MANIFOLD, NONMANIFOLD, DEGENERATE AND PARTIAL MODELS One of the original conditions for B-rep models (see, for example, Reference 1) was the manifold condition, i.e. that, at any point on an object, a small enough sphere would cut the surface of the object in a figure that was homeomorphic to a disc. While this condition is necessary if the object is to be thought of as a connected set of points, it is not absolutely necessary for performing modelling operations. Various types of special representation which do not conform to the manifold condition have been used in various modelling systems. The three types represent additional facilities for users, but also extra special cases which have to be handled by modelling operations. The purpose of this paper is to compare the types and to explain how these can be interpreted during modelling to explain how special models and model parts are possibly interpreted during modelling. Three common types of representation are used to handle special cases in boundary-representation solid modelling, These are as follows: GeometricModellingLaboratory, Computer and AutomationInstitute Hungarian Academy of Sciences, H-1518 Budapest XI, PO Box 63, Kende Utca 13-17, Hungary Paper received" 3 October 1992. Revised." 23 June 1993
Partial models." Partial models are partially complete.
One 'side' is completely defined, topologically and geometrically, and the other side is either topologically defined but geometrically meaningless, or not even defined topologically. These were used, for example, in the BUILD system as representations for swept wire objects (see Reference 2). They are also supported by the ACIScommercial modelling system. Degenerate models." These are completely defined Eulerian models, but elements are allowed to coincide. These were used as special representations of idealizations of thin plate models in the G P M Volume module (see, for example, Reference 3 or Reference 4). Nonmanifold model: These are models that allow multiple faces meeting at an edge. In the same way as the degenerate models, above, these are completely defined, but coincident edges and vertices are merged (see, for example, Reference 5, Reference 6 or Reference 7).
These three types have different characteristics, and hence are useful in different ways. •
•
Partial mode&." With partial models, one 'side' is completely defined, geometrically and topologically. The other side is either missing, or consists of a single face with undefined geometry. This means that the model is smaller, in terms of computer-memory requirements, than the other types. It is useful for representing surfaces and parts of models 'pulled off' for some reason, e.g. features. Because one side of the model is undefined, that side and the edges bordering the undefined region have to be treated specially. The interior of the defined region can be treated as 'locally manifold', that is, it can be treated as though there were solid material behind it. This makes it possible to perform local operations and even Boolean operations on such models. Partial models are, by definition, flat, or in an unclosed form consisting of many flat elements. Degenerate models." These are useful for representing idealizations and temporary results. These are very similar to "normal' volume models, except that, at some points, a small enough sphere cuts the object boundary in a figure that is homeomorphic to a pair of discs. Alternatively, if the object is 2D or has 2D
0010-448519410710543-08Q 1994 Butterworth-Heinemann Ltd Computer-Aided Design Volume 26 Number 7 July 1994
543
Boundary modelling with special representations: I Stroud
/ el e2 ~ e ~
e3
... eB~~e3
el
L e12 i elO j
TOP
e2
el
NO
e12
e2
Lta., e11 e5 eS NON-MANIFOLD
e2
[ ~ 1 2 ~
ol 013
BOT'fOM
one pair on either side of the object. The central verte_~ is a "nonmanifold vertex" The two figures in the centre show a degenerate-modcl version of the shape. In this type of model, each edge is adjacent to two faces only, and so the internal edges on the top, 9, 10, 11 and 12, are matched by four other edges on the bottom, 13, 14, 15 and 16. The vertex at the centre is also duplicated. For the partial model, shown on the right at the bottom, one side is undefined, and so the four internal edges 9, 10, 11 and 12 are adjacent to two faces only, but they have no matching edges on the other side. The bottom of the model is undefined, topologically ,~r geometrically.
e2
0
e3
~:~ ! /
el6
e5 e6 DEGENERATE
e5 e6 PART[N_
Figure l Nonmanifold, degenerate and partial models
parts, the sphere cuts the boundary in a figure that is homeomorphic to a folded disc. These were used in the G P M Volume module as a representation for idealizations of thin plate objects (see, for example, Reference 4).Such objects were flattened shapes, but the technique can be extended to cover cases where parts of volumetric objects are allowed to coincide. As with the partial models, degenerate models are locally manifold, and so local operators can function as they do with volumes, although some extra special cases need to be considered. Degenerate model parts can be flattened shapes, or parts of volumetric models. Nonmanifold models: With nonmanifold models, coincident parts of models are merged so that more than two faces can meet at an edge, unlike partial and degenerate models, where only two faces may meet at any edge. At each edge there can be an even number of faces which meet, for a nonmanifold model where only volumetric parts touch, or possibly an odd number if partial-manifold and nonmanifold models are combined. This was achieved using a so-called 'radial edge' structure (developed by Weiler), where each edge has a set of l o o p ~ d g e links arranged round it instead of a pair of edge-loop pointers. An advantage of radial-edge-type mechanisms is that matching parts of the model can be linked, retaining the information that they match. However, the role of nonmanifold representations and modelling operations is not well defined. Luo ~ describes Boolean operations for nonmanifold models. Nonmanifold model parts have a similar role to that of degenerate models, i.e. they can be used for flattened shapes, or for parts of volumetric objects.
Figure 1 shows how the three model types represent a flat-plate object, shown at the top of the figure. The two figures on the left at the bottom show the top and bottom of a nonmanifold representation. The edges in the middle, labelled 9, 10, 11 and 12 and drawn with a heavier rule, are nonmanifold edges appearing on both sides of the object. Each edge is adjacent to four faces,
544
Computer-Aided Design Volume 26 Number 7 July 1994
CONVERSIONS BETWEEN REPRESENTATIONS
SPECIAL
For flat objects, all three representations are approximately equivalent, in that conversions can be madc between them, though this requires varying amounts of work. Similarly, nonmanifold and degenerate parts of volumetric models are also approximately equivalent. The conversions are outlined belong.. The purpose of explaining how conversions arc carried out is to demonstrate the extent of interchangeability between the representations.
Nonmanifold model to degenerate model Radial-edge structures can bc ,:onverted to, ii~eil degenerate-model equivalents b? inserting new edges, duplicating the single nonmanifold edge, and splitting vertices, if appropriate. If there is an even number of edge-loop links around the radial edge, they can be grouped into adjacent pairs and assigned to new edges, and the end vertices of the original edge can be split if the new edges form two or more adjacent edge sets. If there is an odd number of links, then it can be more difficult to associate the links correctly, and so this type of structure is ignored here. The problem is that there are two ways of grouping the links according to whether the edge is to represent a break in material or an infinitely thin section. A thin-plate nonmanifold model could be considered as a joined whole or as a set of separate parts, depending on the context, and the operation which is to be applied.
Nonmanifoid model to partial model Nonmanifold models can be converted into partial models in a manner similar to the way that they are converted to degenerate models, but only one pair of links (or possibly only a single link at model boundariest is required in the final model. The conversion processes are shown in Figure 2. Two examples of nonmanifold models are shown at the top of the figure, and possible degenerate- and partial-model equivalents are shown underneath. In the example on the left of the figure, the four nonmanifold edges, edge 5, edge 11, edge 12 and edge 8, are copied, and the new edges are inserted into the model when converting to a
Boundary modelling with special representations: I Stroud
Degenerate model to partial model
NON-HANIF(I,.D ~ L 1
In its simplest form, this involves 'losing' the edges, faces and vertices from one side of the degenerate model. However, the complication is that it is not clear which side is to be removed, and which should stay. If the sides of the degenerate model are different, then they can be coalesced so that the resultant model has all the details of both sides, but some extra operational parameter must be supplied to determine which part of the degenerate model to remove (see FixTure3).
I
I
Partial model to nonmanifold model PARTIAL
This conversion can be done by 'growing' faces on the undefined side of the partial model by creating matching faces to the faces on the defined side of the model. The matching edges can then be merged to create the final nonmanifoid model (see Figure 4).
I
1 not appUcable
Partial model to degenerate model
~3 6t"2-~
i,12 I
Figure 2 Nonmanifold model conversion
degenerate model. However, as mentioned above, the nonmanifold model is ambiguous, and so there are two interpretations of the result, either as a connected model or as a set of four disconnected elements. For partial models, as shown at the bottom of the figure, there are three possible interpretations of the nonmanifold model according to how edge-loop links at the edge are decomposed into pairs. In the figure on the right, showing two cubes joined along a nonmanifold edge, the degenerate representation can be created, as before, by duplicating the nonmanifold edge and moving one pair of loop-edge links to the new edge. As before, the ambiguity of the nonmanifold representation means that there are two interpretations of the resulting structure, either as one object with an infinitely thin 'neck', or as two touching objects. There is no equivalent representation for partial models.
Degenerate model to nonmanifold model
As with the previous conversion, faces on the undefined side of the partial model need to be created that match the faces on the defined side of the model. However, the final step, above, of merging matching edges is not needed. MODELLING OPERATIONS ON SPECIAL MODEL TYPES The descriptions of the effects of modelling operations on special model types is based on algorithm descriptions by Stroud 8, except for blending and chamfering. ' DEI3ENERATE NOltL I
2
3
1
NON-MANIFOLD MOOEL 2
~ARTIAL MODEL 5
Converting degenerate models to nonmanifold models is more difficult than converting the other way, because the edges on both sides of the degenerate model must be made to match (by imprinting, or some such method) before the conversion can take place. Once the edge sets on both sides of the model do match, the conversion simply involves scanning through all the interior edges, joining them with any other matching edges. A geometric test is needed if three or more matching edges exist to determine the correct ordering of the loop-edge links in the radial structure round the edge (see Figure 3).
4
I
3
Z
"13
I/*
1
Figure 3 Degenerate model conversion
Computer-Aided Design Volume 26 Number 7 July 1994
545
Boundary modelling with special representations: I Stroud
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i) Figure 4 Partial model conversion
Figure 5
Chamfering a similar edge in a degenerate model is not a problem, because the interpretation is clear, although it is necessary to chamfer both matching edges, or edge sets to get a similar effect. However, chamfering an edge in a degenerate sheet model can cause different problems. Examples of the kind of problem that can occur are shown in Figure 6. If the edge to be chamfered is convex (see Figure 6a), then the first chamfer will actually leave a negative volume as part of the sheet model (see Figure 6b). Chamfering a matching edge restores the sheet model, but care must be taken to avoid leaving degenerate faces bounded by coincident edges at the ends of the chamfer edge (see Figure 6c). If the edge to be chamfered is concave (see Figure 6d), then the intermediate model will have ~ positive volumetric subpart (see Figure 6e), and the sheet model can be restored by chamfering the matching convex edge (sec f7,qure 6t), and then merging the duplicate edges. If the edge being chamfered has no single matching edge, as in Fiqure 7, then the process of restoring the sheet model can be difficult. When chamfering matching edges, as above, the process can be simulated by applying a suitably general chamfer operation to both parts, leaving the model as a degenerate sheet object. To avoid problems, therefore, it is preferable to perform a preprocessing step and, if the edge to be chamfered is not matched, then modify the object so that it is, and apply the chamfer operation to the new matching edge as well. At the very least, applying this kind of modelling operation to specialized model types can cause a lot of extra 'housekeeping" work, as volumetric subparts are created and removed. For idealized models, therefore, it is better to use special tools, possibly built from standard shape-manipulation operations, but directed to maintain the model as an idealization. Chamfering edges in partial models is much easier, since they behave as edges in solids. However, some care may be needed if the vertices of the edge are adjacent to the boundary of the partial model if that boundary is to
Chamfering a nonmanifold edge
t-z
x
Chamfering has been described by Braid 2. This section describes what happens when general modelling operations are applied to special models or model parts. It is possible to create specialized operations which provide different results, but these are usually more strictly defined than the general operations described here.
Blending and chamfering Figure 5 shows the effect of chamfering a nonmanifold edge. There are two interpretations of the operation, according to whether the edge is interpreted as a place where two parts just touch, or whether they just miss each other. There is not the same problem with degenerate or partial models, because edges are not ambiguous, although there are different problems with these models.
546
Computer-Aided Design Volume 26 Number 7 July 1994
chamferedge~ (d)
(e)
\ if)
Figure 6 Chamfering edge in degenerate sheel modei
Figure7 Chamferingunmatched edge in degenerate sheet model
Boundary m o d e l l i n g with special representations: I Stroud
rNON-MANFO!_DMODEL
SWEEPUP
SWEEPDOWN
3 1 ~ T E MODEl_
SWEEPUP
SWEEPDOWN
Figure 8 Sweeping faces with nonmanifold and degenerate edges
remain fixed, i.e. if it is a portion of a model which has been 'pulled off' and which is expected to be glued back subsequently. For idealizations of thin-plate objects, the side edges in nonmanifold, degenerate or partial models must be handled specially. In simple model terms, it does not make sense to chamfer these edges, but this can be interpreted logically as meaning that the degenerate faces corresponding to these edges are to be modified in some way. As described above, modelling with idealized models requires special consideration to maintain the validity of the idealization. Chamfering is strongly related to blending, and hence similar considerations exist for blending.
Sweeping The effects of sweeping a face adjacent to a nonmanifold edge and a face with a degenerate edge are shown in Figure 8. For a nonmanifold model, the edges round the face can be preprocessed and converted into degenerate edges before sweeping. This means that the 'special' edges are removed and the face becomes locally manifold, so that the standard sweep operation can be applied. The potential ambiguity in the conversion can be resolved by interpreting the effect of the operation. In the example, the manifold edge is interpreted as concave if the face is to be swept upwards, and convex if the face is to be swept downwards. This means that, when sweeping downwards, the object is first split into two separate objects, as shown. In the equivalent degenerate model, there is no information that an edge adjacent to the face is special in any way. Sweeping upwards, therefore, produces the same result as with a nonmanifold object, but sweeping downwards leads to a strange object with two volumetric parts connected by a sheet part. Both the above interpretations of the effect of the downward sweep are justifiable, perhaps somewhat surprisingly. The interpretation where the objects are separated has the advantage that the result is a valid set of volumetric models. The interpretation of the sweep as leaving a sheet connecting section is easier to repair than the interpretation where the result is returned as two separate objects. With only a little effort, it is possible to restore the original single object from the separate
objects, should this be required, and it is also possible to annihilate the sheet section and change the degenerate interpretation into two separate volumetric parts. The problem is not one of one particular interpretation being better, since different implementers are almost bound to have different ideas about what is 'better', but it concerns the fluency of use of this kind of special case. Since either interpretation is possible, it means that the user has to be aware of what the different edge representations, degenerate or nonmanifold, are, and to be aware of how the modelling system will react, for any particular case. For a partial model, face sweeping is the same as face sweeping in volumetric models, since partial models behave locally as volumetric models. The outermost edges of the partial model should be classified as 'static', that is, they would be fixed. Sweeping wires, that is, simple edge sequences with no attached faces, to create degenerate models is dealt with in References 4 and 8. The algorithm creates a sheet object with back-to-back faces, duplicating edges on the front and back of the object. The sweep process for creating either nonmanifold or partial models from wire models is similar. To create a nonmanifold object, the matching edges can be created and then merged, or, alternatively, instead of creating complete duplicate edges, extra pairs of edge-loop links can be created. The BUILD system 2 created partial models from open, nonbranching wires (since closed wires automatically became lamina). However, it is not clear whether it is valid to generate partial objects in this way; it would seem better to create nonmanifold or degenerate swept models from wires. In any case, the process can be simulated by sweeping each edge separately to produce simple sheet models, and then joining them along coincident edges (corresponding to swept common vertices), as described in the next section, to produce the final model.
Joining and splitting along edges The effects of joining edges in nonmanifold, degenerate and partial models is summarized in Figure 9. Nonmanifold models are joined by merging their start and end vertices, and transferring the loop-edge links from one edge to the other. Vertex merging is done, basically, by modifying all the edges at one vertex so that they refer to the other vertex instead. The links of the edge to be deleted are simply inserted between one pair of loop-edge links of the other edge. The surviving edge will then have (at least) four loop~edge links. Note that, if the loop-edge links are arranged in pairs, then there
////#//// singlenclr-t~"~l edge
degelerafeedgepair
singtemanifoldedge
Figure9 Joining edges in nonmanifold, degenerate and partial models
C o m p u t e r - A i d e d Design Volume 26 N u m b e r 7 July 1994
547
Boundary modelling with special representations: I Stroud
/77 l /// duplicat~
spilt ed2e
Y
!
L_
z'
action taken is unclear; there is no guarantee that the chosen edge is matched by any edge. Where a degenerate representation is used as an idealization of a flat-plate object, then an unmatched edge could be projected onto the other side of the sheet object before splitting. In partial objects, the edge along which the object ~s to be split has to be projected onto the other, undefined side of the object and then a similar technique can be used to split the object. If the edge to be split is not adjacent to the partial object boundary, then this means, in effect, that a hole will be created through the ob.ject.
rearrange bop poi~ers
Planar sectioning split verli~
Figure10 Splittingmodelsalong nonmanifold,degenerateand partial edges are two ways of joining edges: as places where edges just miss each other, and as places where the objects just touch, i.e. where there is an implicit gap, and where there is an infinitely thin section of material. This suggests that there should really be two different types of joining operation so as to reflect the intention of the join. Edge joining in degenerate models is described in detail in Reference 8. Basically the process consists of merging the start and end vertices of the edge and then modifying the loop pointers of the edges. For example, if the edges are oriented in the same direction, the right loop pointers of the edges are swapped, preserving both edges on opposite sides of the object. Joining edges in a partial model is similar to the edge-joining process for edges in degenerate models, with an additional deletion of the edge on the undefined side of the object. The inverse operation of splitting an object along an edge is shown in Figure 10. When splitting a nonmanifold edge lying between four faces, i.e. with four loop-edge links, the process is similar to the task of converting the nonmanifold edge into a degenerate edge and then splitting along this edge. Converting the nonmanifold edge involves separating the links into appropriate pairs, duplicating the edge, and assigning one pair of links to the new edge. The vertices then have to be split so that separate edge sets belong to separate vertices. If there are more than four loop-edge links at the edge, then there is some ambiguity about the operation. Without extra information, it is impossible to tell which piece of object is to be split off, and hence the meaning of the operation can be taken as separating the object into several pieces at the edge. In practice, this involves the same sort of process; the loop-edge links are separated into pairs and assigned to new edges. The start and end vertices are then split, and each separate edge set is assigned to a separate vertex. Splitting along a degenerate edge involves, first, finding a matching edge or edges. Ideally, there should be a single matching edge for the edge to be split, although this is not guaranteed. Assuming that a matching edge can be found, it is necessary to swap one of the loop pointers from the edges and to split the start and end vertices, if necessary. If there is no single matching edge, then the
548
Computer-Aided Design Volume 26 Number 7 July 1994
The description here is based on what can be termed a "nose-following" section-seam insertion algorithm. This process involves finding a face on the intersection boundary, and then following the intersection seam round the body until it is completed. Creating the section seam for models with nonmanifold and degenerate edges is illustrated in Figure ] 1. Care must be taken when the section seam cuts through nonmanifoid or degenerate edges. With nonmanifold edges, the section seam splits into several pieces, corresponding to several section faces joined at a vertex. With the object shown in Figure lla. two cubes joined along a nonmanifold edge, the section seam is as shown in Figure t l c with two faces joined at a common vertex. With the equivalent object with a degenerate neck, i.e. with coincident edges on opposite sides of the model, as shown in Figure llb, the section seam bounds a single face, as shown in Figure I ld, which has two coincident vertices, Obviously it is desirable to merge these two vertices, but in general it is difficult to know whether or not the section seam has such degenerate parts without information that there are matching edges in the model. When a model is a sheet model then faces bounded by the section seam should be treated specially. When sectioning a nonmanifold sheet model, each face in the section plane will be bounded by two coincident edges lying on opposite sides of the object and running between the same two vertices. These two edges can either be merged to produce a single nonmanifold edge which can then be split, or split using a similar technique to that for splitting along degenerate edge pairs.
@ r ¸
/I
la)
ver~x
cot r l ~ m d ~
non-manifoldedge
corresponding I~
~W~va~ edge ~ [C)
L:!:;; V" '.t~l
1 i
1
!
(d)
Figure I I Planarsectioningof nonmanifoldand degenerate models
Boundary modelling with special representations: I Stroud
Figure 13 Addingcylinderto three special sheet-modeltypes
CONCLUSIONS
/o//o//o (a]
(b)
/ ([)
All three types of special representation have their uses in particular applications of boundary representation; the problem is to be consistent about how they are used. As a general guideline, the roles of the three special representations can be summarized thus:
Figure 12 Cylinder-specialsheet-model Boolean operations •
With a degenerate sheet model, the face or faces in the section seam are bounded by sets of coincident edges. Once the section seam has been created, the object can be split using the edge-splitting technique described in the previous section. With a partial sheet model, the section seam will consist of a single set of edges on the defined side which have to be 'projected' onto the undefined side to perform the split.
Boolean operations Boolean operations between volumetric models with or without nonmanifold edges or degenerate edge pairs involve considerations similar to those for sectioning. However, it is interesting to consider Boolean operations between volumetric models and special sheet representations. Perhaps the most appropriate type of sheet model for Boolean operations is the partial model, providing the Boolean-interaction boundary is limited to the interior. If it is, then the partial model behaves as though there were an infinite amount of material behind it. To illustrate this, consider the Boolean operations illustrated in Figure 12. This shows the result of creating the Boolean-interaction boundaries between the cylinder and the three special representation types described in this paper. The Boolean-interaction ring in the cylinder consists of a single set of simple edges in all three cases. For the nonmanifold model, the intersection ring consists of a circular nonmanifold edge (see Figure 12a). For the degenerate sheet model, the Boolean-interaction ring consists of a pair of circular edges, one on each side of the model. With the partial sheet model, the Booleaninteraction seam consists of a single simple circular edge. Problems come when uniting the objects to produce the final result. With the degenerate and nonmanifold models, the result is partially a sheet model and partially a volumetric model. With the partial model, the result is still a sheet model, since only one part of the cylinder is included in the final result (see Figure 13). As with chamfering, the inclusion of a volumetric part with a sheet model may lead to complications for other modelling operations, and it needs to be considered thoroughly.
• •
Partial models are suitable for representing surfaces and isolated object parts for a limited class of modelling operation. Degenerate models are suitable as idealizations of thin-plate models and for representing temporary stages in design. Nonmanifold models are suitable for applications, possibly for representing compound objects for process planning, or finite-element models.
It should be noted that nonmanifold models have strong connectivity information, but are potentially ambiguous for modelling. Degenerate models are complete and unambiguous, but larger than the other two types. Partially complete forms are more efficient, represenationally, than the nonmanifold or degenerate forms for representing a limited class of models and with a limited set of operations. It would be wrong to make a definitive statement that any of the three is superior to the others; they all have strengths and weaknesses, and all need special handling during modelling. Other general conclusions are that the nonmanifold data structure is, perhaps, the most complete data structure, because it does not preclude the use of partial or degenerate models. However, one advantage of nonmanifold representations is that associativity is recorded explicitly, and can be offset by adding an extra field to the standard B-rep edge and vertex structures to allow matching edges and vertices to be linked together into circular lists. This would mean that the problem of the ambiguity of interpretation of nonmanifold edges would be overcome, since degenerate models are unambiguous, while special cases could be identified more easily. The ambiguity of simple nonmanifold representaions can be overcome by using the kind of 'wedge-based' structure suggested by Lukacs and Luo 6, and having radial-edge links in pairs rather than having radial-edge links as a simple list. Although not illustrated here, similar ambiguity problems occur with nonmanifold vertices. Lukacs and Luo also proposed a 'loop equivalent' for vertices called a bundle for associating separate edge sets at vertices which may be useful for avoiding the ambiguity. The degenerate model equivalent is to add links between related vertices to allow matching vertices to be identified easily. Where the special model types are used to represent idealizations, there are problems about using standard modelling operations. In general, it is better to have specific modelling operations, possibly built on top of
Computer-Aided Design Volume 26 Number 7 July 1994
549
Boundary modelling with special representations: I Stroud
standard modelling operations, which can tidy up after the operation to ensure that the special representation conditions are maintained. It is helpful to be able to use automatic modelverification techniques to check whether models contain invalid parts, such as volumetric parts in sheet models, or degenerate faces bounded by pairs of matching edges. Such a facility would indicate possible problems and allow a human user to concentrate on particular parts, modifying them if necessary. ACKNOWLEDGEMENTS I would like to thank Tamas Vfirady, Renner Gfibor and my colleagues at the Computer and Automation Institute (SZTAKI), Hungary, for their support for this work. I would also like to thank Graham Jared of Cranfield Institute of Technology, UK, for many useful comments about this paper, and also about the dissertation on which it is based. I would also like to thank former colleagues at the Royal Institute of Technology, Sweden, where work on degenerate models was done, and at Cambridge University, UK. The research described in this paper was supported by the Hungarian National Science Foundation (OTKA), grant 4409. REFERENCES l 2
Baumgart, B G 'Geometric modelling for computer vision" Report AD/A-O02 261 Stanford University, USA (1974) Braid, I C 'Notes on a geometric modeller' CAD Group Document 101 Computer Lab., Cambridge University, UK (1979)
550
Computer-Aided Design Volume 26 Number 7 July 1994
3 Kjellberg, T A 'lntegrerad Datorsl6d f6r M/insklig Probleml6sning och M~insklig Kommunikation inom Verkstadsteknisk Produktion begr/insat till Produktutveckling, Produktionsberedning, Konstruktion och Tillverkningsberedning. En systemansats baserad pgt Produktmodeller' Tekn.Dr Dissertation Dep. Manufacturing Systems, KTH, Stockholm, Sweden (1982) (in Swedish) 4 Stroud, I A 'Modelling with degenerate objects' Comput. Aided Des'. Vol 22 No 6 (1990) 5 Weiler, K "Topological structures for geometric modeling ~ PhD Dissertation Rensselaer Polytechnic Institute, USA (Aug 1986) 6 Luo, Y and Lukacs, G 'A boundary representation for form features and non-manifold solid objects' Pres. Ist ACM/Sig,qraph 5~vmp. Solid Modeling Foundations & CA D/UA '~ Applications Austin, TX~ USA (Jun 1991) v Luo, Y 'Solid modelling for regular obJeCts: renewed theory, data structure and Euler operators' PhD Dissertation Computer and Automation Institute, Hungarian Academy of Sciences, Hungary (1991) Stroud, 1 A 'Definition of solid modelling operations using a uniform set of elementary procedures' PhD Dissertation Computer and Automation Institute, Hungarian Academy of Sciences, Hungary (submitted for publication!
Ian Stroud ha~s been work& 9 in and around boundary-representation model tin9 since 1977. when he started work with the Bl'H.l~group led hy Dr lan Braid at Cambridye University, UK. He has also worked at the Royal Institute ~/" Technoloyy in Stockholm, Sweden, and the Crw!fieht Institute ~[' Technology, UK. He received a doctorate [~'om the Hungarian Academ.v ~/' Sciences, Hun~ gaD:. in 1993 His research interests include almo.st anything relating t~ boundary-representation modelling. He ~' cwrrentlr working on muhiuser modelling,feature recognition and automatic model repair.