Castle Game Engine: X3DNodes: Class TAbstractBindableNode

# Class TAbstractBindableNode
Description | Hierarchy | Fields | Methods | Properties
## Unit X3DNodes ## Declaration `type TAbstractBindableNode = class(TAbstractChildNode)` ## Description no description available, TAbstractChildNode description follows no description available, TAbstractNode description follows Base X3D node. Almost all X3D nodes inherit from this. (Exception: X3DMetadataObject. So you cannot have metadata of metadata of...) ## Hierarchy TPersistent TNonRefCountedInterfacedPersistent TX3DFileItem TX3DNode TAbstractNode TAbstractChildNode TAbstractBindableNode ## Overview ### Methods
| `procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;`
| `procedure CreateNode; override;`
### Properties
| `property EventSet_bind: TSFBoolEvent read FEventSet_bind;`
| `property EventBindTime: TSFTimeEvent read FEventBindTime;`
| `property EventIsBound: TSFBoolEvent read FEventIsBound;`
| `property Transform: TMatrix4Single read FTransform;`
| `property TransformScale: Single read FTransformScale;`
## Description ### Methods
| `procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;`
| `procedure CreateNode; override;`
### Properties
| `property EventSet_bind: TSFBoolEvent read FEventSet_bind;`
| `property EventBindTime: TSFTimeEvent read FEventBindTime;`
| `property EventIsBound: TSFBoolEvent read FEventIsBound;`
| `property Transform: TMatrix4Single read FTransform;`
Transformation of this bindable node. Bound nodes cannot be instantiated multiple number of times (this would make simple event like "set_bind" not possible, as it would not be known in what coordinate space the node is bound), so it's perfectly safe and comfortable to just keep their transformation here, a their property. It is gathered during traversing. Last BeforeTraverse call for this node sets Transform properties. By default, these represent identity transformation. Note that using TransformScale for bindable nodes like fog is a little simplification. Theoretically, the scale can be non-uniform, and around an arbitrary axis. So to apply e.g. fog, we should transform the 3D world back into local fog coordinate system, and calculate the distances there. Instead right now we do the opposite: transform stuff like fog VisibilityRange by TransformScale, and calculate distances in world coordinate system. This is a simplification, but in practice it's perfect (who uses non-uniform fog scale?) and it can be expressed for renderers (OpenGL) without any problems.
| `property TransformScale: Single read FTransformScale;`
Generated by PasDoc 0.13.0 on 2015-06-15 04:43:14