29 #ifndef __APPEARANCE_H__
30 #define __APPEARANCE_H__
165 Appearance( Inst< DisplayList > _displayList = 0,
166 Inst< SFFillProperties > _fillProperties = 0,
167 Inst< SFLineProperties > _lineProperties = 0,
168 Inst< SFMaterialNode > _material = 0,
169 Inst< SFNode > _metadata = 0,
170 Inst< SFTextureNode > _texture = 0,
171 Inst< SFTextureTransformNode > _textureTransform = 0,
172 Inst< SFSurface > _surface = 0,
173 Inst< MFShaderNode > _shaders = 0,
174 Inst< SFRenderProperties > _renderProperties = 0,
175 Inst< SFBool > _shadow = 0);
178 virtual void render();
182 virtual void preRender();
187 virtual void postRender();
192 virtual GLbitfield getAffectedGLAttribs();
198 virtual bool isTransparent();
203 return shadow->getValue();
212 return default_using_multi_pass_transparency;
Contains the DependentSFNode and DependentMFNode template classes.
Header file for FillProperties, X3D scene-graph node.
Header file for LineProperties, X3D scene-graph node.
Header file for RenderProperties, X3D scene-graph node.
Header file for X3DAppearanceNode, X3D scene-graph node.
Header file for X3DMaterialNode, X3D scene-graph node.
Header file for X3DShaderNode, X3D scene-graph node.
Header file for X3DTextureNode, X3D abstract texture scene-graph node.
Header file for X3DTextureTransformNode, X3D scene-graph node.
The Appearance node specifies the visual properties of geometry.
Definition: Appearance.h:99
H3DUniquePtr< SFFillProperties > fillProperties
If specified it contains a FillProperties node that specifies additional properties to be applied to ...
Definition: Appearance.h:221
DependentSFNode< X3DMaterialNode, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFMaterialNode
The SFMaterialNode field is dependent on the displayList field of the containing X3DMaterialNode.
Definition: Appearance.h:126
DependentSFNode< LineProperties, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFLineProperties
The SFLineProperties field is dependent on the displayList field of the containing LineProperties nod...
Definition: Appearance.h:117
H3DUniquePtr< SFTextureTransformNode > textureTransform
Contains a X3DTextureTransformNode that specifies a transformation of texture coordinates.
Definition: Appearance.h:254
DependentSFNode< RenderProperties, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFRenderProperties
The SFRenderProperties field is dependent on the displayList field of the containing X3DShaderNode no...
Definition: Appearance.h:162
DependentSFNode< FillProperties, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFFillProperties
The SFFillProperties field is dependent on the displayList field of the containing FillProperties nod...
Definition: Appearance.h:108
H3DUniquePtr< MFShaderNode > shaders
The shaders field defines the collection of shaders of various languages in the order of preference.
Definition: Appearance.h:265
H3DUniquePtr< SFMaterialNode > material
The material field, if specified, shall contain a Material node.
Definition: Appearance.h:239
virtual bool hasGeometryShadow()
This function return true if the appearance has decided that shadow should be cast.
Definition: Appearance.h:202
static H3DNodeDatabase database
The H3DNodeDatabase for this node.
Definition: Appearance.h:287
virtual bool usingMultiPassTransparency()
This function checks if multi-pass transparency should be used or not (see RenderProperties_multiPass...
Definition: Appearance.h:208
H3DUniquePtr< SFTextureNode > texture
Contains a X3DTextureNode to be used in the texturing.
Definition: Appearance.h:246
H3DUniquePtr< SFBool > shadow
The shadow field specifies if the geometry this Appearance is used on should cast a shadow or not.
Definition: Appearance.h:284
DependentSFNode< X3DTextureTransformNode, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFTextureTransformNode
The SFTextureTransformNode field is dependent on the displayList field of the containing X3DTextureTr...
Definition: Appearance.h:135
H3DUniquePtr< SFLineProperties > lineProperties
If specified it contains a LineProperties node that specifies additional properties to be applied to ...
Definition: Appearance.h:229
DependentSFNode< X3DTextureNode, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > SFTextureNode
The SFTextureNode field is dependent on the displayList field of the containing X3DTextureNode node.
Definition: Appearance.h:144
H3DUniquePtr< SFRenderProperties > renderProperties
The renderProperties field, if specified, shall contain a RenderProperties node.
Definition: Appearance.h:275
DependentMFNode< X3DShaderNode, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > MFShaderNode
The MFShaderNode field is dependent on the displayList field of the containing X3DShaderNode node.
Definition: Appearance.h:153
DependentMFNode are modified TypedMFNode fields where the field dirty status is dependent on fields i...
Definition: DependentNodeFields.h:336
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 FillProperties node specifies additional properties to be applied to all polygonal areas on top o...
Definition: FillProperties.h:78
We use the Field's lazy evaluation mechanisms to manage the GL display lists for rendering,...
Definition: H3DDisplayListObject.h:60
This abstract interface class is the base class for all node types that wants to create an OpenGL dis...
Definition: H3DDisplayListObject.h:54
H3DUniquePtr< DisplayList > displayList
The DisplayList instance handling the OpenGL caching of this object.
Definition: H3DDisplayListObject.h:256
The LineProperties node specifies additional properties to be applied to all line geometry.
Definition: LineProperties.h:76
The RenderProperties node specifies additional rendering options that cannot be specified with the X3...
Definition: RenderProperties.h:79
H3DUniquePtr< SFBool > multiPassTransparency
If the multiPassTransparency field is true, and we have a transparent shape, the entire scene will be...
Definition: RenderProperties.h:174
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 Appearance nodes.
Definition: X3DAppearanceNode.h:44
This is the base node type for all Material nodes.
Definition: X3DMaterialNode.h:41
This abstract node type is the base type for all node types which specify a programmable shader.
Definition: X3DShaderNode.h:61
This abstract node type is the base type for all node types which specify sources for texture images.
Definition: X3DTextureNode.h:47
This abstract node type is the base type for all node types which specify a transformation of texture...
Definition: X3DTextureTransformNode.h:40
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