H3D API  2.4.1
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
H3D::MultiTextureCoordinate Class Reference

MultiTextureCoordinate supplies multiple texture coordinates per vertex. More...

#include <H3D/MultiTextureCoordinate.h>

Inheritance diagram for H3D::MultiTextureCoordinate:
Inheritance graph

Public Types

typedef DependentMFNode< X3DTextureCoordinateNode, FieldRef< X3DGeometricPropertyNode, Field, &X3DTextureCoordinateNode::propertyChanged >, true > MFTextureCoordinateNode
 The MFTextureCoordinateNode is dependent on the propertyChanged field of the contained X3DTextureCoordinateNodes.
 
- Public Types inherited from H3D::Node
typedef std::map< Node *, Node * > DeepCopyMap
 A map type used during a deep copy clone() to map from original nodes to cloned nodes.
 

Public Member Functions

 MultiTextureCoordinate (Inst< SFNode > _metadata=0, Inst< MFTextureCoordinateNode > _texCoord=0)
 Constructor.
 
virtual bool supportsExplicitTexCoords ()
 Returns true if any of the nodes in the texCoord field supports explicit coordinates.
 
virtual bool supportsTexGen ()
 Returns true if any of the nodes in the texCoord field supports texture coordinate generation.
 
virtual void render (int index)
 This function call is not allowed. More...
 
virtual void renderForTextureUnit (int index, unsigned int texture_unit)
 Render the texture coordinate for the currently active texture unit.
 
virtual unsigned int nrAvailableTexCoords ()
 Returns the number of texture coordinates this node can render.
 
virtual void renderArray ()
 This function all is not allowed. More...
 
virtual void renderArrayForTextureUnit (unsigned int texture_unit)
 Perform the OpenGL commands to render all texture coordinates as an array for the given texture unit.
 
virtual void disableArrayForTextureUnit (unsigned int texture_unit)
 Disable the array state enabled in renderArrayForTextureUnit().
 
virtual void renderVertexBufferObject ()
 Perform the OpenGL commands to render all vertices as a vertex buffer object.
 
virtual void renderVertexBufferObjectForTextureUnit (unsigned int texture_unit)
 Perform the OpenGL commands to render all texture coordinates as an vertex buffer object for the given texture unit.
 
virtual void disableVertexBufferObjectForTextureUnit (unsigned int texture_unit)
 Disable the array state enabled in renderArrayForTextureUnit().
 
virtual void startTexGen ()
 Start hardware texture coordinate generation.
 
virtual void stopTexGen ()
 Start hardware texture coordinate generation.
 
virtual void startTexGenForTextureUnit (unsigned int texture_unit)
 Start hardware texture coordinate generation for the given texture unit.
 
virtual void stopTexGenForTextureUnit (unsigned int texture_unit)
 Stop the texture coordinate generation started with startTexGen().
 
virtual bool supportsGetTexCoord (unsigned int texture_unit)
 Returns true if the getTexCoord function is available for use.
 
virtual Vec4f getTexCoord (int index, unsigned int texture_unit)
 Gets texture coordinate of the given index and texture unit.
 
- Public Member Functions inherited from H3D::X3DTextureCoordinateNode
 X3DTextureCoordinateNode (Inst< SFNode > _metadata=0)
 Constructor.
 
void renderForTextureUnits (int index, unsigned int start_unit, unsigned int end_unit)
 Render the texture coordinate for the texture units between and including start_unit and end_unit.
 
void renderForActiveTexture (int index)
 Render the texture coordinate for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
void renderForTexture (int index, X3DTextureNode *t)
 Render the texture coordinate for all texture units used by the texture.
 
void renderArrayForTexture (X3DTextureNode *t)
 Render the texture coordinate for all texture units used by the texture.
 
void renderArrayForActiveTexture ()
 Render the texture coordinate for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
void renderArrayForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Perform the OpenGL commands to render all texture coordinates as an array for the texture units between and including start_unit and end_unit.
 
virtual void disableArray ()
 Disable the array state enabled in renderArray().
 
void disableArrayForTexture (X3DTextureNode *t)
 Disable the array state enabled in renderArrayForTexture.
 
void disableArrayForActiveTexture ()
 Disable the array state enabled in renderArrayForActiveTexture.
 
void disableArrayForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Disable the array state enabled in renderArrayForTextureUnits().
 
void renderVertexBufferObjectForTexture (X3DTextureNode *t)
 Render the texture coordinate for all texture units used by the texture.
 
void renderVertexBufferObjectForActiveTexture ()
 Render the texture coordinate for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
void renderVertexBufferObjectForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Perform the OpenGL commands to render all texture coordinates as an vertex buffer object for the texture units between and including start_unit and end_unit.
 
virtual void setAttributeData ()
 Implement the method to specify data and releated information.
 
virtual void renderVBO ()
 VBO rendering implementation.
 
virtual void disableVBO ()
 VBO disabling implementation.
 
void disableVertexBufferObjectForTexture (X3DTextureNode *t)
 Disable the vertex buffer object state state enabled in renderVertexBufferObjectForTexture.
 
void disableVertexBufferObjectForActiveTexture ()
 Disable the vertex buffer object state enabled in renderVertexBufferObjectForActiveTexture.
 
void disableVertexBufferObjectForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Disable the vertex buffer object state enabled in renderVertexBufferObjectForTextureUnits().
 
virtual void startTexGenForTexture (X3DTextureNode *t)
 Start hardware texture coordinate generateion for all texture units used by the texture

 
void startTexGenForActiveTexture ()
 Start hardware texture coordinate generateion for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
virtual void stopTexGenForTexture (X3DTextureNode *t)
 Stop texture coordinate generateion for all texture units used by the texture

 
void stopTexGenForActiveTexture ()
 Stop hardware texture coordinate generateion for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
void startTexGenForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Start hardware texture coordinate generation for the texture units between and including start_unit and end_unit. More...
 
void stopTexGenForTextureUnits (unsigned int start_unit, unsigned int end_unit)
 Stop the texture coordinate generation started with startTexGenForTextureUnits().
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
- Public Member Functions inherited from H3D::X3DGeometricPropertyNode
 X3DGeometricPropertyNode (Inst< SFNode > _metadata=0)
 Constructor.
 
- Public Member Functions inherited from H3D::X3DNode
 X3DNode (Inst< SFNode > _metadata=0)
 Constructor.
 
X3DMetadataObjectgetMetadataByName (const string &_name)
 Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Nodeclone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL)
 Returns a new instance of this node type with the same state as this one. More...
 
virtual ~Node ()
 Destructor.
 
X3DPrototypeInstancegetProtoInstanceParent ()
 If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More...
 
void setProtoInstanceParent (X3DPrototypeInstance *p)
 Set the X3DPrototypeInstance this node is the the root node if applicaple.
 
virtual void render ()
 the render() function is used for the depth-first rendering traversal of the scene-graph. More...
 
virtual void traverseSG (TraverseInfo &ti)
 traverseSG is called once per scenegraph loop on the scene in order to traverse the scenegraph. More...
 
virtual bool lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result)
 Detect intersection between a line segment and the Node. More...
 
virtual void closestPoint (const Vec3f &p, NodeIntersectResult &result)
 Find closest point on Node to p. More...
 
virtual bool movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result)
 Detect collision between a moving sphere and the Node. More...
 
virtual FieldgetField (const string &_name) const
 return a pointer to the field specified by name within this instance
 
int addDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
int removeDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
- Public Member Functions inherited from H3D::GLVertexAttributeObject
 GLVertexAttributeObject (VERTEXATTRIBUTE::VERTEXATTRIBUTETYPE type)
 Constructor.
 
virtual ~GLVertexAttributeObject ()
 Destructor.
 
virtual bool preRenderCheckFail ()
 pre-render check to dertermine if need to render this vertex attribute
 
void renderVertexBufferObject ()
 Perform the OpenGL commands to render all vertices as a vertex buffer object.
 
void disableVertexBufferObject ()
 Disable the vertex buffer object enabled in renderVertexBufferObject().
 
virtual void updateVertexBufferObject ()
 Perform the OpenGL commands to update vertex attribute data/format.
 

Public Attributes

H3DUniquePtr< MFTextureCoordinateNodetexCoord
 The X3DTextureCoordinate nodes to use for each texture unit. More...
 
- Public Attributes inherited from H3D::X3DGeometricPropertyNode
H3DUniquePtr< FieldpropertyChanged
 Field that indicated whether the properties have changed. More...
 
- Public Attributes inherited from H3D::X3DNode
H3DUniquePtr< SFNodemetadata
 Meta data about the node. More...
 
- Public Attributes inherited from H3D::GLVertexAttributeObject
H3DUniquePtr< SFBoolisDynamic
 Option to indicate whether this vertex attribute is dynamic or not Access type: inputOutput
Default value: false.
 

Static Public Attributes

static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DNode
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 

Additional Inherited Members

- Static Public Member Functions inherited from H3D::X3DTextureCoordinateNode
static void renderTexCoordForActiveTexture (const Vec3f &tc)
 Render the texture coordinate for all texture units used by the texture in X3DTextureNode::getActiveTexture.
 
static void renderTexCoordForTexture (const Vec3f &tc, X3DTextureNode *t)
 Render the texture coordinate for all texture units used by the given texture .
 
static void renderVertexBufferObjectForActiveTexture (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
 Render the vertex buffer object for all texture units used by the texture in X3DTextureNode::getActiveTexture. More...
 
static void renderVertexBufferObjectForTexture (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer, X3DTextureNode *t)
 Render the vertex buffer object for all texture units used by the given texture. More...
 
static void disableVBOForActiveTexture ()
 Function that corresponds to the static version of the function renderVertexBufferObjectForActiveTexture. More...
 
static void disableVBOForTexture (X3DTextureNode *t)
 Function that corresponds to the static version of the function renderVertexBufferObjectForTexture. More...
 
- Static Public Member Functions inherited from H3D::Node
static unsigned int nrNodesAlive ()
 Returns the nr of nodes currently alive, i.e. nodes created but not destructed.
 
static int nrNodesCreated ()
 Returns the number of nodes created in total since the start of the program.
 
- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static NodegetClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 
- Protected Attributes inherited from H3D::X3DTextureCoordinateNode
unsigned int texture_index
 the current texture index
 
- Protected Attributes inherited from H3D::GLVertexAttributeObject
H3DUniquePtr< FieldvboFieldsUpToDate
 Internal field used to know if vertex buffer object can be created. More...
 

Detailed Description

MultiTextureCoordinate supplies multiple texture coordinates per vertex.

This node can be used to set the texture coordinates for the different texture channels.

By default, if using MultiTexture with an IndexedFaceSet without a MultiTextureCoordinate texCoord node, texture coordinates for channel 0 are replicated along the other channels. Likewise, if there are too few entries in the texCoord field, the last entry is replicated.

Example:

Shape {
appearance Appearance {
texture MultiTexture {
mode [ "MODULATE" "MODULATE" ]
texture [
ImageTexture { url "brick.jpg")
ImageTexture { repeatS FALSE repeatT FALSE url "light_gray.png"}
]
}
}
geometry IndexedFaceSet {
...
texCoord MultiTextureCoord {
TextureCoordinate { ... }
TextureCoordinate { ... }
]
}
}
}
H3DUniquePtr< MFTextureCoordinateNode > texCoord
The X3DTextureCoordinate nodes to use for each texture unit.
Definition: MultiTextureCoordinate.h:157

Examples:

Member Function Documentation

◆ render()

void MultiTextureCoordinate::render ( int  index)
virtual

This function call is not allowed.

Use renderForTextureUnit() or renderForTextureUnits() instead. Call will raise an exception.

Reimplemented from H3D::X3DTextureCoordinateNode.

References H3D_FULL_LOCATION.

◆ renderArray()

void MultiTextureCoordinate::renderArray ( )
virtual

This function all is not allowed.

Use renderForTextureUnit() or renderForTextureUnits() instead. Call will raise an exception.

Reimplemented from H3D::X3DTextureCoordinateNode.

References H3D_FULL_LOCATION.

Member Data Documentation

◆ texCoord

H3DUniquePtr< MFTextureCoordinateNode > H3D::MultiTextureCoordinate::texCoord

The documentation for this class was generated from the following files: