The NURBS Book

ion. For example, when dealing with curves for interactive design, he works with them without regard to the number of control points and knots. Or, for example, when dealing with curve/curve intersection, he might descend his thinking to the level of the control polygon if the overlapping of bounding boxes is what needs to be examined. For these and many other similar reasons, Nlib V2.0 considers every geometric entity as an object built from simpler components. In the design of a huge structure, simple building blocks are created first from basic data types. One of the basic elements of a curve object is the control point. It can be rational or nonrational, two-dimensional or three-dimensional, that is, it needs to hold two, three, or four coordinates. In addition, it plays a dual role as a control point for B-spline computations and as a Euclidean point used for simple geometric manipulations, such as computing distances, bounding boxes, and so on. A third requirement is to be able to refer to this entity as P [i] , just as its mathematical abstraction is referred to in the book. To simplify matters and to satisfy object based concepts, we separated control points from "regular" Euclidean points just as we did in the book, by writing P for a Euclidean point and pw for a control point that can be weighted. Hence the definitions of points are (see Figure 13.1): typedef struct point { REAL x, y, Z; } POINT; typedef struct cpoint { REAL x, y, Z, W· , } CPOINT;

[1]  S. A. Coons SURFACES FOR COMPUTER-AIDED DESIGN OF SPACE FORMS , 1967 .

[2]  A. Robin Forrest,et al.  Curves and surfaces for computer-aided design , 1968 .

[3]  Daram V. Ahuja,et al.  Geometry for Construction and Display , 1968, IBM Syst. J..

[4]  Hiroshi Akima,et al.  A New Method of Interpolation and Smooth Curve Fitting Based on Local Procedures , 1970, JACM.

[5]  L. B. Smith,et al.  Drawing Ellipses, Hyperbolas or Parabolas with a Fixed Number of Points and Maximum Inscribed Area , 1971, Comput. J..

[6]  W. J. Gordon Blending-Function Methods of Bivariate and Multivariate Interpolation and Approximation , 1971 .

[7]  C. D. Boor,et al.  On Calculating B-splines , 1972 .

[8]  M. Cox The Numerical Evaluation of B-Splines , 1972 .

[9]  Richard Franklin Riesenfeld,et al.  Applications of b-spline approximation to geometric problems of computer-aided design. , 1973 .

[10]  W. J. Gordon,et al.  B-SPLINE CURVES AND SURFACES , 1974 .

[11]  L. M. Howser,et al.  A smoothing algorithm using cubic spline functions , 1974 .

[12]  W. J. Gordon,et al.  Bernstein-Bézier Methods for the Computer-Aided Design of Free-Form Curves and Surfaces , 1974, JACM.

[13]  David F. Rogers,et al.  Mathematical elements for computer graphics , 1976 .

[14]  Manfredo P. do Carmo,et al.  Differential geometry of curves and surfaces , 1976 .

[15]  A. A. Ball,et al.  CONSURF. Part 3: how the program is used , 1977 .

[16]  Carl de Boor,et al.  A Practical Guide to Splines , 1978, Applied Mathematical Sciences.

[17]  James S. Vandergraft,et al.  Introduction to Numerical Computations , 1983 .

[18]  I. Faux,et al.  Computational Geometry for Design and Manufacture , 1979 .

[19]  R. A. Liming Mathematics for Computer Graphics , 1979 .

[20]  Richard F. Riesenfeld,et al.  A Theoretical Development for the Computer Generation and Display of Piecewise Polynomial Surfaces , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[21]  Tom Lyche,et al.  Discrete B-splines and subdivision techniques in computer-aided geometric design and computer graphics , 1980 .

[22]  G. Chang,et al.  Mathematical foundations of Bézier's technique , 1981 .

[23]  C. Y. Wang Shape classification of the parametric cubic curve and parametric B-spline cubic curve , 1981 .

[24]  Riesenfeld,et al.  Homogeneous Coordinates and Projective Planes in Computer Graphics , 1981, IEEE Computer Graphics and Applications.

[25]  R. Riesenfeld,et al.  A geometric proof for the variation diminishing property of B-spline approximation , 1983 .

[26]  Wayne Tiller,et al.  Rational B-Splines for Curve and Surface Representation , 1983, IEEE Computer Graphics and Applications.

[27]  G. Farin Algorithms for rational Bézier curves , 1983 .

[28]  A. Fournier,et al.  Bending polyhedral objects , 1983 .

[29]  Wayne Tiller,et al.  Offsets of Two-Dimensional Profiles , 1984, IEEE Computer Graphics and Applications.

[30]  Wayne Tiller,et al.  The Cayley method in computer aided geometric design , 1984, Comput. Aided Geom. Des..

[31]  Ron Goldman,et al.  Implicit representation of parametric curves and surfaces , 1984, Comput. Vis. Graph. Image Process..

[32]  E. S. Cobb Design of sculptured surfaces using the b-spline representation , 1984 .

[33]  W. Boehm,et al.  The insertion algorithm , 1985 .

[34]  Horst Nowacki,et al.  Approximate conversion of surface representations with polynomial bases , 1985, Comput. Aided Geom. Des..

[35]  Wolfgang Böhm On the efficiency of knot insertion algorithms , 1985, Comput. Aided Geom. Des..

[36]  Les A. Piegl,et al.  A geometric investigation of the rational bezier scheme of computer aided design , 1986 .

[37]  Fopke Klok Two moving coordinate frames for sweeping along a 3D trajectory , 1986, Comput. Aided Geom. Des..

[38]  R.T. Farouki,et al.  The approximation of non-degenerate offset surfaces , 1986, Comput. Aided Geom. Des..

[39]  Rida T. Farouki,et al.  On the numerical condition of polynomials in Bernstein form , 1987, Comput. Aided Geom. Des..

[40]  Les A. Piegl,et al.  A technique for smoothing scattered data with conic sections , 1987 .

[41]  Carl de Boor,et al.  Cutting corners always works , 1987, Comput. Aided Geom. Des..

[42]  Knut Mørken,et al.  Knot removal for parametric B-spline curves and surfaces , 1987, Comput. Aided Geom. Des..

[43]  Les A. Piegl,et al.  Interactive Data Interpolation by Rational Bezier Curves , 1987, IEEE Computer Graphics and Applications.

[44]  L. Piegl,et al.  Curve and surface constructions using rational B-splines , 1987 .

[45]  S. Coquillart Computing offsets of B-spline curves , 1987 .

[46]  Sabine Coquillart,et al.  A Control-Point-Based Sweeping Technique , 1987, IEEE Computer Graphics and Applications.

[47]  Laszlo Piegl,et al.  On the use of infinite control points in CAGD , 1987, Comput. Aided Geom. Des..

[48]  David R. Forsey,et al.  Hierarchical B-spline refinement , 1988, SIGGRAPH.

[49]  Josef Hoschek,et al.  Spline approximation of offset curves , 1988, Comput. Aided Geom. Des..

[50]  C. Woodward Skinning techniques for interactive B-spline surface interpolation , 1988 .

[51]  Rida T. Farouki,et al.  Algorithms for polynomials in Bernstein form , 1988, Comput. Aided Geom. Des..

[52]  Michael A. Lachance,et al.  Chebyshev economization for parametric surfaces , 1988, Comput. Aided Geom. Des..

[53]  I. J. Schoenberg Contributions to the Problem of Approximation of Equidistant Data by Analytic Functions , 1988 .

[54]  G. Farin Rational curves and surfaces , 1989 .

[55]  L. Piegl Modifying the shape of rational B-splines. part2: surfaces , 1989 .

[56]  Daniel J. Filip,et al.  Procedurally representing lofted surfaces , 1989, IEEE Computer Graphics and Applications.

[57]  Tony DeRose,et al.  Geometric continuity of parametric curves: three equivalent characterizations , 1989, IEEE Computer Graphics and Applications.

[58]  B. Su,et al.  Computational geometry: curve and surface modeling , 1989 .

[59]  Les A. Piegl,et al.  Key developments in computer-aided geometric design , 1989 .

[60]  Marc Daniel,et al.  The numerical problem of using Bézier curves and surfaces in the power basis , 1989, Comput. Aided Geom. Des..

[61]  Les A. Piegl,et al.  A menagerie of rational B-spline circles , 1989, IEEE Computer Graphics and Applications.

[62]  Sabine Coquillart,et al.  Extended free-form deformation: a sculpturing tool for 3D geometric modeling , 1990, SIGGRAPH.

[63]  Michael A. Lachance,et al.  An introduction to splines for use in computer graphics and geometric modeling , 1990 .

[64]  Toby Howard,et al.  A practical introduction to PHIGS and PHIGS Plus , 1990 .

[65]  Tony DeRose,et al.  Geometric continuity of parametric curves: constructions of geometrically continuous splines , 1990, IEEE Computer Graphics and Applications.

[66]  Les A. Piegl,et al.  On NURBS: A Survey , 2004 .

[67]  Sabine Coquillart,et al.  Animated free-form deformation: an interactive animation technique , 1991, SIGGRAPH.

[68]  E. T. Y. Lee,et al.  Möbius reparametrizations of rational B-splines , 1991, Comput. Aided Geom. Des..

[69]  Joris S. M. Vergeest CAD surface data exchange using STEP , 1991, Comput. Aided Des..

[70]  Toby Howard Evaluating PHIGS for CAD and general graphics applications , 1991, Comput. Aided Des..

[71]  Brian A. Barsky,et al.  Skinning rational B-spline curves to construct an interpolatory surface , 1991, CVGIP Graph. Model. Image Process..

[72]  Hartmut Prautzsch,et al.  A fast algorithm to raise the degree of spline curves , 1991, Comput. Aided Geom. Des..

[73]  Les A. Piegl,et al.  Data reduction using cubic rational B-splines , 1992, IEEE Computer Graphics and Applications.

[74]  Hartmut Prautzsch,et al.  Is there a geometric variation diminishing property for B-spline or Bézier surfaces? , 1992, Comput. Aided Geom. Des..

[75]  J. Hoschek Be´zier curves and surface patches on quadrics , 1992 .

[76]  Michael Kallay,et al.  Monotone linear rational spline interpolation , 1992, Comput. Aided Geom. Des..

[77]  Andrew P. Witkin,et al.  Variational surface modeling , 1992, SIGGRAPH.

[78]  Pekka Siltanen,et al.  Normal orientation methods for 3D offset curves, sweep surfaces and skinning , 1992, Comput. Graph. Forum.

[79]  Norio Matsuki An Interactive Shape Modification Method for B-spline Surfaces , 1992, PROLAMAT.

[80]  Varol Akman,et al.  Sweeping with all graphical ingredients in a topological picturebook , 1992, Comput. Graph..

[81]  John F. Hughes,et al.  Direct manipulation of free-form deformations , 1992, SIGGRAPH.

[82]  Matthias Eck,et al.  Degree reduction of Bézier curves , 1993, Comput. Aided Geom. Des..

[83]  Richard H. Bartels,et al.  Constraint-based curve manipulation , 1993, IEEE Computer Graphics and Applications.

[84]  Rainer Storn,et al.  A tool for checking C coding conventions , 1994 .

[85]  W. Terry Hewitt,et al.  Expressing Coons-Gordon surfaces as NURBS , 1994, Comput. Aided Des..

[86]  Jin J. Chou Higher order Bézier circles , 1995, Comput. Aided Des..

[87]  Hyeong-Chan Kim,et al.  Degree reduction of Bézier curves and filter banks , 1996 .