CantileverBeamSystem
System based on kinematic chain for simulating things with hair like behaviour. It is best used together with the SortedPrimitiveSet for rendering purposes.
Inheritance
Code
XML encoding
<CantileverBeamSystem index='' anchorIndex='' coord='' normal='' tangent='' color='' texCoord='' refPoint='' localForceScale='0' collisionDomainType='' collisionDomainParam='' gravity='0 -10 0' externalForce='0 0 0' minBend='0.05' maxBend='0.1' massRadius='1.0' staticFriction='0.5' slidingFriction='0.5' airFriction='1.0' occluderSpheres='' time='0' speed='1' minStepsPerFrame='-1' maxStepsPerFrame='-1' maxStepTime='-1' localCoordSystem='TRUE' enabled='TRUE' logFeature='' />
Classic encoding
CantileverBeamSystem { index [] anchorIndex [] coord [] normal [] tangent [] color [] texCoord [] refPoint [] localForceScale 0 collisionDomainType [""] collisionDomainParam [] gravity 0 -10 0 externalForce 0 0 0 minBend 0.05 maxBend 0.1 massRadius 1.0 staticFriction 0.5 slidingFriction 0.5 airFriction 1.0 occluderSpheres [] time 0 speed 1 minStepsPerFrame -1 maxStepsPerFrame -1 maxStepTime -1 localCoordSystem TRUE enabled TRUE logFeature [""] }
Interface
Filter: X3D only | Avalon only | All
id | Name | DataType | PartType | Default | ValueType | Description |
---|---|---|---|---|---|---|
index | MFInt32 | inputOutput | indices hold topology; -1 for dividing tris/ quads; additionally -2 for dividing primitive strips | |||
anchorIndex | MFInt32 | inputOutput | contains all indices of points which are not allowed to move (e.g. hair roots) | |||
coord | MFVec3f | inputOutput | the vertex coordinates which are updated each frame | |||
normal | MFVec3f | inputOutput | per vertex normal (calculated by simulation) | |||
tangent | MFVec3f | inputOutput | per vertex tangent (calculated by simulation) | |||
color | MFColor | inputOutput | per vertex colors | |||
texCoord | MFVec2f | inputOutput | texture coordinates | |||
refPoint | MFVec3f | inputOutput | reference point of primitive strip | |||
localForceScale | SFFloat | inputOutput | 0 | scales force offset if in local coordinate system | ||
collisionDomainType | MFString | inputOutput | [SPHERE, ELLIPSOID] | Collision object type, eg sphere or ellipsoid, each object has up to nine params. SPHERE: a spherical geo approx; ELLIPSOID: an ellipsoidal geo approx; | ||
collisionDomainParam | MFFloat | inputOutput | parameters like center and radius for defining a parametric collision object, last param [>]0 means [dis]connected | |||
gravity | SFVec3f | inputOutput | 0 -10 0 | acceleration of fall due to gravity | ||
externalForce | SFVec3f | inputOutput | 0 0 0 | e.g. wind force | ||
minBend | SFFloat | inputOutput | 0.05 | [0, inf) | minimal angle between succeeding chain segments | |
maxBend | SFFloat | inputOutput | 0.1 | [0, inf) | maximal angle between succeeding chain segments | |
massRadius | SFFloat | inputOutput | 1.0 | [0, inf) | maximal offset added to collision object size | |
staticFriction | SFFloat | inputOutput | 0.5 | [0, inf) | friction occuring during slow motion (NYI) | |
slidingFriction | SFFloat | inputOutput | 0.5 | [0, inf) | friction occuring during fast motion (NYI) | |
airFriction | SFFloat | inputOutput | 1.0 | [0, inf) | additional friction for simulationg air (NYI) | |
occluderSpheres | MFVec4f | inputOutput | transformed collision spheres (output used for sorting during rendering) | |||
time | SFTime | inputOutput | 0 | Externally triggered time (internally used for dT). | ||
speed | SFFloat | inputOutput | 1 | Scaling factor for simulation speed. | ||
minStepsPerFrame | SFInt32 | inputOutput | -1 | minimum value for iteration steps per frame | ||
maxStepsPerFrame | SFInt32 | inputOutput | -1 | maximum value for iteration steps per frame | ||
maxStepTime | SFTime | inputOutput | -1 | upper bound for dT (useful for preventing simulation from blowing off if frame rate is too low) | ||
localCoordSystem | SFBool | inputOutput | TRUE | evaluate calculations (e.g. gravitation) in local or global coordinate frame | ||
enabled | SFBool | inputOutput | TRUE | Flag to enable/disable the node behaviour | ||
logFeature | MFString | inputOutput | state, child, parent, route, eventIn, eventOut | controls the logging of changes, state: log state changes (e.g. live), child: log child add/remove, parent: log parent add/remove, route: log route add/remove; eventIn: log receiving of events, eventOut: log sending of events: guiView, runtime system should create node-view, guiEdit: runtime system should create node-editeverything: log everything | ||
metadata | SFNode | inputOutput | MetadataObject | container for payload metadata inside MetadataSet element |