H3D API
2.4.1
|
The ShadowSphere object specifies a sphere casting a shadow for use in the ShadowCaster node. More...
#include <H3D/ShadowSphere.h>
Public Member Functions | |
ShadowSphere (Inst< SFNode > _metadata=0, Inst< SFFloat > _radius=0, Inst< SFVec3f > _position=0, Inst< SFInt32 > _detailLevel=0) | |
Constructor. | |
virtual void | update () |
Override to update data called in render | |
virtual void | computeShadowVolumeInformationCPU (const LightDataStruct &light_data, Matrix4f accumulated_fwd, bool render_caps, std::vector< Vec4d > &coord) |
Override to compute the shadow volume information of this object for light used in shadow caster single buffer mode. More... | |
virtual void | renderShadowGPU (const LightDataStruct &light_data, Matrix4f accumulated_fwd, bool render_caps) |
Override to do implement shadows using a geometry shader. More... | |
![]() | |
H3DShadowObjectNode (Inst< SFNode > _metadata=0, Inst< SFTransformNode > _transform=0, Inst< SFBool > _enabled=0) | |
Constructor. | |
virtual string | defaultXMLContainerField () |
Returns the default xml containerField attribute value. More... | |
![]() | |
X3DNode (Inst< SFNode > _metadata=0) | |
Constructor. | |
X3DMetadataObject * | getMetadataByName (const string &_name) |
Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More... | |
![]() | |
Node () | |
Constructor. | |
virtual Node * | clone (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. | |
X3DPrototypeInstance * | getProtoInstanceParent () |
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 Field * | getField (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 Attributes | |
H3DUniquePtr< SFFloat > | radius |
The radius of the sphere. More... | |
H3DUniquePtr< SFVec3f > | position |
The position of the sphere. More... | |
H3DUniquePtr< SFInt32 > | detailLevel |
The detailLevel field specifies the nr of faces to use for the sides of the shadow cone/cylinder that this object produces. More... | |
![]() | |
H3DUniquePtr< SFTransformNode > | transform |
The transform field specifies a transformation of the shadow volume object. More... | |
H3DUniquePtr< SFBool > | enabled |
Used to turn on/off shadow of this shadow object. More... | |
![]() | |
H3DUniquePtr< SFNode > | metadata |
Meta data about the node. More... | |
Static Public Attributes | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for the node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
Protected Member Functions | |
void | addConvexPolygon (const vector< H3DInt32 > polygon_indices, size_t start_i, size_t end_i, vector< int > &indices) |
Adds the indices for the triangles of the convex polygon to indices. | |
![]() | |
void | cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for the clone() method. More... | |
Additional Inherited Members | |
![]() | |
typedef std::map< Node *, Node * > | DeepCopyMap |
A map type used during a deep copy clone() to map from original nodes to cloned nodes. | |
![]() | |
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. | |
![]() | |
static Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for nodes that implement clone() More... | |
The ShadowSphere object specifies a sphere casting a shadow for use in the ShadowCaster node.
The radius field is the radius of the sphere and the position field is the position of the field.
Examples:
|
virtual |
Override to compute the shadow volume information of this object for light used in shadow caster single buffer mode.
light_data | A struct containing information about the light that is creating the shadows. |
accumulated_fwd | The accumulated forward matrix. |
render_caps | determines if one should draw end caps to the volume or if it is ok to leave it open. |
coord | contains the coords. |
Implements H3D::H3DShadowObjectNode.
References Rotation().
|
virtual |
Override to do implement shadows using a geometry shader.
light_data | A struct containing information about the light that is creating the shadows. |
accumulated_fwd | The accumulated forward matrix. |
render_caps | determines if one should draw end caps to the volume or if it is ok to leave it open. |
Implements H3D::H3DShadowObjectNode.
References angle, Rotation(), and H3D::ShadowCasterShaders::shaderToggle().
H3DUniquePtr< SFInt32 > H3D::ShadowSphere::detailLevel |
The detailLevel field specifies the nr of faces to use for the sides of the shadow cone/cylinder that this object produces.
Access type: inputOutput
Default value: 120
Referenced by ShadowSphere().
H3DUniquePtr< SFVec3f > H3D::ShadowSphere::position |
The position of the sphere.
Access type: inputOutput
Default value: Vec3f(0,0,0)
Referenced by ShadowSphere().
H3DUniquePtr< SFFloat > H3D::ShadowSphere::radius |
The radius of the sphere.
Access type: inputOutput
Default value: 1
Referenced by H3D::Sphere::getShadowObject(), and ShadowSphere().