A platform for visualizing curves and surfaces

A platform for visualizing curves and surfaces

Compuredwed EINEMANN Design, Vol. 27, NO. 7 pp. 559-566.1995 CoWrighl Q 1995 Elsevier Science Ltd Printed in Greet Britain. All r@hts resewed 0010449...

970KB Sizes 1 Downloads 39 Views

Compuredwed EINEMANN

Design, Vol. 27, NO. 7 pp. 559-566.1995 CoWrighl Q 1995 Elsevier Science Ltd Printed in Greet Britain. All r@hts resewed 00104495/95 $10.00 + 0.00

A platform for visualizing curves and surfaces Gunther Greiner, Andreas Kolb, Ronald Pfeifle, Hans-Peter Seidel, Philipp Slusallek, Miguel Encarna@o* and Reinhard Klein*

Curves and surfaces have properties that are difficult to comprehend from a purely symbolic or numeric description. Therefore, visualization is an indispensable tool for controlling the quality and for judging the aesthetic properties of these geometric objects. The same techniques can also be used advantageously for visually evaluating new algorithms and mathematical schemes. The paper describes an object-oriented framework written in c++ that provides tools for the analysis and visualization of curves and surfaces. The design of the class hierarchy is

outlined, and specific applications (i.e. scattered data interpolation, blending surfaces, and differential geometry) that take advantage of this platform are presented. Keywords: object-oriented differential geometry

graphics,

surface

interrogation,

Research in computer graphics, and especially in geometric modelling, requires the theoretical investigation and practical implementation of methods and algorithms. There is a strong requirement for a universal platform upon which various methods and new developments can easily be tested and compared using a reasonable amount of time and effort. Of the various issues (speed, numerical complexity, etc.), the most important aspect is the quality of the final result. Visualization methods are very helpful for judging the aesthetics of a design or- checking the quality of a geometric object. There are a vast number of theoretical tools for analysing a geometric object such as a curve or a surface. One of the simplest methods is to display a shaded image of the object from an arbitrary (possibly moving) viewpoint. From this, one can get a first impression of the shape. For more detailed analysis, one needs more sophisticated visualization tools. A widely used method for checking the quality of surfaces is that of curvature plots. In this case, one of the surface curvatures is visualized via a colour coded map. Other IMMD IX, Graph&he Datenverarheitung, Universitiit Erlangen, Am Weichselgarten 9,91058 Erlangen, Germany * WSI/GRIS, Univexsitiit Tiibingen, Auf der Morgenstelle 10, 72076 Tiibingen, Germany Paper receiued: 3 April 1994

methods include the display of reflection lines, curvature lines, and isophotes (lines of constant light intensity)‘-‘. Each of these methods can be used to detect irregularities in the smoothness and/or curvature of the surface. We have developed a system, called OBMS, which is a platform for visualizing properties of surfaces. It is intended to be used in a research environment such as a computer graphics laboratory at a university. Because of the object-oriented approach, the system simplifies the incorporation of new curve and surface types, and it allows easy visualization and analysis of the overall shape of the resulting surfaces. Moreover, it permits the easy integration of new visualization techniques for all the geometric objects supported. In this paper we describe the features and capabilities of this system. In the second section, after a short introduction to object-oriented design and classes, we present the overall framework, and review implementation features. In the third section, we will illustrate the capabilities of the system by describing three applications of the visualization tools: the visualization of concepts from the differential geometry for curves and surfaces, a method for scattered data interpolation based on minimal norm networks, and the construction of blend surfaces on the basis of variational principles.

IMPLEMENTATION Object-oriented design and classes In object-oriented design, the primary task is to identify the operations that can be applied to a given class of objects. When seen from the environment, these operations, often called me&u%, describe the objects of a class completely: the internal structure is hidden from the user of an object (encupsulation). A class can be ‘derived’ from another class (superclass), allowing it to inherit all the methods of its superclass (inheritance, code sharing). An object of a derived class (subclass) can be used in place of an object of its superclasses, and respond to the same set of methods. In this case, derived classes may use different algorithms to implement the same method (polymorphism, virtual methods in c++ >. Computer-Aided Design Volume 27 Number 7 July 1995

559

A platformfor visualizing curves and surfaces: G Greiner et al.

Class hierarchy

able flexibility facilities later changes and extensions to the framework. Since completing the initial design, several of our students have been working in parallel on refinement of the design, and on implementing new curve and surface types.

An overview of our class hierarchy is shown in Figure 1. The important abstract classes are given, together with some classes of special curve or surface types. Some intermediate classes have been removed from Figure 1 to clarify the approach. Arrows with solid lines indicate derivations from superclass to subclass. Arrows with dotted lines indicate classes that make references to other classes that either implement certain parts of an object (e.g. ParameterRegion for a surface), or that specify the class of objects that a class can operate on (e.g. CompositeCurve has ParamCwves as a subclass). There is a large set of metaclasses that do not define curves themselves, but are associated with curves and are used to visualize these curves. For instance, the class CurvaturePlot is a planar curve that plots the curvature versus the arc length of the associated curve. Since CurvaturePlot is itself a ParamCurve, any method of the PurumCurve class may be applied to it. Thus, applying a CurvaturePlot to a CurvaturePlot is simple. We found that this concept of metaclasses provides so much flexibility and functionality, while at the same time being simple and quick to implement, that we have used it throughout the framework. As another example, when facing the problem of whether to define a method for curves that returns the derivative over the whole parameter range as a curve, we used a metaclass instead. When a point of this curve is queried, the method evaluates the derivative of the original curve and returns it. Thus hodographs6T7 are available for any curve type. The framework is implemented8z9 in c++, which allows an efficient and simple translation of theoretical results to program code. At this point, c++ is used almost exclusively for all the projects within our two groups. Although the flexibility in c++ comes at some cost (i.e. careful design and runtime overhead), its consider-

Hierarchical structure for curves and surfaces In general, a parameterized curve/surface is a smooth mapping from a parameter space into the 3D Euclidean space lo . For curves, the p ammeter space is simply an interval. However, for surfaces, it is a subset of the plane, which may have a nontrivial structure (i.e. it may consist of several nonconnected subregions). We will return to this problem at the end of this section. From these remarks, we see that specifying a parameter region D, and a method for evaluating the curve/surface at a given parameter u ED, comprise the most abstract description for parameterized curves/surfaces. Using these abstract descriptions of curves and surfaces, we introduce the classes PurumCurue and PurumSurface. At this abstract level, making reference to an abstract description of the parameter region, we make available methods for evaluating the curve/surface at a given parameter u, to calculate derivatives and properties from differential geometry (fundamental forms, curvature, etc.). To display the curve/surface, we use piecewise linear approximations. As a subset of general curves/surfaces, we group into the abstract classes VertexCurve and VhtexSu$zce all curves/surfaces that have evaluation schemes that use control points. The implementation of these classes include the manipulation of control vertices. This normally suffices for the implementation of user interaction and other general operations, and we provide access to control points regardless of their topology (whether it is linear, triangular or rectangular).

......~... 9 i ,_

.............................+

m

l

...

~

.................

gl+.._........e

1.. . . . . . . . . . . . . . . . . . . . . . . . .L.

Figure 1 Class hierarchy

[Arrows with solid lines indicate inheritance, and arrows with dotted lines indicate references to other classes.]

560

Computer-Aided Design Volume 27 Number 7 July 1995

A platform for visualizing curves and surfaces: G Greiner et al.

From these classes, further subclasses are derived. For example, the class BSplineCurve is derived from Vertdhzae. The abstract method for curve evaluation is overridden with a DeBoor-algorithm implementation. Since derivatives can be calculated directly from control points, the approximation methods used in ParaCum (cf. the subsection below) are also overriden. In addition, the method used to obtain the linear approximation for displaying a B-Spline curve is overriden with a recursive subdivision scheme. Global operations on a surface require knowledge about the parameter region of the surface. The problem is that, unlike with curves, this is not a 1D interval, but a region in 2D with a potentially complicated structure. For example, in the case of trimmed patches, this will be a subset of the plane which is bounded by a collection of freeform curves. To deal with this kind of parameter region, we have developed an abstract description of the parameter region of a surface. This class can be queried for information on, for example, the membership of a point in the region, and the border as a set of bounding curves, or a bounding box. There exist methods for tessellating the region, and thus we can obtain a simple representation of the region by piecewise linear curves, e.g. as a set of triangles. In addition, this kind of tessellation provides information about the topological relationships between the tessellation elements. Topological information is important for many advanced algorithms that work on surfaces with nontrivial parameter regions.

Derivatives and differential geometry In the abstract classes, the fundamental method is point evaluation at some parameter value. This can be used to numerically determine (partial) derivatives by (higher order) difference operators. The idea is to interpolate the curve/surface locally by a polynomial, and to use the derivative of this interpolating polynomial as an approximation for the actual derivative. For example, local interpolation with a cubic polynomial leads to the following approximation of the first derivative for a curve:

f’(x) =

-&(f(x

-f(x

- 3h) - 27f(x -h) + 27f(x + h)

0

curvature torsion

K(S)=

if’(S)

r(s)=

xf%)l/if’(d3i

det(f’(s),f”

(s), f”‘(s)

(If’W xf”WIZ)

For surfaces, the basic geometric quantities are given in the list below. We abbreviate the partial derivatives ~S/C?U and JS/dv by S, and S,, respectively. Similarly, we denote higher order derivatives by S,,, S,, , S,,, etc. The usual inner product in Euclidean space is denoted by ( *I * >, the distance by 1.I, and the vector product by x . surface normal first fundamental form second fundamental form normal curvature (direction w) Gaussian curvature mean curvature

n

= S, x S”/lS” x &I

( c)

rr, = b

L = (nlS,,>;

M

= (nlS,,>; N= (nlS,,>

2 H

= w’lQv/w’l,w = (LA’ - M2)/(EG = (CL-2MF+EN)

- F ‘2 )

2(EG - F2)

The principal curvatures K~ and ~~ are (by definition) the extreme values of the normal curvatures. They can be determined from the Gaussian and mean curvatures as the solutions of the following quadratic equation:

The directions of principal curvature wi and w2 are the solutions to the equation ZIsw, = K~Z~W~ (i = 1, 2). The numerical implementations of these methods on the basis of the point evaluation makes them available for any class in the framework. Within subclasses, more efficient algorithms can be used to determine (some of) these quantities. For example, the first fundamental form, the Gaussian curvature, and the square of the mean curvature of BCzier surfaces are rational Bezier functions.

+ 3h)) + OW)

The user can specify the step size h. By default, it is set to 10e4 X diam (parameter space). Of course, for certain subclasses of curves/surfaces (e.g. Bezier curves/surfaces), this routine is overriden by well known formulae. Once equipped with these basic methods, one can calculate the fundamental quantities used in differential geometry. These are implemented in the base class of parameterized curves. For curves, the list is as follows: l

(normalized) tangent t

.

binormal

b

. .

main normal Frenet frame

n

=f’(s)/lf’(s>l f’(s) xf” (s) = If’(s) xf”(s)l =bxt = 0, n, b)

Graphical interaction Graphical output and interaction is based on an object-oriented graphics library. This set of routines presents a descriptive view of the input and output to the user. The library translates this internal description to actual calls to the underlying graphics subsystem (e.g. GL, Starbase). With the appearance of IBIS Inventor, we added another layer of support for this interactive 3D toolkit. All curves and surfaces are ultimately derived from a class that defines methods for output to a graphical device and methods for receiving interaction events. Most curves and surfaces do not implement these methods, but rely on abstract classes to implement interaction and display.

Computer-Aided Design Volume 27 Number 7 July 1995

561

A platform for visualizing curves and surfaces: G Greiner et al.

APPLICATIONS

function consists of three steps (for more details, see References 13-15).

Differential geometry The curvature of a curve at a given point can be visualized by displaying the curvature circle, also called the osculating circle. This circle lies in the osculating plane spanned by the tangent t and the main normal n, and it has a radius of l/~. In an analogous way, we visualize the torsion of a curve with a cylinder whose axis is parallel to the binomial, and whose radius is l/7 (see Colour Plate I>. Animating the curvature circle, the torsion cylinder or the Frenet frame along the curve results in a method for displaying its variation. A simple and convenient method for displaying the variation of the scalar curvature and torsion values is by means of a colour-coded map. Another method for displaying the curvature is through curvature plots. The curvature plot is a 2D graph which plots the curvature over the arc length. For surfaces, normal curvature is visualized through curvature circles. To visualize the variation of the curvature as a function of direction, we can animate curvature circles. The ‘variation of the scalar-valued Gaussian curvature and mean curvature, as well as the minimum and maximum curvature over the surface, can again be visualized by means of a colour-coded map. There are several other techniques which gain good results’93. A method for analysing the variation of the principal directions across the surface is to incorporate a family of lines of curvature’ into the display. A line of curvature is a curve on the surface whose tangent direction coincides with one of the principal directions at each of its points. Reflection lines are a useful tool for the analysis of the fairness of a surface. Reflection lines on a surface are defined as the image of a given straight line on the ideal reflecting surface seen from a fixed eye point”. Lines of curvature and reflection lines are parameterized curves, and their differential geometric properties can be visualized using the methods for curves described above.

Minimum norm network interpolants In various areas of research, one is confronted with the problem of reconstructing a scalar valued function F : R - R, i2 c R2, in two variables, knowning its values at only a finite number of points ui E a, where the points ui do not have any regular structure (scattered data interpolation). It is generally difficult to ensure a prioti that an interpolation scheme produces surfaces of good overall shape. Therefore, curvature plots are an indispensable tool for judging the overall quality of the resulting shape12. One approach to solving the scattered data interpolation problem is the so-called minimum norm network (MNN) method. This method has advantages: it can be used on nonconvex domains KI, and the shape of the interpolant can be controlled in a predictable manner. The MNN method for constructing an interpolating 562

Computer-Aided Design Volume 27 Number 7 July 1995

(1) The

data points

are used to construct a domain a. Since thin triangles are not desired for numerical reasons, we usually use the well known Defuunuy triangulation method (cf. Reference 16).

triungulution of the

(2) A curue network whose domain is the union of all the edges of the triangulation is uniquely defined as follows. The single curves must meet with a certain degree of continuity. Furthermore, from all these network functions, we choose those whose norm with respect to a given functional is minimal. The functionals are usually of the following type:

where the triangulation of edges {e).

T is defined as a set

(3) The network is extended to the interior of each triangle by means of a triungufur interpolunt. For each vertex in the considered triangle, one patch is defined by interpolating the function values and derivatives in this vertex and along its opposite edge. The final triangular interpolant is obtained by a convex combination of these three patches. The application of a preliminary implementation of this scheme to a reference surface showed quite good results, as far as mean and maximum errors were concerned. After the scheme has been introduced into this framework, the quality of the surfaces generated by the above method was evaluated using curvature plots. The results were quite poor. Thus the visualization of curvature inspired us ‘to carry out further investigations. This finally led to an advanced MNN interpolation scheme14 with a significantly better curvature distribution (see Colour Plate 3).

Blending surfaces Another application that uses this framework is the construction and visualization of blending surfaces. The problem is to construct, for two given primary surjuces, a smooth transitional surface. Such a surface is called a blend surface. Our method’7,‘8 is based on a variational principle or an optimization problem. These methods

A platformfor visualbina curves and surfacas: G Grainer et a/~

Colour PIate 1. Differential geometry; (left) curye and its hodograph, (right) helix with curvature circle, Frenet frame and torsion surface

a

b

d Colonr Plate 2. Blending method; ,.. (a) two primary surfaces
Computer-Aided Design Volume 27 Number 7 July 1995

563

A platform for visualizing curves and surfaces: G Greiner et al.

e Colour Plate 3. Advanced minimum norm network scheme; (a) reference surface with set of lines of curvature, (b) MNN surface that interpolates reference surface at 36 points with set of lines of curvature, (c) curvature plot for Gaussian curvature of reference surface, (d) curvature plot for Gaussian curvature of interpolating MNN surface constructed with preliminary algorithm, (e) curvature plot for Gaussian cmvature of interpolating MNN surface constructed with advanced algorithm

become quite popular in recent years in different areas of computer graphicsr9-*‘. The main idea in constructing the blend surface is as follows: have

. l

564

At the boundaries, it gives a smooth (G’ or G* continuous) transition to the primary surface. A fairingfinctional, which somehow measures the total mean curvature, is minimized. Computer-Aided Design Volume 27 Number 7 July 1995

So far, this method has been implemented for tensor product B-spline surfaces (TPS). For two primary TPS and specified boundaries (which are B-spline curves), a TPS is constructed such that it meets the primary surfaces at the boundaries. In addition, the crossboundary derivatives of a blend surface and a primary surface coincide at the boundary where they meet.The faking functional J which will be minimized is of the

A platform for visualizing curves and surfaces: G Greiner et a/.

form

adaptive and general tessellation algorithm that can take into account the available information about any surface. Future work also includes the incorporation of triangular splines 2~ into this framework.

where (Y and @ are multi-indices of order I 2, and Si (i = 1, 2, 3) denotes the X, y and z components of the surface S. The weight functions wius depend on the geometry of the region to be blended, and they are chosen via a parameter transformation between the parameter space of the TPS (rectangle> and a more natural parameter space. This has the effect that the fairing functional J is a good approximation for the total mean curvature (in the mean square sense). The details are given in References 17 and 18. The implementation of the blending operation relies on a set of classes that describe the boundary curves and the derivatives along these curves. The boundary curves lie on the primary surfaces. They are implemented using curves that map a parameter interval to the 2D parameter regions. This is the same technique as that used for trimming parametric surfaces with curves. This class of curves on surfaces (SurfaceCurue) has additional methods for the calculation of derivatives of the surface along the curve that are nontangential to the curve. A SurfaceCurve object can be queried for a derivative, and it will return a new object of a class derived from SurfaceCurve called SurfaceDen’u. Evaluating a point on this curve yields the requested derivative. Encapsulating the derivatives in another object allows us to trade accuracy for speed without changing any other algorithm in the framework. The class SurJizceDetiv can query the surface for derivatives at a few points, and can then use interpolation to obtain intermediate results, which can result in substantial speedups. All this is invisible to the blending algorithm that uses this object. Colour Plate 2 shows some examples of the application of these blending methods.

CONCLUSIONS

AND FURTHER

WORK

We have presented an object-oriented framework for the visualization of parametric curves and surfaces. Only the most fundamental method, point evaluation, needs to be supplied in order to integrate a general new curve or surface into the scheme. All the other methods have already been implemented in abstract base classes. Thus the programmer is free to experiment without worrying about the details of implementing derivatives, curvature evaluation, or other operations that are indispensable in visualizing the quality of a curve/surface. However, he/she still has the option of using better methods as they become available. A complete set of methods for curve and surface analysis with support for tessellation, differential geometry, display, and user interaction is provided. So far, we have not explored interval arithmetic for the numeric approximation of derivatives and other methods. This would certainly offer better approximations and therefore allow users to be more confident. Another issue is the development of an optimized,

REFERENCES 1 Beck, J, Farouki, R and Hinds, J ‘Surface analysis methods Comput. Graph. & Applic. Vol6 No 12 (1986) pp 18-38 2 Elber, G and Cohen, E ‘Second-order surfaces analysis using hybrid symbolic and numeric operators’ ACM Trans. Graph. Vol 12 No 2 (1993) pp 160-178 3 Farouki, R T ‘Graphical methods for surface differential geometry’ in Martin, R R (Ed.) The Mathematics of Surfaces ZZGxford Science Publications UK (1987) pp 363-385* ’ 4 Georgiades, P N and Greenberg, D P ‘Locally manipulating the geometry of curved surfaces’ Comput. Graph. & Applic. Vol 12 No l(1992) pp 54-64 5 Hagen, H kr al. ‘Surface interrogation algorithms’ Comput. Grauh. & Auulic. Vol 12 (1992) DD53-60 6 Farm, G E~Curves and Sutjaces’for Computer Aided Geometric Design (2nd Ed.) Academic Press (1990) 7 Forrest, A ‘Interactive interpolation and approximation by Btzier polynomials’ Comput. Z. Vol 15 (1972) pp 71-79 8 Stroustrup, B The c+t Programming Language (2nd Ed.) Addison-Wesley (1991) 9 Ellis, M A and Stroustrup, B The Annotated c+t Reference Manual Addison-Wesley (1990) 10 do Carmo, M P Differential Geometry of Curves and Surfaces Prentice Hall, USA (1976) 11 Klass, R ‘Correction of local surface irregularities using reflection lines’ Compuf. Aided Des. Vol 12 No 2 (1980) pp 73-76 12 Lounsbery, M, Mann, S and deRose, T ‘Parametric surface interpolation’ Comput. Gmph. & Applic. Vol 12 (Sep 1992) pp 45-52 13 Nielson, G M and Franke, R ‘A method for construction of surfaces under tension’ Rocky Mountain Z. Math. Vol 14 (1984) pp 203-221 14 Kolb, A ‘Interpolating scattered data with C* surfaces’ Preprint University of Erlangen-Ntimberg, Germany (1993) 15 Pottmann, H ‘Scattered data interpolation based upon generalized minimum norm network’ Conrrruct. Approx. Vol7 (1991) pp 247-256 16 Fortune, S ‘Voronoi diagrams and Delaunay triangulations’ in Du, D Z and Hwang, F (Eds.) Computing in Euclidean Geometry World Scientific Publications (1992) pp 193-233 17 Greiner, G ‘Blending techniques based on variational principles’ Proc. SPZE Cont. Curves and Surfaces in Computer Vision & Graphics ZZZ(1992) pp 174-184 18 Greiner, G and Seidel, H-P ‘Curvature continuous blend surfaces’ in Falcidieno, B and Kunii, T L (Eds.) Mod&g in Computer Graphics Springer-Verlag (1993) pp 309-317 19 Kallay, M ‘Constrained optimization in surface design’ in Falcidieno, B and Kunii, T L1Eds.J Modeling in Compuier Gmphics Sminper-Verlae (1993) DD 85-94 20 Moreion, H P and Sequin, C H ‘Functional optimization for fair surface design’ (Proc. ACM Siapraph Conf) Comput. Graph. (1992) pp 167-176 21 Welch, W and Witkin, A ‘Variational surface modeling’ (Proc. dCiU S&mph Cont.) Comput. Graph. (1992) pp 157-166 22 Dahrnen, W, Micchelli, C A and Seidel, H-P ‘Blossoming begets B-spline bases built better by B-patches’ Math. Comput. Vol 59 No 199 (1992) pp 97-115

BIBLIOGRAPHY Bartels, R H, Beatty, J C and Barsky, B A An Zntroductian to Spltnes for Use in Computer Graphics and Geometric Modelling Morgan Kaufmann (1987) Elber, G and Cohen, E ‘Hybrid symbolic and numeric operators as tool for analysis of free from surfaces’ in Falcidieno, B, Kuni, T L (Eds.) Modeling in Computer Gmphics Springer-Verlag (1993) pp 275-288

Computer-Aided Design Volume 27 Number 7 July 1995

565

A platform for visualizing curves and surfaces: G Greiner ef al.

Farin, G E ‘Triangular Bernstein-BBzier patches’ Comput. Aided Geom. Des. No 3 (1986) pp 83-127 Gregory, J ‘Smooth interpolation without twist constraints’ in Bamhill, R and Rksenfeld, W (Eds.) Computer Aided Geometric Design Academic Press (1974) Pottmann, H ‘Eine Verfeinemng der Isophotenmethode zur QualitItsanalysis von Freiformfkhen CAD & Comput. Graph. vo14 (1988) pp 99-109 Vermeulen, A H and Bartels, R H ‘c+t spline classes for prototyping’ Proc. SPIE Conf Curves and Surfaces in Computer Graphics II (1991) pp 121-131

Gunther Greiner is an assistant professor in the Computer Science Department of the University of Ertimgen, Germany. His current research interests include CAD/CAM, and in parricular geometric modelling with freeform surfaces, oariational design, and scattered data interpolation. He received degrees in mathematics (Diplom, PhD, Habiliration) from the University of Tiibingen, Germany. He was a research associate at the Unioersi~ of California at Berkzley, USA, and at CWI, Amsterdam, Netherlands, and he has been a lecturer at the University of Zurich, Switzerland.

Hans-Peter Seidel is a professor of computer science at the University of Erlangen, Germany, and an adjunct professor of computer science at the University of Waterloo, Canada. His research interests include computer graphics, computer-aided geometric design, freeform tunes and surfaces, and geometric modelling.

Philipp Slusallek is a doctoral student at the University of Erlangen, Germany. He received an MS in physics from the Unioersity of Tiibingen, Germany, in 1990. His research interests include physica& based rendering, object oriented computer graphics, and geomehic modelling.

7

the Graphics and Data on Lab at the Uniuersity of include smooth surface reconstruction from scattered data and object oriented

Miguel Encamaqio is a PhD student and research assistant at the Computer Graphics Lab of the Wilhelm Schickard I Institute for Computer Science at the University of Tiibingen, Germany. His main interest is in the development oj intelligent and adaptive user interfaces for CADapplications. He received a BS and an MS in computer science in 1989 and 1992 from the Technical University of Darmstadt, Germany, and wrote his MS thesis at the Unioersity of Southern California in Los Angeles, USA.

Reinhard Klein is a PhD student and research assistant at the Computer Graphics Lab of the wiulelm Schickard Institute for Computer Science at the Uniuersity of Tiibingen, Germany. His research interests include geometric modelling, computationalgeometry, and object-oriented graphics. He received a Dipkrma in mathematics in 1989 from the University of Tiibingen.

566

Computer-Aided Design Volume 27 Number 7 July 1995