Class TAbstractComposedGeometryNode

Unit

Declaration

type TAbstractComposedGeometryNode = class(TAbstractGeometryNode)

Description

Base node type for all composed 3D geometry.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 535).

Hierarchy

Overview

Methods

Protected function DirectEnumerateActive(Func: TEnumerateChildrenFunction): Pointer; override;
Public function InternalCoord(State: TX3DGraphTraverseState; out ACoord: TMFVec3f): boolean; override;
Public function CoordField: TSFNode; override;
Public function SkinWeightsJoints(out Weights: TVector4List; out Joints: TInt32List): Boolean; override;
Public function TexCoordField: TSFNode; override;
Public function ColorField: TSFNode; override;
Public function SolidField: TSFBool; override;
Public function AttribField: TMFNode; override;
Public function NormalField: TSFNode; override;
Public function TangentField: TSFNode; override;
Public function InternalFogCoord: TMFFloat; override;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure SetAttrib(const Value: array of TAbstractVertexAttributeNode);
Public procedure SetRadianceTransfer(const Value: array of TVector3); overload;
Public procedure SetRadianceTransfer(const Value: TVector3List); overload;
Public procedure SetSkinWeights0(const Value: array of TVector4); overload;
Public procedure SetSkinWeights0(const Value: TVector4List); overload;
Public procedure SetSkinJoints0(const Value: array of Int32); overload;
Public procedure SetSkinJoints0(const Value: TInt32List); overload;

Properties

Public property FdAttrib: TMFNode read FFdAttrib;
Public property FdColor: TSFNode read FFdColor;
Public property Color: TAbstractColorNode read GetColor write SetColor;
Public property FdCoord: TSFNode read FFdCoord;
Public property Coord: TAbstractCoordinateNode read GetCoord write SetCoord;
Public property FdFogCoord: TSFNode read FFdFogCoord;
Public property FogCoord: TFogCoordinateNode read GetFogCoord write SetFogCoord;
Public property FdNormal: TSFNode read FFdNormal;
Public property Normal: TAbstractNormalNode read GetNormal write SetNormal;
Public property FdTangent: TSFNode read FFdTangent;
Public property Tangent: TTangentNode read GetTangent write SetTangent;
Public property FdTexCoord: TSFNode read FFdTexCoord;
Public property TexCoord: TAbstractTextureCoordinateNode read GetTexCoord write SetTexCoord;
Public property FdCcw: TSFBool read FFdCcw;
Public property Ccw: Boolean read GetCcw write SetCcw;
Public property FdColorPerVertex: TSFBool read FFdColorPerVertex;
Public property ColorPerVertex: Boolean read GetColorPerVertex write SetColorPerVertex;
Public property FdNormalPerVertex: TSFBool read FFdNormalPerVertex;
Public property NormalPerVertex: Boolean read GetNormalPerVertex write SetNormalPerVertex;
Public property FdSolid: TSFBool read FFdSolid;
Public property FdRadianceTransfer: TMFVec3f read FFdRadianceTransfer;
Public property FdSkinWeights0: TMFVec4f read FFdSkinWeights0;
Public property FdSkinJoints0: TMFInt32 read FFdSkinJoints0;

Description

Methods

Protected function DirectEnumerateActive(Func: TEnumerateChildrenFunction): Pointer; override;

This item has no description. Showing description inherited from TX3DNode.DirectEnumerateActive.

Enumerate all active child nodes of given node.

"Active nodes" are the ones affecting current look or collisions, e.g. from Switch node only one child will be enumerated. See Traverse for more precise definition.

"Direct" means that this enumerates only direct descendants, i.e. this is not recursive. See methods like Traverse or EnumerateNodes if you want recursive behavior.

This can enumerate both VRML1Children nodes and nodes within TSFNode and TMFNode fields.

Default implementation in this class enumerates all Children nodes of VRML 1.0. If you need to remove some children for VRML 1.0 (e.g. for Switch or LOD nodes) or add some children for VRML 2.0 you have to override this. You do not need to call inherited when overriding this — in fact, you should not, if you want to omit some nodes.

Stops and returns immediately if Func returns non-nil for some child.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 537).

Public function InternalCoord(State: TX3DGraphTraverseState; out ACoord: TMFVec3f): boolean; override;

Access the coordinate node, and inside this node access it's points list.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 540).

Public function CoordField: TSFNode; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.CoordField.

Node's "coord" field where you can place TCoordinateNode, or Nil if not available.

This gives you more possibilities than the InternalCoord and InternalCoordinates methods (as you can assign texCoord using this). However, it doesn't work for old VRML 1.0 (since they have coordinate information, but no "coord" field).

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 542).

Public function SkinWeightsJoints(out Weights: TVector4List; out Joints: TInt32List): Boolean; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.SkinWeightsJoints.

Weights and joints for the skinned animation.

If skinned animation is possible on this node, returns True and sets Weights and Joints to the appropriate lists:

  • Weights: 4D vector for each vertex, with 4 weight for the 4 most important joints that affect this vertex.

  • Joints: 4 indexes for each vertex, determine the 4 most important joints that affect this vertex.

Read or modify them freely. Keep the counts correct:

  • Either both lists are empty.

  • Or include information about all the coordinates in CoordField. This means that

    - Weights.Count equals the coordinate count,

    - and Joints.Count is always divisible by 4,

    - and Joints.Count / 4 equals the coordinate count.

If skinned animation is not possible on this node, returns False, and Weights and Joints are set to Nil.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 543).

Public function TexCoordField: TSFNode; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.TexCoordField.

Node's texCoord field, or Nil if not available. Various nodes may have different exact rules about what is allowed here, but everything allows TextureCoordinateGenerator and ProjectedTextureCoordinate instances.

This gives you more possibilities than the InternalTexCoord method (as you can assign texCoord using this), however it may be not available in all cases — for example VRML 1.0 nodes do not have texCoord field, but they may have a texture coordinate node (from the state).

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 544).

Public function ColorField: TSFNode; override;

This item has no description.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 545).

Public function SolidField: TSFBool; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.SolidField.

Is backface culling used. Nil if given geometry node doesn't have a field to control it.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 546).

Public function AttribField: TMFNode; override;

This item has no description.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 547).

Public function NormalField: TSFNode; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.NormalField.

Node's "normal" field where you can place TNormalNode, or Nil if not available.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 548).

Public function TangentField: TSFNode; override;

This item has no description. Showing description inherited from TAbstractGeometryNode.TangentField.

Node's "tangent" field where you can place TTangentNode, or Nil if not available.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 549).

Public function InternalFogCoord: TMFFloat; override;

This item has no description.

Source: scene/x3d/x3dnodes_standard_rendering.inc (line 551).

Public procedure CreateNode; override;

Create node fields and events.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 49).

Public class function ClassX3DType: String; override;

This item has no description. Showing description inherited from TX3DNode.ClassX3DType.

Node type name in VRML/X3D, for this class. Normal VRML/X3D node classes should override this to return something non-empty, and then X3DType automatically will return the same value.

Empty for classes that don't have a hardcoded VRML/X3D node name, like a special TX3DUnknownNode. Such special classes should override then X3DType to return actual non-empty name there.

You usually should call X3DType. The only use of this method is that it works on classes (it's "class function"), without needing at actual instance.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 50).

Public procedure SetAttrib(const Value: array of TAbstractVertexAttributeNode);

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 59).

Public procedure SetRadianceTransfer(const Value: array of TVector3); overload;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 139).

Public procedure SetRadianceTransfer(const Value: TVector3List); overload;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 143).

Public procedure SetSkinWeights0(const Value: array of TVector4); overload;

Weights for the skinned animation.

For each vertex, this array specifies a 4D vector, which determines the 4 weights for the "most important" joints that affect this vertex. The "most important" joints are determined by the FdSkinJoints0.

If non-empty, the count of this array should be:

This corresponds to the WEIGHTS_0 attribute in glTF.

It is possible we will introduce in the future FdSkinWeights1, FdSkinJoints1 and more, to allow vertexes to be influenced by more than 4 joints at the same time. For now, in practice, 4 joints for each vertex is enough.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 163).

Public procedure SetSkinWeights0(const Value: TVector4List); overload;

Weights for the skinned animation.

For each vertex, this array specifies a 4D vector, which determines the 4 weights for the "most important" joints that affect this vertex. The "most important" joints are determined by the FdSkinJoints0.

If non-empty, the count of this array should be:

This corresponds to the WEIGHTS_0 attribute in glTF.

It is possible we will introduce in the future FdSkinWeights1, FdSkinJoints1 and more, to allow vertexes to be influenced by more than 4 joints at the same time. For now, in practice, 4 joints for each vertex is enough.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 178).

Public procedure SetSkinJoints0(const Value: array of Int32); overload;

Joints for the skinned animation.

For each vertex, this array specifies indexes of the 4 "most important" joints that affect this vertex. The weights for these joints are specified by FdSkinWeights0. If you have less than 4 "most important" joints, just specify any (but valid) joint index and give it a zero weight using FdSkinWeights0.

Note: In the perfect world, we'd like to express this as an array of 4D integer vectors, like TVector4IntegerList in Castle Game Engine, or "VEC4 of unsigned byte or unsigned short" in glTF. However, X3D doesn't have a field type that allows to express this in natural way. So we express this using TMFInt32, with a constraint that each 4 consecutive values form a 4D vector.

The count of this array must be divisible by 4.

If not empty, the count of this array divided by 4 should be:

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 197).

Public procedure SetSkinJoints0(const Value: TInt32List); overload;

Joints for the skinned animation.

For each vertex, this array specifies indexes of the 4 "most important" joints that affect this vertex. The weights for these joints are specified by FdSkinWeights0. If you have less than 4 "most important" joints, just specify any (but valid) joint index and give it a zero weight using FdSkinWeights0.

Note: In the perfect world, we'd like to express this as an array of 4D integer vectors, like TVector4IntegerList in Castle Game Engine, or "VEC4 of unsigned byte or unsigned short" in glTF. However, X3D doesn't have a field type that allows to express this in natural way. So we express this using TMFInt32, with a constraint that each 4 consecutive values form a 4D vector.

The count of this array must be divisible by 4.

If not empty, the count of this array divided by 4 should be:

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 212).

Properties

Public property FdAttrib: TMFNode read FFdAttrib;

Internal wrapper for property Attrib. This wrapper API may change, we advise to access simpler Attrib instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 55).

Public property FdColor: TSFNode read FFdColor;

Internal wrapper for property Color. This wrapper API may change, we advise to access simpler Color instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 64).

Public property Color: TAbstractColorNode read GetColor write SetColor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 66).

Public property FdCoord: TSFNode read FFdCoord;

Internal wrapper for property Coord. This wrapper API may change, we advise to access simpler Coord instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 70).

Public property Coord: TAbstractCoordinateNode read GetCoord write SetCoord;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 72).

Public property FdFogCoord: TSFNode read FFdFogCoord;

Internal wrapper for property FogCoord. This wrapper API may change, we advise to access simpler FogCoord instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 77).

Public property FogCoord: TFogCoordinateNode read GetFogCoord write SetFogCoord;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 81).

Public property FdNormal: TSFNode read FFdNormal;

Internal wrapper for property Normal. This wrapper API may change, we advise to access simpler Normal instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 86).

Public property Normal: TAbstractNormalNode read GetNormal write SetNormal;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 88).

Public property FdTangent: TSFNode read FFdTangent;

Internal wrapper for property Tangent. This wrapper API may change, we advise to access simpler Tangent instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 92).

Public property Tangent: TTangentNode read GetTangent write SetTangent;

Tangent vectors determine the tangent coordinate-space, used by the bump mapping algorithms.

If the materials applied on this geometry may use normal maps (by providing TAbstractOneSidedMaterialNode.NormalTexture), we recommend to provide tangent vectors calculated in the same manner as the software you used to bake the normal maps. If you don't provide tangent vectors, we will automatically calculate them.

If specified, the ordering of tangents should be the same as normals, e.g. they should follow the NormalPerVertex property.

The XYZ component of each tangent vector should be a normalized tangent direction.

The W component is a sign value (-1 or +1) indicating handedness of the tangent basis. See the X3D 4.1 and glTF specifications for details.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 102).

Public property FdTexCoord: TSFNode read FFdTexCoord;

Internal wrapper for property TexCoord. This wrapper API may change, we advise to access simpler TexCoord instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 106).

Public property TexCoord: TAbstractTextureCoordinateNode read GetTexCoord write SetTexCoord;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 108).

Public property FdCcw: TSFBool read FFdCcw;

Internal wrapper for property Ccw. This wrapper API may change, we advise to access simpler Ccw instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 112).

Public property Ccw: Boolean read GetCcw write SetCcw;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 114).

Public property FdColorPerVertex: TSFBool read FFdColorPerVertex;

Internal wrapper for property ColorPerVertex. This wrapper API may change, we advise to access simpler ColorPerVertex instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 118).

Public property ColorPerVertex: Boolean read GetColorPerVertex write SetColorPerVertex;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 120).

Public property FdNormalPerVertex: TSFBool read FFdNormalPerVertex;

Internal wrapper for property NormalPerVertex. This wrapper API may change, we advise to access simpler NormalPerVertex instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 124).

Public property NormalPerVertex: Boolean read GetNormalPerVertex write SetNormalPerVertex;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 126).

Public property FdSolid: TSFBool read FFdSolid;

Internal wrapper for property Solid. This wrapper API may change, we advise to access simpler Solid instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 130).

Public property FdRadianceTransfer: TMFVec3f read FFdRadianceTransfer;

Internal wrapper for property RadianceTransfer. This wrapper API may change, we advise to access simpler RadianceTransfer instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 135).

Public property FdSkinWeights0: TMFVec4f read FFdSkinWeights0;

Internal wrapper for property SkinWeights0. This wrapper API may change, we advise to access simpler SkinWeights0 instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 148).

Public property FdSkinJoints0: TMFInt32 read FFdSkinJoints0;

Internal wrapper for property SkinJoints0. This wrapper API may change, we advise to access simpler SkinJoints0 instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dcomposedgeometrynode.inc (line 182).


Generated by PasDoc 0.17.0.snapshot.