glu/sgi: Initialize members of class Arc.
[mesa.git] / src / glu / mesa / README2
1 The current NURBS implementation has no trimming facilities yet.
2
3 The code is not well commented.
4
5 1) Normal calculus fails for special cases of NURBS (independent
6 of the NURBS modules)
7 Those cases arise when for u or v, some control points
8 for a fixed value of that parameter form the same point.
9 Imagine a Bezier patch degenerated into a "triangle".
10
11 v ^ 0,1,2 order=3
12 | *
13 |
14 | 3* 4* 5*
15 |
16 | 6* 7* 8*
17 |
18 |
19 +------------------------> u
20
21 The calculus of du derivative at triple point (0,1 and 2) will fail.
22 As a result, the normal vector will be 0.
23 The eval2.c code has to be changed to handle the above situation.
24
25 2) Adjacent NURBS surfaces ("sharing" the same control points along
26 the "joining" edge) will be sampled with the same factor.
27 This prevents the formation of "cracks".
28 When the control polygon of the "shared" edge is not the same,
29 cracks might appear.
30
31 The sampling tolerance is sometimes not respected!
32 A NURBS object is broken into Bezier curves/surfaces. If one of such
33 Bezier objects has a local high curvature with other portions of it
34 relatively flat then the high curvature part will be sampled more dense that
35 its flatter regions.
36 The flat regions might be tesselated into quads having sides of length
37 greater than the current sampling tolernace setting.
38 I believe such behaviour is acceptable, though not along the concept of
39 sampling tolerance.
40
41 February 20, 1996.
42
43 Bogdan.