instantreality 1.0

Component:
Simulator
Status:
fully implemented
Structure type:
concrete
Standard:
Avalon

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
MFColor color MFColor inputOutput per vertex colors
MFFloat collisionDomainParam MFFloat inputOutput parameters like center and radius for defining a parametric collision object, last param [>]0 means [dis]connected
MFInt32 anchorIndex MFInt32 inputOutput contains all indices of points which are not allowed to move (e.g. hair roots)
MFInt32 index MFInt32 inputOutput indices hold topology; -1 for dividing tris/ quads; additionally -2 for dividing primitive strips
MFString 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;
MFString 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
MFVec2f texCoord MFVec2f inputOutput texture coordinates
MFVec3f coord MFVec3f inputOutput the vertex coordinates which are updated each frame
MFVec3f normal MFVec3f inputOutput per vertex normal (calculated by simulation)
MFVec3f refPoint MFVec3f inputOutput reference point of primitive strip
MFVec3f tangent MFVec3f inputOutput per vertex tangent (calculated by simulation)
MFVec4f occluderSpheres MFVec4f inputOutput transformed collision spheres (output used for sorting during rendering)
SFBool enabled SFBool inputOutput TRUE Flag to enable/disable the node behaviour
SFBool localCoordSystem SFBool inputOutput TRUE evaluate calculations (e.g. gravitation) in local or global coordinate frame
SFFloat airFriction SFFloat inputOutput 1.0 [0, inf) additional friction for simulationg air (NYI)
SFFloat localForceScale SFFloat inputOutput 0 scales force offset if in local coordinate system
SFFloat massRadius SFFloat inputOutput 1.0 [0, inf) maximal offset added to collision object size
SFFloat maxBend SFFloat inputOutput 0.1 [0, inf) maximal angle between succeeding chain segments
SFFloat minBend SFFloat inputOutput 0.05 [0, inf) minimal angle between succeeding chain segments
SFFloat slidingFriction SFFloat inputOutput 0.5 [0, inf) friction occuring during fast motion (NYI)
SFFloat speed SFFloat inputOutput 1 Scaling factor for simulation speed.
SFFloat staticFriction SFFloat inputOutput 0.5 [0, inf) friction occuring during slow motion (NYI)
SFInt32 maxStepsPerFrame SFInt32 inputOutput -1 maximum value for iteration steps per frame
SFInt32 minStepsPerFrame SFInt32 inputOutput -1 minimum value for iteration steps per frame
SFNode metadata SFNode inputOutput MetadataObject container for payload metadata inside MetadataSet element
SFTime maxStepTime SFTime inputOutput -1 upper bound for dT (useful for preventing simulation from blowing off if frame rate is too low)
SFTime time SFTime inputOutput 0 Externally triggered time (internally used for dT).
SFVec3f externalForce SFVec3f inputOutput 0 0 0 e.g. wind force
SFVec3f gravity SFVec3f inputOutput 0 -10 0 acceleration of fall due to gravity