# TAbstractSequencerNode.ForceContinuousValue_Changed
Send value_changed event on any input, even you receive set_fraction that does not
change previous key range.
This means that sequencer node generates output event (value_changed) more often,
even if internal node knowledge says that "no change occurred".
See https://castle-engine.io/x3d_implementation_eventutilities_extensions.php#section_forceContinuousValue_Changed .

# TAbstractViewpointNode.Orientation
Orientation of the viewpoint, expressed as rotation to transform default direction and up
(DefaultX3DCameraDirection, DefaultX3DCameraUp).

# TAbstractViewpointNode.GravityTransform
Should the gravity vector be affected by the viewpoint transformation,
that is by the @link(TTransformNode) instances that contain this TAbstractViewpointNode.

# TAbstractViewpointNode.GravityUp
Specify the gravity vector explicitly.
See https://castle-engine.io/x3d_implementation_navigation_extensions.php .
@deprecated

# TTransformNode.Center
Pivot around which the @link(Rotation) and @link(Scale) are performed.

# TTransformNode.Rotation
Rotate the children in 3D, around a given axis by a given angle.
Rotation is done around @link(Center).

# TTransformNode.Scale
Scale in 3D. Scaling is done around @link(Center)
and with orientation given by @link(ScaleOrientation).

We do the best we can to work with @italic(any) scale value,
even negative or zero. But usually, it's best to keep the scale
positive. See the @link(TCastleTransform.Scale) documentation for some
good guidelines about the scale.

# TTransformNode.ScaleOrientation
Orientation in which 3D @link(Scale) is performed.

# TTransformNode.Translation
Translate (move) the children.

# TAbstractShapeNode.Render
Is the shape visible.
See https://castle-engine.io/x3d_implementation_shape_extensions.php#section_ext_shape_render

# TCommonSurfaceShaderNode.DiffuseTexture
The texture controlling the diffuse color, multiplied by @link(DiffuseFactor).

# TCommonSurfaceShaderNode.MultiDiffuseAlphaTexture
The texture controlling the diffuse (rgb) and alpha (alpha channel).
Diffuse color is multiplied by @link(DiffuseFactor), alpha is
(or rather: should be) multiplied by @link(AlphaFactor).

# TCommonSurfaceShaderNode.NormalTexture
Normalmap for bump mapping (the texture controlling the normals).

# TImageBackgroundNode.Texture
Texture displayed in a full-screen quad.
Only 2D single-texture nodes are supported now.
If you leave this as @nil, the image background has no visible effect.

# TImageBackgroundNode.Color
Color that is multiplied by the texture color. Opaque white by default.

Note that the alpha component of this color matters
(just like the alpha channel of the texture in @link(Texture)).
If the resulting image is partially-transparent,
it will be mixed with black color.

# TAbstractX3DGroupingNode.BBox
You can provide a manually-calculated bounding box of the group here,
for optimization purposes. Leave this field as empty (TBox3D.Empty)
to let the engine calculate best bounding box automatically.

@italic(This field is ignored for now.)

See the X3D Grouping component docs:
https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/group.html ,
section "10.2.2 Bounding boxes ".

# TAbstractShapeNode.BBox
You can provide a manually-calculated bounding box of the shape here,
for optimization purposes. Leave this field as empty (TBox3D.Empty)
to let the engine calculate best bounding box automatically.

Manually providing the bounding box makes sense if you can do it
more efficiently than the engine.
E.g. if the shape vertexes are animated, then the engine would have
to recalcualate the perfect bounding box every frame.
It is more efficient to calculate a bounding box of all possible animation
frames, and store it here.

The glTF skinned animation automatically fills this field for the affected shapes.

@italic(Note: This property is not useful if you want to know the bounding box of a shape,
calculated by the engine). This property only allows to override the automatic engine calculation.

To read the calculated bounding box, load the nodes to TCastleScene.
You can then use
@link(TCastleTransform.BoundingBox Scene.BoundingBox),
@link(TCastleTransform.LocalBoundingBox Scene.LocalBoundingBox),
@link(TCastleTransform.WorldBoundingBox Scene.WorldBoundingBox) to know bounding box of the scene.
To get bounding box of a particular shape,
enumerate @link(TCastleSceneCore.Shapes) to find the correct shape
(using any criteria you want -- note that the same TShapeNode may be reused multiple times),
and then read @link(TShape.BoundingBox), @link(TShape.LocalBoundingBox).

# TAbstractComposedGeometryNode.SetTangent
Tangent vectors describe the tangent coordinate-space, used by the bump mapping algorithm.
If specified, the ordering of tangents should be the same as normals,
i.e. they should follow the NormalPerVertex and such properties.

# TBillboardNode.AxisOfRotation
Axis around which the billboard rotates to face the camera.
Can be zero to rotate freely.

# TAppearanceNode.BlendMode

Determines the exact blending equation used, in case @link(AlphaMode) indicates blending.
See https://castle-engine.io/x3d_extensions.php#section_ext_blending .

# TAppearanceNode.Texture

Main texture used by this appearance (diffuse texture for Phong lighting model,
base texture for physical lighting model,
emissive texture for the unlit lighting model).
It is usually simpler to set the relevant texture inside material node,
like @link(TMaterialNode.DiffuseTexture),
@link(TPhysicalMaterialNode.BaseTexture),
@link(TUnlitMaterialNode.EmissiveTexture).

# TAppearanceNode.NormalMap

Normal map of this appearance.
See https://castle-engine.io/x3d_implementation_texturing_extensions.php#section_ext_bump_mapping .

@deprecated

This is a deprecated property. It is better to set normal map within the material node,
using the @link(TAbstractOneSidedMaterialNode.NormalTexture).
