|
H3D API
2.4.1
|
The CoordinateDeformer uses a H3DFunctionNode to determine the deformation. More...
#include <H3D/CoordinateDeformer.h>

Public Member Functions | |
| CoordinateDeformer (Inst< SFFunctionNode > _distanceToDepth=0, Inst< SFFloat > _plasticity=0, Inst< SFString > _deviceAlgorithm=0) | |
| Constructor. | |
| virtual void | deformPoints (const vector< bool > &is_touched, const vector< Vec3f > &touch_point, const vector< Vec3f > &touch_normal, const vector< Vec3f > &touch_force, const vector< Vec3f > &penetration_points, const vector< Vec3f > &orig_points, const vector< Vec3f > &resting_points, const vector< Vec3f > &deformed__points, vector< Vec3f > &new_resting_points, vector< Vec3f > &new_deformed_points) |
| The deformation of the points will be calculated depending on the distanceToDepth field and the plasticity field. | |
Public Member Functions inherited from H3D::H3DCoordinateDeformerNode | |
| H3DCoordinateDeformerNode () | |
| Constructor. | |
| virtual string | defaultXMLContainerField () |
| Returns the default xml containerField attribute value. More... | |
Public Member Functions inherited from H3D::Node | |
| 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< SFFunctionNode > | distanceToDepth |
| The distanceToDepth field specifies a function from the distance from the point of contact to the depth of the deformation. More... | |
| H3DUniquePtr< SFFloat > | plasticity |
| The plasticity field defines the plasticity. More... | |
| H3DUniquePtr< SFString > | deviceAlgorithm |
| The deviceAlgorithm field contains a string that controls how the deformation is calculated for a coordinate when several devices are in use. More... | |
Static Public Attributes | |
| static H3DNodeDatabase | database |
| The H3DNodeDatabase for this node. | |
Additional Inherited Members | |
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. | |
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 Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) |
| A helper function for nodes that implement clone() More... | |
The CoordinateDeformer uses a H3DFunctionNode to determine the deformation.
The distanceToDepth field specifies a function from the distance from the point of contact to the depth of the deformation. The depth is defined as a float 0 is no deformation at all, and 1 will result in a deformation that is as deep as penetration depth of the surface (i.e. the distance the haptics device has penetrated the surface.
The plasticity field defines the plasticity. 0 means that the deformation is non-plastic (resting points will not be changed) and 1 means that it is fully plastic (resting points will be the same as deformed points) Examples:
| H3DUniquePtr< SFString > H3D::CoordinateDeformer::deviceAlgorithm |
The deviceAlgorithm field contains a string that controls how the deformation is calculated for a coordinate when several devices are in use.
The allowed values are: "MAX" - The biggest deformation of a coordinate is chosen. "AVG" - An average of the deformation from each device for a coordinate is calculated.
Access type: inputOutput Default value: "MAX"
Referenced by deformPoints().
| H3DUniquePtr< SFFunctionNode > H3D::CoordinateDeformer::distanceToDepth |
The distanceToDepth field specifies a function from the distance from the point of contact to the depth of the deformation.
The depth is defined as a float 0 is no deformation at all, and 1 will result in a deformation that is as deep as penetration depth of the surface (i.e. the distance the haptics device has penetrated the surface.
Access type: inputOutput
Referenced by deformPoints().
| H3DUniquePtr< SFFloat > H3D::CoordinateDeformer::plasticity |
The plasticity field defines the plasticity.
0 means that the deformation is non-plastic (resting points will not be changed) and 1 means that it is fully plastic (resting points will be the same as deformed points)
Access type: inputOutput Default value: 0.0
Referenced by deformPoints().