29 #ifndef __X3DNURBSSURFACEGEOMETRYNODE_H__
30 #define __X3DNURBSSURFACEGEOMETRYNODE_H__
164 virtual void onAdd(
Node *n ) {
172 if( !tex_coord_node && !nurbs_tex_coord ) {
174 s <<
"Expecting X3DTextureCoordinateNode or NurbsTextureCoordinate";
182 friend class TexCoordOrNurbsTex;
187 if( nurbs_object ) gluDeleteNurbsRenderer( nurbs_object );
192 Inst< SFBound > _bound = 0,
193 Inst< DisplayList > _displayList = 0,
194 Inst< MFBool > _isTouched = 0,
195 Inst< MFVec3f > _force = 0,
196 Inst< MFVec3f > _contactPoint = 0,
197 Inst< MFVec3f > _contactNormal = 0,
198 Inst< SFCoordinateNode > _controlPoint = 0,
199 Inst< TexCoordOrNurbsTex > _texCoord = 0,
200 Inst< SFInt32 > _uTessellation = 0,
201 Inst< SFInt32 > _vTessellation = 0,
202 Inst< MFDouble > _weight = 0,
203 Inst< SFBool > _solid = 0,
204 Inst< SFBool > _uClosed = 0,
205 Inst< SFBool > _vClosed = 0,
206 Inst< SFInt32 > _uDimension = 0,
207 Inst< SFInt32 > _vDimension = 0,
208 Inst< MFDouble > _uKnot = 0,
209 Inst< MFDouble > _vKnot = 0,
210 Inst< SFInt32 > _uOrder = 0,
211 Inst< SFInt32 > _vOrder = 0 );
214 virtual void render();
377 GLUnurbsObj *nurbs_object;
Header file for CoordBoundField, specialiced field class.
Contains the DependentSFNode and DependentMFNode template classes.
Contains the MFDouble field class.
Header file for NurbsTextureCoordinate, X3D scene-graph node.
Contains the SFInt32 field class.
Header file for TextureCoordinateGenerator, X3D scene-graph node.
Header file for X3DCoordinateNode, X3D scene-graph node.
Header file for X3DParametricGeometryNode, X3D scene-graph node.
Header file for X3DTextureCoordinateNode, X3D scene-graph node.
std::string getTypeName() const
The CoordBoundField is specialized update itself from a X3DCoordinateNode.
Definition: CoordBoundField.h:43
DependentSFNode are modified TypedSFNode fields where the field dirty status is dependent on fields i...
Definition: DependentNodeFields.h:294
Class used for specifying a field member of a node in a DependentSFNode or DependentMFNode specificat...
Definition: DependentNodeFields.h:48
The Field class.
Definition: Field.h:46
Node is the base class for all classes that can be part of the H3D scene-graph.
Definition: Node.h:46
The NurbsTextureCoordinate node is a NURBS surface existing in the parametric domain of its surface h...
Definition: NurbsTextureCoordinate.h:71
virtual void onAdd(Node *n)
This function will be called when the value of RefCountSField changes.
Definition: RefCountSField.h:164
TextureCoordinateGenerator supports the automatic generation of texture coodinates for geometric shap...
Definition: TextureCoordinateGenerator.h:92
TraverseInfo is a structure that is passed along when traversing the scene graph.
Definition: TraverseInfo.h:57
This is the base node type for all coordinate node types in X3D.
Definition: X3DCoordinateNode.h:47
This is the base node type for all geometric property node types defined in X3D.
Definition: X3DGeometricPropertyNode.h:43
H3DUniquePtr< Field > propertyChanged
Field that indicated whether the properties have changed.
Definition: X3DGeometricPropertyNode.h:53
This field class takes as input SFNode field and checks whether this is one of the allowed textureNod...
Definition: X3DNurbsSurfaceGeometryNode.h:153
~TexCoordOrNurbsTex()
Destructor.
Definition: X3DNurbsSurfaceGeometryNode.h:160
The X3DNurbsSurfaceGeometryNode represents the abstract geometry type for all types of NURBS surfaces...
Definition: X3DNurbsSurfaceGeometryNode.h:126
H3DUniquePtr< SFInt32 > uDimension
Defines the number of control points in the u dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:333
~X3DNurbsSurfaceGeometryNode()
Destructor.
Definition: X3DNurbsSurfaceGeometryNode.h:186
CoordBoundField SFBound
The bound field for X3DNurbsSurfaceGeometryNode is a CoordBoundField.
Definition: X3DNurbsSurfaceGeometryNode.h:149
H3DUniquePtr< SFInt32 > vOrder
Defines the order of the surface in the v dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:371
H3DUniquePtr< Field > printWarning
A field used to check if a warning should be printed.
Definition: X3DNurbsSurfaceGeometryNode.h:380
H3DUniquePtr< SFInt32 > vTessellation
vTesselation provides a hint to the tessellation system of the nurbs surface.
Definition: X3DNurbsSurfaceGeometryNode.h:284
DependentSFNode< X3DGeometricPropertyNode, FieldRef< X3DGeometricPropertyNode, Field, &X3DGeometricPropertyNode::propertyChanged > > TexCoordOrNurbsTexDependent
The SFTextureCoordinteNode is dependent on the propertyChanged field of the contained X3DTextureCoord...
Definition: X3DNurbsSurfaceGeometryNode.h:146
static H3DNodeDatabase database
The H3DNodeDatabase for this node.
Definition: X3DNurbsSurfaceGeometryNode.h:374
H3DUniquePtr< SFInt32 > uTessellation
uTesselation provides a hint to the tessellation system of the nurbs surface.
Definition: X3DNurbsSurfaceGeometryNode.h:275
virtual int nrTriangles()
The number of triangles renderered in this geometry, we don't know so return -1.
Definition: X3DNurbsSurfaceGeometryNode.h:221
H3DUniquePtr< SFInt32 > vDimension
Defines the number of control points in the v dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:341
H3DUniquePtr< SFBool > uClosed
The uClosed defines whether the curve should be rendered as a closed object in the u direction.
Definition: X3DNurbsSurfaceGeometryNode.h:316
H3DUniquePtr< SFBool > solid
Specifies if both sides of the Sphere should be rendered or only the outside.
Definition: X3DNurbsSurfaceGeometryNode.h:307
H3DUniquePtr< MFDouble > vKnot
Defines the knot values of the surface in the v dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:355
H3DUniquePtr< MFDouble > uKnot
Defines the knot values of the surface in the u dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:348
H3DUniquePtr< TexCoordOrNurbsTex > texCoord
texCoord provides additional information on how to generate texture coordinates.
Definition: X3DNurbsSurfaceGeometryNode.h:266
H3DUniquePtr< SFBool > vClosed
The vClosed defines whether the curve should be rendered as a closed object in the v direction.
Definition: X3DNurbsSurfaceGeometryNode.h:325
DependentSFNode< X3DCoordinateNode, FieldRef< X3DGeometricPropertyNode, Field, &X3DCoordinateNode::propertyChanged > > SFCoordinateNode
The SFCoordinateNode is dependent on the propertyChanged field of the contained X3DCoordinateNode.
Definition: X3DNurbsSurfaceGeometryNode.h:135
H3DUniquePtr< MFDouble > weight
A weight value that shall be greater than zero is assigned to each controlPoint.
Definition: X3DNurbsSurfaceGeometryNode.h:298
virtual void renderBetweenBeginEnd(GLUnurbsObj *, X3DTextureCoordinateNode *, TextureCoordinateGenerator *, NurbsTextureCoordinate *, GLfloat *, GLfloat *, GLfloat *, GLfloat *, GLfloat *, H3DInt32 &, GLfloat *, H3DInt32 &, H3DInt32 &, H3DInt32 &)
Function called by render to render the small part that differs between NurbsPatchSurface and NurbsTr...
Definition: X3DNurbsSurfaceGeometryNode.h:228
H3DUniquePtr< SFInt32 > uOrder
Defines the order of the surface in the u dimension.
Definition: X3DNurbsSurfaceGeometryNode.h:363
H3DUniquePtr< SFCoordinateNode > controlPoint
controlPoint defines a set of control points of dimension uDimension × vDimension.
Definition: X3DNurbsSurfaceGeometryNode.h:242
This abstract node type is the base type for all geometry node types that are created parametrically ...
Definition: X3DParametricGeometryNode.h:44
This abstract node type is the base type for all node types which specify texture coordinates.
Definition: X3DTextureCoordinateNode.h:55
H3D API namespace.
Definition: Anchor.h:38
The H3DNodeDatabase contains a mapping between a name of a Node and the constructor for the Node with...
Definition: H3DNodeDatabase.h:194