In Example 7 a bilinear nurbs surface is created. The resulting surface is shown in Figure 5.4. It also demonstrates how to set the material properties for the front and back sides of surfaces.
Example 7: (taken from: data/examples/nurbsurf1.dat (7.26))
surf1 = NURBSURF ( (0., 0., 1., 1.), (0., 0., 1., 1.), ( ((0., 0., 0., 1.), (10., 0., 10., 1.)), ((0., 10., 10., 1.), (10., 10., 0., 1.)) ) ); front1 = FRONT_MATERIAL ( (0.05, 0.15, 0.075, 1.0), /* diffuse color */ (0.0125, 0.0375, 0.019, 1.0), /* ambient color */ (0.0, 0.0, 0.0, 1.0), /* emissive color */ (0.2, 0.6, 0.3, 1.0), /* specular color */ 0.5 /* shininess */ ); back1 = BACK_MATERIAL ( (0.3, 0.15, 0.12, 1.0), /* diffuse color */ (0.075, 0.0375, 0.03, 1.0), /* ambient color */ (0.0, 0.0, 0.0, 1.0), /* emissive color */ (0.8, 0.4, 0.3, 1.0), /* specular color */ 0.5 /* shininess */ ); SCENEROOT = SCENENODE ( (), ( ATTRIBS(front1,back1) ), (surf1) );
In Example 8 a nurbs surace is created which is linear in one direction, and quadratic in the other. The resulting surface (a cylinder half) is shown in Figure 5.5.
Example 8: (taken from: data/examples/nurbsurf1.dat (7.27))
surf1 = NURBSURF( (0., 0., 1., 1.), (0., 0., 0., 0.5, 0.5, 1., 1., 1.), ( ((5., 0., 0., 0.5), (5., 5., 0., 0.5)), ((5., 0., 2.5, 0.5), (5., 5., 2.5, 0.5)), ((5., 0., 5., 1.), (5., 10., 5., 1.)), ((0., 0., 2.5, 0.5), (0., 5., 2.5, 0.5)), ((0., 0., 0., 0.5), (0., 5., 0., 0.5)) ) );