H3D API  2.4.1
NurbsPatchSurface.h
Go to the documentation of this file.
1 // Copyright 2004-2019, SenseGraphics AB
3 //
4 // This file is part of H3D API.
5 //
6 // H3D API is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // H3D API is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with H3D API; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // A commercial license is also available. Please contact us at
21 // www.sensegraphics.com for more information.
22 //
23 //
27 //
29 #ifndef __NURBSPATCHSURFACE_H__
30 #define __NURBSPATCHSURFACE_H__
31 
33 
34 namespace H3D {
35 
123  public:
124 
126  NurbsPatchSurface( Inst< SFNode > _metadata = 0,
127  Inst< SFBound > _bound = 0,
128  Inst< DisplayList > _displayList = 0,
129  Inst< MFBool > _isTouched = 0,
130  Inst< MFVec3f > _force = 0,
131  Inst< MFVec3f > _contactPoint = 0,
132  Inst< MFVec3f > _contactNormal = 0,
133  Inst< SFCoordinateNode > _controlPoint = 0,
134  Inst< TexCoordOrNurbsTex > _texCoord = 0,
135  Inst< SFInt32 > _uTessellation = 0,
136  Inst< SFInt32 > _vTessellation = 0,
137  Inst< MFDouble > _weight = 0,
138  Inst< SFBool > _solid = 0,
139  Inst< SFBool > _uClosed = 0,
140  Inst< SFBool > _vClosed = 0,
141  Inst< SFInt32 > _uDimension = 0,
142  Inst< SFInt32 > _vDimension = 0,
143  Inst< MFDouble > _uKnot = 0,
144  Inst< MFDouble > _vKnot = 0,
145  Inst< SFInt32 > _uOrder = 0,
146  Inst< SFInt32 > _vOrder = 0 );
147 
148  // Function called by render to render the small part that differs
149  // between NurbsPatchSurface and NurbsTrimmedSurface. The arguments
150  // are things that are needed to render that difference.
151  virtual void renderBetweenBeginEnd(
152  GLUnurbsObj *_nurbs_object,
153  X3DTextureCoordinateNode *tex_coord_node,
154  TextureCoordinateGenerator *tex_coord_gen,
155  NurbsTextureCoordinate *nurbs_tex_coord,
156  GLfloat *texKnotU,
157  GLfloat *texKnotV,
158  GLfloat *texCoordinates,
159  GLfloat *u_knots,
160  GLfloat *v_knots,
161  H3DInt32 &sizeOfVertex,
162  GLfloat *withWeights,
163  H3DInt32 &uSizeToUse,
164  H3DInt32 &vSizeToUse,
165  H3DInt32 &map2Vertex3Or4 );
166 
169  };
170 }
171 
172 #endif
Header file for X3DNurbsSurfaceGeometryNode, X3D scene-graph node.
The NurbsPatchSurface node is a contiguous NURBS surface patch.
Definition: NurbsPatchSurface.h:122
static H3DNodeDatabase database
The H3DNodeDatabase for this node.
Definition: NurbsPatchSurface.h:168
NurbsPatchSurface(Inst< SFNode > _metadata=0, Inst< SFBound > _bound=0, Inst< DisplayList > _displayList=0, Inst< MFBool > _isTouched=0, Inst< MFVec3f > _force=0, Inst< MFVec3f > _contactPoint=0, Inst< MFVec3f > _contactNormal=0, Inst< SFCoordinateNode > _controlPoint=0, Inst< TexCoordOrNurbsTex > _texCoord=0, Inst< SFInt32 > _uTessellation=0, Inst< SFInt32 > _vTessellation=0, Inst< MFDouble > _weight=0, Inst< SFBool > _solid=0, Inst< SFBool > _uClosed=0, Inst< SFBool > _vClosed=0, Inst< SFInt32 > _uDimension=0, Inst< SFInt32 > _vDimension=0, Inst< MFDouble > _uKnot=0, Inst< MFDouble > _vKnot=0, Inst< SFInt32 > _uOrder=0, Inst< SFInt32 > _vOrder=0)
Constructor.
Definition: NurbsPatchSurface.cpp:46
virtual void renderBetweenBeginEnd(GLUnurbsObj *_nurbs_object, X3DTextureCoordinateNode *tex_coord_node, TextureCoordinateGenerator *tex_coord_gen, NurbsTextureCoordinate *nurbs_tex_coord, GLfloat *texKnotU, GLfloat *texKnotV, GLfloat *texCoordinates, GLfloat *u_knots, GLfloat *v_knots, H3DInt32 &sizeOfVertex, GLfloat *withWeights, H3DInt32 &uSizeToUse, H3DInt32 &vSizeToUse, H3DInt32 &map2Vertex3Or4)
Function called by render to render the small part that differs between NurbsPatchSurface and NurbsTr...
Definition: NurbsPatchSurface.cpp:81
The NurbsTextureCoordinate node is a NURBS surface existing in the parametric domain of its surface h...
Definition: NurbsTextureCoordinate.h:71
TextureCoordinateGenerator supports the automatic generation of texture coodinates for geometric shap...
Definition: TextureCoordinateGenerator.h:92
The X3DNurbsSurfaceGeometryNode represents the abstract geometry type for all types of NURBS surfaces...
Definition: X3DNurbsSurfaceGeometryNode.h:126
This abstract node type is the base type for all node types which specify texture coordinates.
Definition: X3DTextureCoordinateNode.h:55
int H3DInt32
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