Class TCommonSurfaceShaderNode

Unit

Declaration

type TCommonSurfaceShaderNode = class(TAbstractShaderNode)

Description

Warning: this symbol is deprecated.

Advanced material that can be heavily configured using textures (specular maps, normal maps and much more).

Use TMaterialNode that has been extended in X3D 4.0 to cover all the features of TComposedShaderNode. See https://github.com/michaliskambi/x3d-tests/wiki/X3D-version-4%3A-New-features-of-materials%2C-lights-and-textures .

Source: scene/x3d/x3dnodes_instantreality.inc (line 145).

Hierarchy

Show Additional Members:

Overview

Fields

Protected VRML1ChildrenAllowed: Boolean;
Protected VRML1ChildrenParsingAllowed: Boolean;

Methods

Public constructor Create;
Public procedure SaveToStream(Writer: TX3DWriter); virtual; abstract;
Public function SaveToXml: TSaveToXmlMethod; virtual;
Protected procedure WarningOnce(var WarningDone: Boolean; const Message: string);
Protected function DeepCopyCore(CopyState: TX3DNodeDeepCopyState): TX3DNode; virtual;
Protected function DeepCopyCreate(CopyState: TX3DNodeDeepCopyState): TX3DNode; virtual;
Protected procedure AddFunctionality(const F: TNodeFunctionality);
Protected function DefaultContainerFieldInContext( const Version: TX3DVersion; const ParentNode: TX3DNode): String; virtual;
Protected class function VRML1ChildrenSaveToStream: Boolean; virtual;
Protected function DirectEnumerateActive( Func: TEnumerateChildrenFunction): Pointer; virtual;
Protected function DirectEnumerateActiveForTraverse( Func: TEnumerateChildrenFunction; StateStack: TX3DGraphTraverseStateStack): Pointer; virtual;
Protected function DirectEnumerateAll( Func: TEnumerateChildrenFunction): Pointer;
Protected function DirectEnumerate( Func: TEnumerateChildrenFunction; OnlyActive: Boolean): Pointer;
Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;
Protected procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;
Protected procedure AfterTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;
Protected function ParseNodeBodyElement(Lexer: TX3DLexer; Reader: TX3DReaderNames; const APositionInParent: Integer): Boolean; virtual;
Protected procedure ParseAfter(Reader: TX3DReaderNames); virtual;
Protected procedure CreateNode; virtual;
Public function FieldsCount: Integer;
Public procedure AddField(const Value: TX3DField);
Public function IndexOfField(const AName: string): Integer;
Public function EventsCount: Integer;
Public procedure AddEvent(const Value: TX3DEvent);
Public function IndexOfEvent(const AName: string): Integer;
Public function Field(const AName: string; const RaiseOnError: Boolean = false): TX3DField;
Public function FieldOrEvent(const AName: string; const RaiseOnError: Boolean = false): TX3DFieldOrEvent;
Public function AnyEvent(const AName: string; const RaiseOnError: Boolean = false): TX3DEvent;
Public function VRML1ChildrenCount: integer;
Public procedure VRML1ChildAdd(const Index: Integer; const Child: TX3DNode); overload;
Public procedure VRML1ChildAdd(const Child: TX3DNode); overload;
Public procedure VRML1ChildRemove(const I: Integer);
Public procedure VRML1ChildrenClear;
Public function VRML1ChildExtract(const I: Integer): TX3DNode;
Public function VRML1ParentsCount: integer;
Public function ParentFieldsCount: Integer;
Public procedure FreeRemovingFromAllParents;
Public procedure FreeIfUnused;
Public procedure KeepExistingBegin;
Public procedure KeepExistingEnd;
Public procedure WaitForRelease;
Public function Unused: Boolean;
Public function PathFromBaseUrl(const RelativePath: string): string;
Public procedure Parse(Lexer: TX3DLexer; Reader: TX3DReaderNames); virtual;
Public procedure ParseXML(Element: TDOMElement; Reader: TX3DReaderNames);
Public constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); virtual;
Public destructor Destroy; override;
Public function X3DType: string; virtual;
Public function NodeTypeName: string; deprecated 'use X3DType';
Public class function ClassX3DType: string; virtual;
Public function Traverse( NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc): Pointer;
Public function TraverseInternal(StateStack: TX3DGraphTraverseStateStack; NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc; ParentInfo: PTraversingInfo): Pointer;
Public function TraverseIntoChildren(StateStack: TX3DGraphTraverseStateStack; NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc; ParentInfo: PTraversingInfo): Pointer;
Public procedure EnumerateNodes( proc: TX3DNodeProc; OnlyActive: Boolean); overload;
Public procedure EnumerateNodes(nodeClass: TX3DNodeClass; proc: TX3DNodeProc; OnlyActive: Boolean); overload;
Public procedure EnumerateNodes(nodeClass: TX3DNodeClass; const SeekNodeName: string; proc: TX3DNodeProc; OnlyActive: Boolean); overload;
Public function SearchNodes(const Proc: TX3DNodeSearchProc; const OnlyActive: Boolean): Pointer;
Public function TryFindNodeByName(FindClass: TX3DNodeClass; const FindName: string; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';
Public function FindNodeByName(FindClass: TX3DNodeClass; const FindName: string; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';
Public function TryFindNode(FindClass: TX3DNodeClass; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';
Public function FindNode(FindClass: TX3DNodeClass; OnlyActive: Boolean): TX3DNode; overload; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';
Public function FindNode(const NodeClass: TX3DNodeClass; const FindName: String; const Options: TFindNodeOptions = []): TX3DNode; overload;
Public function FindNode(const FindName: string): TX3DNode; overload; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';
Public function TryFindNodeState( NodeClass: TX3DNodeClass; out Node: TX3DNode; out State: TX3DGraphTraverseState): Boolean; deprecated 'use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their TX3DGraphTraverseState';
Public function TryFindNodeTransform( NodeClass: TX3DNodeClass; out Node: TX3DNode; out Transform: TMatrix4; out TransformScale: Single): Boolean; deprecated 'use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their transformations';
Public function TryFindParentByName(const FindName: string): TX3DNode;
Public function FindParentByName(const FindName: string): TX3DNode;
Public function HasParentNode(Node: TX3DNode): Boolean;
Public function TryFindDirectParentByName(const FindName: string): TX3DNode;
Public function IsNodePresent(Node: TX3DNode; OnlyActive: Boolean): Boolean;
Public function NodesCount(NodeClass: TX3DNodeClass; CountOnlyActiveNodes: Boolean): integer;
Public procedure SaveToStream(Writer: TX3DWriter); override;
Public class function VRML1StateNode(out StateNode: TVRML1StateNode): Boolean;
Public class function ForVRMLVersion(const Version: TX3DVersion): Boolean; virtual;
Public function EnumerateReplaceChildren( Func: TEnumerateReplaceNodesFunction): Cardinal;
Public function RemoveChildrenWithMatchingName( const Wildcard: string; IgnoreCase: Boolean): Cardinal;
Public function PrototypesCount: Integer;
Public procedure AddPrototype(const Value: TX3DPrototypeBase);
Public function RoutesCount: Integer;
Public procedure AddRoute(const Value: TX3DRoute); overload;
Public procedure AddRoute(const Source, Destination: TX3DFieldOrEvent); overload;
Public procedure RemoveRoute(const Value: TX3DRoute); overload;
Public procedure RemoveRoute(const Index: Integer); overload;
Public function ImportsCount: Integer;
Public procedure AddImport(const Value: TX3DImport);
Public function ExportsCount: Integer;
Public procedure AddExport(const Value: TX3DExport);
Public function DeepCopy: TX3DNode;
Public procedure AddDestructionNotification(const Event: TNodeDestructionNotification);
Public procedure RemoveDestructionNotification(const Event: TNodeDestructionNotification);
Public procedure PostAddInterfaceDeclaration(IDecl: TX3DInterfaceDeclaration); virtual;
Public procedure AddCustomField(AField: TX3DField);
Public procedure AddCustomFieldOrEvent(AFieldOrEvent: TX3DFieldOrEvent);
Public function NiceName: string;
Public procedure UnregisterScene;
Public function FieldSetByEvent(const Event: TX3DEvent): TX3DField; virtual;
Public function FieldSendingEvent(const Event: TX3DEvent): TX3DField; virtual;
Public function Functionality( const FunctionalityClass: TNodeFunctionalityClass): TNodeFunctionality;
Public procedure InternalInsertMetadata(const M: TAbstractMetadataNode);
Public function FindMetadata(const Key: String): TAbstractMetadataNode;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public destructor Destroy; override;
Public function ShininessFactorExp: Single;
Public function MaterialInfo: TMaterialInfo;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure SetTextureTransformEnabled(const Value: array of boolean); overload;
Public procedure SetTextureTransformEnabled(const Value: TBooleanList); overload;

Properties

Public property PositionInParent: Integer read FPositionInParent write FPositionInParent default -1;
Protected property CDataField: TMFString read FCDataField write FCDataField;
Public property Fields [const Index: Integer]: TX3DField read GetFields;
Public property Events [const Index: Integer]: TX3DEvent read GetEvents;
Public property VRML1Children [const I: Integer]: TX3DNode read GetVRML1Child write SetVRML1Child;
Public property VRML1Parents [const I: Integer]: TX3DNode read GetVRML1Parent;
Public property ParentFields[Index: Integer]: TX3DField read GetParentFieldsItem;
Public property ParentFieldsNode[Index: Integer]: TX3DNode read GetParentFieldsNodeItem;
Public property KeepExisting: Cardinal read FKeepExisting write FKeepExisting; deprecated 'do not access this directly; instead use TX3DNode.WaitForRelease and NodeRelease (eventually KeepExistingBegin and KeepExistingEnd) if you want to control node lifetime';
Public property X3DName: string read FX3DName write FX3DName;
Public property NodeName: string read FX3DName write FX3DName; deprecated 'use X3DName';
Public property BaseUrl: String read FBaseUrl write FBaseUrl;
Public property WWWBasePath: string read FBaseUrl write FBaseUrl; deprecated;
Public property Prototypes [const Index: Integer]: TX3DPrototypeBase read GetPrototypes;
Public property Routes [const Index: Integer]: TX3DRoute read GetRoutes;
Public property ImportsList [const Index: Integer]: TX3DImport read GetImports;
Public property ExportsList [const Index: Integer]: TX3DExport read GetExports;
Public property PrototypeInstance: Boolean read FPrototypeInstance;
Public property PrototypeInstanceSourceNode: TX3DPrototypeNode read FPrototypeInstanceSourceNode;
Public property PrototypeInstanceHelpers: TX3DNode read FPrototypeInstanceHelpers;
Public property DefaultContainerField: string read FDefaultContainerField write FDefaultContainerField;
Public property HasInterfaceDeclarations: TX3DAccessTypes read FHasInterfaceDeclarations write SetHasInterfaceDeclarations default [];
Public property InterfaceDeclarations: TX3DInterfaceDeclarationList read FInterfaceDeclarations;
Public property Scene: TX3DEventsEngine read FScene write FScene;
Public property TransformFunctionality: TTransformFunctionality read FTransformFunctionality;
Public property TimeFunctionality: TTimeDependentFunctionality read FTimeFunctionality;
Public property GenTexFunctionality: TGeneratedTextureFunctionality read FGenTexFunctionality;
Public property MetadataBoolean[const Key: String]: Boolean read GetMetadataBoolean write SetMetadataBoolean;
Public property MetadataBooleanArray[const Key: String; const Index: Cardinal]: Boolean read GetMetadataBooleanArray write SetMetadataBooleanArray;
Public property MetadataString[const Key: String]: String read GetMetadataString write SetMetadataString;
Public property MetadataStringArray[const Key: String; const Index: Cardinal]: String read GetMetadataStringArray write SetMetadataStringArray;
Public property MetadataInteger[const Key: String]: Integer read GetMetadataInteger write SetMetadataInteger;
Public property MetadataIntegerArray[const Key: String; const Index: Cardinal]: Integer read GetMetadataIntegerArray write SetMetadataIntegerArray;
Public property MetadataDouble[const Key: String]: Double read GetMetadataDouble write SetMetadataDouble;
Public property MetadataDoubleArray[const Key: String; const Index: Cardinal]: Double read GetMetadataDoubleArray write SetMetadataDoubleArray;
Public property FdMetadata: TSFNode read FFdMetadata;
Public property Metadata: TAbstractMetadataNode read GetMetadata write SetMetadata;
Public property EventActivate: TSFBoolEvent read FEventActivate;
Public property EventIsSelected: TSFBoolEvent read FEventIsSelected;
Public property EventIsValid: TSFBoolEvent read FEventIsValid;
Public property FdLanguage: TSFStringEnum read FFdLanguage;
Public property Language: TShaderLanguage read GetLanguage write SetLanguage;
Public property Transparency: Single read GetTransparency write SetTransparency;
Public property FdAlphaFactor: TSFFloat read FFdAlphaFactor;
Public property AlphaFactor: Single read GetAlphaFactor write SetAlphaFactor;
Public property FdAlphaTextureId: TSFInt32 read FFdAlphaTextureId;
Public property AlphaTextureId: Integer read GetAlphaTextureId write SetAlphaTextureId;
Public property FdAlphaTextureCoordinatesId: TSFInt32 read FFdAlphaTextureCoordinatesId;
Public property AlphaTextureCoordinatesId: Integer read GetAlphaTextureCoordinatesId write SetAlphaTextureCoordinatesId;
Public property FdAlphaTextureChannelMask: TSFString read FFdAlphaTextureChannelMask;
Public property AlphaTextureChannelMask: String read GetAlphaTextureChannelMask write SetAlphaTextureChannelMask;
Public property FdAlphaTexture: TSFNode read FFdAlphaTexture;
Public property AlphaTexture: TAbstractTextureNode read GetAlphaTexture write SetAlphaTexture;
Public property FdAmbientFactor: TSFVec3f read FFdAmbientFactor;
Public property AmbientFactor: TVector3 read GetAmbientFactor write SetAmbientFactor;
Public property FdAmbientTextureId: TSFInt32 read FFdAmbientTextureId;
Public property AmbientTextureId: Integer read GetAmbientTextureId write SetAmbientTextureId;
Public property FdAmbientTextureCoordinatesId: TSFInt32 read FFdAmbientTextureCoordinatesId;
Public property AmbientTextureCoordinatesId: Integer read GetAmbientTextureCoordinatesId write SetAmbientTextureCoordinatesId;
Public property FdAmbientTextureChannelMask: TSFString read FFdAmbientTextureChannelMask;
Public property AmbientTextureChannelMask: String read GetAmbientTextureChannelMask write SetAmbientTextureChannelMask;
Public property FdAmbientTexture: TSFNode read FFdAmbientTexture;
Public property AmbientTexture: TAbstractTextureNode read GetAmbientTexture write SetAmbientTexture;
Public property FdDiffuseFactor: TSFVec3f read FFdDiffuseFactor;
Public property DiffuseFactor: TVector3 read GetDiffuseFactor write SetDiffuseFactor;
Public property FdDiffuseTextureId: TSFInt32 read FFdDiffuseTextureId;
Public property DiffuseTextureId: Integer read GetDiffuseTextureId write SetDiffuseTextureId;
Public property FdDiffuseTextureCoordinatesId: TSFInt32 read FFdDiffuseTextureCoordinatesId;
Public property DiffuseTextureCoordinatesId: Integer read GetDiffuseTextureCoordinatesId write SetDiffuseTextureCoordinatesId;
Public property FdDiffuseTextureChannelMask: TSFString read FFdDiffuseTextureChannelMask;
Public property DiffuseTextureChannelMask: String read GetDiffuseTextureChannelMask write SetDiffuseTextureChannelMask;
Public property FdDiffuseTexture: TSFNode read FFdDiffuseTexture;
Public property DiffuseTexture: TAbstractTextureNode read GetDiffuseTexture write SetDiffuseTexture;
Public property FdDiffuseDisplacementTexture: TSFNode read FFdDiffuseDisplacementTexture;
Public property DiffuseDisplacementTexture: TAbstractTextureNode read GetDiffuseDisplacementTexture write SetDiffuseDisplacementTexture;
Public property FdDisplacementAxis: TSFString read FFdDisplacementAxis;
Public property DisplacementAxis: String read GetDisplacementAxis write SetDisplacementAxis;
Public property FdDisplacementFactor: TSFFloat read FFdDisplacementFactor;
Public property DisplacementFactor: Single read GetDisplacementFactor write SetDisplacementFactor;
Public property FdDisplacementTextureId: TSFInt32 read FFdDisplacementTextureId;
Public property DisplacementTextureId: Integer read GetDisplacementTextureId write SetDisplacementTextureId;
Public property FdDisplacementTextureCoordinatesId: TSFInt32 read FFdDisplacementTextureCoordinatesId;
Public property DisplacementTextureCoordinatesId: Integer read GetDisplacementTextureCoordinatesId write SetDisplacementTextureCoordinatesId;
Public property FdDisplacementTexture: TSFNode read FFdDisplacementTexture;
Public property DisplacementTexture: TAbstractTextureNode read GetDisplacementTexture write SetDisplacementTexture;
Public property FdEmissiveFactor: TSFVec3f read FFdEmissiveFactor;
Public property EmissiveFactor: TVector3 read GetEmissiveFactor write SetEmissiveFactor;
Public property FdEmissiveTextureId: TSFInt32 read FFdEmissiveTextureId;
Public property EmissiveTextureId: Integer read GetEmissiveTextureId write SetEmissiveTextureId;
Public property FdEmissiveTextureCoordinatesId: TSFInt32 read FFdEmissiveTextureCoordinatesId;
Public property EmissiveTextureCoordinatesId: Integer read GetEmissiveTextureCoordinatesId write SetEmissiveTextureCoordinatesId;
Public property FdEmissiveTextureChannelMask: TSFString read FFdEmissiveTextureChannelMask;
Public property EmissiveTextureChannelMask: String read GetEmissiveTextureChannelMask write SetEmissiveTextureChannelMask;
Public property FdEmissiveTexture: TSFNode read FFdEmissiveTexture;
Public property EmissiveTexture: TAbstractTextureNode read GetEmissiveTexture write SetEmissiveTexture;
Public property FdEnvironmentFactor: TSFVec3f read FFdEnvironmentFactor;
Public property EnvironmentFactor: TVector3 read GetEnvironmentFactor write SetEnvironmentFactor;
Public property FdEnvironmentTextureId: TSFInt32 read FFdEnvironmentTextureId;
Public property EnvironmentTextureId: Integer read GetEnvironmentTextureId write SetEnvironmentTextureId;
Public property FdEnvironmentTextureCoordinatesId: TSFInt32 read FFdEnvironmentTextureCoordinatesId;
Public property EnvironmentTextureCoordinatesId: Integer read GetEnvironmentTextureCoordinatesId write SetEnvironmentTextureCoordinatesId;
Public property FdEnvironmentTextureChannelMask: TSFString read FFdEnvironmentTextureChannelMask;
Public property EnvironmentTextureChannelMask: String read GetEnvironmentTextureChannelMask write SetEnvironmentTextureChannelMask;
Public property FdEnvironmentTexture: TSFNode read FFdEnvironmentTexture;
Public property EnvironmentTexture: TAbstractEnvironmentTextureNode read GetEnvironmentTexture write SetEnvironmentTexture;
Public property FdMultiDiffuseAlphaTexture: TSFNode read FFdMultiDiffuseAlphaTexture;
Public property MultiDiffuseAlphaTexture: TAbstractTextureNode read GetMultiDiffuseAlphaTexture write SetMultiDiffuseAlphaTexture;
Public property FdMultiEmmisiveAmbientIntensityTexture: TSFNode read FFdMultiEmmisiveAmbientIntensityTexture;
Public property MultiEmmisiveAmbientIntensityTexture: TAbstractTextureNode read GetMultiEmmisiveAmbientIntensityTexture write SetMultiEmmisiveAmbientIntensityTexture;
Public property FdMultiSpecularShininessTexture: TSFNode read FFdMultiSpecularShininessTexture;
Public property MultiSpecularShininessTexture: TAbstractTextureNode read GetMultiSpecularShininessTexture write SetMultiSpecularShininessTexture;
Public property FdMultiVisibilityTexture: TSFNode read FFdMultiVisibilityTexture;
Public property MultiVisibilityTexture: TAbstractTextureNode read GetMultiVisibilityTexture write SetMultiVisibilityTexture;
Public property FdNormalFormat: TSFString read FFdNormalFormat;
Public property NormalFormat: String read GetNormalFormat write SetNormalFormat;
Public property FdNormalSpace: TSFString read FFdNormalSpace;
Public property NormalSpace: String read GetNormalSpace write SetNormalSpace;
Public property FdNormalTextureId: TSFInt32 read FFdNormalTextureId;
Public property NormalTextureId: Integer read GetNormalTextureId write SetNormalTextureId;
Public property FdNormalTextureCoordinatesId: TSFInt32 read FFdNormalTextureCoordinatesId;
Public property NormalTextureCoordinatesId: Integer read GetNormalTextureCoordinatesId write SetNormalTextureCoordinatesId;
Public property FdNormalTextureChannelMask: TSFString read FFdNormalTextureChannelMask;
Public property NormalTextureChannelMask: String read GetNormalTextureChannelMask write SetNormalTextureChannelMask;
Public property FdNormalScale: TSFVec3f read FFdNormalScale;
Public property NormalScale: TVector3 read GetNormalScale write SetNormalScale;
Public property FdNormalBias: TSFVec3f read FFdNormalBias;
Public property NormalBias: TVector3 read GetNormalBias write SetNormalBias;
Public property FdNormalTexture: TSFNode read FFdNormalTexture;
Public property NormalTexture: TAbstractTextureNode read GetNormalTexture write SetNormalTexture;
Public property FdNormalTextureParallaxHeight: TSFFloat read FFdNormalTextureParallaxHeight;
Public property NormalTextureParallaxHeight: Single read GetNormalTextureParallaxHeight write SetNormalTextureParallaxHeight;
Public property FdReflectionFactor: TSFVec3f read FFdReflectionFactor;
Public property ReflectionFactor: TVector3 read GetReflectionFactor write SetReflectionFactor;
Public property FdReflectionTextureId: TSFInt32 read FFdReflectionTextureId;
Public property ReflectionTextureId: Integer read GetReflectionTextureId write SetReflectionTextureId;
Public property FdReflectionTextureCoordinatesId: TSFInt32 read FFdReflectionTextureCoordinatesId;
Public property ReflectionTextureCoordinatesId: Integer read GetReflectionTextureCoordinatesId write SetReflectionTextureCoordinatesId;
Public property FdReflectionTextureChannelMask: TSFString read FFdReflectionTextureChannelMask;
Public property ReflectionTextureChannelMask: String read GetReflectionTextureChannelMask write SetReflectionTextureChannelMask;
Public property FdReflectionTexture: TSFNode read FFdReflectionTexture;
Public property ReflectionTexture: TAbstractTextureNode read GetReflectionTexture write SetReflectionTexture;
Public property FdShininessFactor: TSFFloat read FFdShininessFactor;
Public property ShininessFactor: Single read GetShininessFactor write SetShininessFactor;
Public property FdShininessTextureId: TSFInt32 read FFdShininessTextureId;
Public property ShininessTextureId: Integer read GetShininessTextureId write SetShininessTextureId;
Public property FdShininessTextureCoordinatesId: TSFInt32 read FFdShininessTextureCoordinatesId;
Public property ShininessTextureCoordinatesId: Integer read GetShininessTextureCoordinatesId write SetShininessTextureCoordinatesId;
Public property FdShininessTextureChannelMask: TSFString read FFdShininessTextureChannelMask;
Public property ShininessTextureChannelMask: String read GetShininessTextureChannelMask write SetShininessTextureChannelMask;
Public property FdShininessTexture: TSFNode read FFdShininessTexture;
Public property ShininessTexture: TAbstractTextureNode read GetShininessTexture write SetShininessTexture;
Public property FdSpecularFactor: TSFVec3f read FFdSpecularFactor;
Public property SpecularFactor: TVector3 read GetSpecularFactor write SetSpecularFactor;
Public property FdSpecularTextureId: TSFInt32 read FFdSpecularTextureId;
Public property SpecularTextureId: Integer read GetSpecularTextureId write SetSpecularTextureId;
Public property FdSpecularTextureCoordinatesId: TSFInt32 read FFdSpecularTextureCoordinatesId;
Public property SpecularTextureCoordinatesId: Integer read GetSpecularTextureCoordinatesId write SetSpecularTextureCoordinatesId;
Public property FdSpecularTextureChannelMask: TSFString read FFdSpecularTextureChannelMask;
Public property SpecularTextureChannelMask: String read GetSpecularTextureChannelMask write SetSpecularTextureChannelMask;
Public property FdSpecularTexture: TSFNode read FFdSpecularTexture;
Public property SpecularTexture: TAbstractTextureNode read GetSpecularTexture write SetSpecularTexture;
Public property FdTransmissionFactor: TSFVec3f read FFdTransmissionFactor;
Public property TransmissionFactor: TVector3 read GetTransmissionFactor write SetTransmissionFactor;
Public property FdTransmissionTextureId: TSFInt32 read FFdTransmissionTextureId;
Public property TransmissionTextureId: Integer read GetTransmissionTextureId write SetTransmissionTextureId;
Public property FdTransmissionTextureCoordinatesId: TSFInt32 read FFdTransmissionTextureCoordinatesId;
Public property TransmissionTextureCoordinatesId: Integer read GetTransmissionTextureCoordinatesId write SetTransmissionTextureCoordinatesId;
Public property FdTransmissionTextureChannelMask: TSFString read FFdTransmissionTextureChannelMask;
Public property TransmissionTextureChannelMask: String read GetTransmissionTextureChannelMask write SetTransmissionTextureChannelMask;
Public property FdTransmissionTexture: TSFNode read FFdTransmissionTexture;
Public property TransmissionTexture: TAbstractTextureNode read GetTransmissionTexture write SetTransmissionTexture;
Public property FdTangentTextureCoordinatesId: TSFInt32 read FFdTangentTextureCoordinatesId;
Public property TangentTextureCoordinatesId: Integer read GetTangentTextureCoordinatesId write SetTangentTextureCoordinatesId;
Public property FdBinormalTextureCoordinatesId: TSFInt32 read FFdBinormalTextureCoordinatesId;
Public property BinormalTextureCoordinatesId: Integer read GetBinormalTextureCoordinatesId write SetBinormalTextureCoordinatesId;
Public property FdInvertAlphaTexture: TSFBool read FFdInvertAlphaTexture;
Public property InvertAlphaTexture: Boolean read GetInvertAlphaTexture write SetInvertAlphaTexture;
Public property FdRelativeIndexOfRefraction: TSFFloat read FFdRelativeIndexOfRefraction;
Public property RelativeIndexOfRefraction: Single read GetRelativeIndexOfRefraction write SetRelativeIndexOfRefraction;
Public property FdFresnelBlend: TSFFloat read FFdFresnelBlend;
Public property FresnelBlend: Single read GetFresnelBlend write SetFresnelBlend;
Public property FdTextureTransformEnabled: TMFBool read FFdTextureTransformEnabled;

Description

Fields

Protected VRML1ChildrenAllowed: Boolean;

Are VRML 1.0 children allowed. This condition is checked in VRML1ChildAdd, so it's strictly impossible to add a node that is not allowed.

Note that in some special cases VRML1ChildrenAllowed and VRML1ChildrenParsingAllowed values may be changed during object lifetime. Currently, this may concern TX3DUnknownNode.

Default False.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 178).

Protected VRML1ChildrenParsingAllowed: Boolean;

VRML 1.0 children allowed to be added during parsing. This is used only by *Inline nodes for now, that do not allow reading children during parsing but may get new children in memory. So their VRML1ChildrenParsingAllowed must be empty, but VRML1ChildrenAllowed must allow all.

When VRML1ChildrenAllowed is False then VRML1ChildrenParsingAllowed should also be False.

Default False.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 190).

Methods

Public constructor Create;

This item has no description.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 42).

Public procedure SaveToStream(Writer: TX3DWriter); virtual; abstract;

Save to stream.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 75).

Public function SaveToXml: TSaveToXmlMethod; virtual;

How is this saved to X3D XML encoding. This determines when SaveToStream is called. It also cooperates with some SaveToStream implementations, guiding how the item is actually saved. By default it is sxChildElement.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 81).

Protected procedure WarningOnce(var WarningDone: Boolean; const Message: string);

Make a specified warning, but only once for this node instance. Uses WarningDone to track if warning was already done. Warning will contain automatically NiceName, so X3D node name and type.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 144).

Protected function DeepCopyCore(CopyState: TX3DNodeDeepCopyState): TX3DNode; virtual;

Does actual DeepCopy work. You can override this to copy some more properties for descendants.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 148).

Protected function DeepCopyCreate(CopyState: TX3DNodeDeepCopyState): TX3DNode; virtual;

This should be a mere call to constructor of your own class.

In TX3DNode, this simply calls default virtual constructor, which is Ok for all normal nodes. But we have some special nodes, like TX3DPrototypeNode or TX3DUnknownNode, that simply cannot be created by default constructor. They need to override this.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 156).

Protected procedure AddFunctionality(const F: TNodeFunctionality);

Register new TNodeFunctionality instance to be returned by Functionality, and automatically freed when this node is freed.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 160).

Protected function DefaultContainerFieldInContext( const Version: TX3DVersion; const ParentNode: TX3DNode): String; virtual;

Use this instead of DefaultContainerField to account that containerField may change depending on X3D version (like containerField of metadata nodes, changed between X3D 3 and 4) or parent node (like containerField of HAnimMotion). ParentNode may be Nil when it is at root.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 166).

Protected class function VRML1ChildrenSaveToStream: Boolean; virtual;

Should SaveToStream save our VRML1Children. In this class default implementation returns True, this is what you will want in 99% of cases. It's useful to set this to false if you use VRML1Children internally, e.g. *Inline nodes.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 197).

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

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_x3dnode.inc (line 221).

Protected function DirectEnumerateActiveForTraverse( Func: TEnumerateChildrenFunction; StateStack: TX3DGraphTraverseStateStack): Pointer; virtual;

Enumerate all active child nodes of given node, and may additionally modify StateStack. It's used by Traverse.

Default implementation in this class simply calls DirectEnumerateActive, ignoring StateStack, and this is suitable for 99% of nodes. However, for some special nodes (only Collision node for now), they have to modify state during traversing into various children, and then they can override this.

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

Source: scene/x3d/x3dnodes_x3dnode.inc (line 234).

Protected function DirectEnumerateAll( Func: TEnumerateChildrenFunction): Pointer;

Simply enumerate all direct descendant nodes. That is, all children in VRML 1.0 style and all nodes in SFNode and MFNode fields. This includes prototype stuff, if this node is expanded from prototype: PrototypeInstanceSourceNode and PrototypeInstanceHelpers.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 243).

Protected function DirectEnumerate( Func: TEnumerateChildrenFunction; OnlyActive: Boolean): Pointer;

This enumerates direct descendant nodes of this node. This is equivalent to DirectEnumerateActive or DirectEnumerateAll, depending on value of OnlyActive param.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 249).

Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;

Override these methods to determine what happens when given node is traversed during Traverse call. The main use of this is to operate on TX3DGraphTraverseStateStack.

Remember to always call inherited when overriding. In BeforeTraverse and MiddleTraverse you should call inherited at the beginning, in AfterTraverse inherited should be called at the end.

Besides changing StateStack.Top fields, you can do push/pop on the stack. Remember that if you do StateStack.Push in BeforeTraverse, and then you must call StateStack.Pop in AfterTraverse.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 266).

Protected procedure MiddleTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 267).

Protected procedure AfterTraverse(StateStack: TX3DGraphTraverseStateStack); virtual;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 268).

Protected function ParseNodeBodyElement(Lexer: TX3DLexer; Reader: TX3DReaderNames; const APositionInParent: Integer): Boolean; virtual;

Parse VRML node body element. Usually, this is a field. May also be VRML 1.0 style child node. May also be VRML 2.0 Script node interface declaration, etc. — see VRML 2.0 grammar spec.

This should be overriden to parse special features within particular nodes. While generally VRML is very clean and there's no need to override this, there's one use for this currently:

  1. Since we handle a couple of VRML flavors (at least Inventor, VRML 1.0 and VRML 97), sometimes the same node has different fields to express the same things in various VRML flavors. So it may be useful to parse a field and copy it's value into other fields.

    Example: TShapeHintsNode_1 in Inventor parses "hints" field, and copies it's value to other fields as appropriate. "hints" field is not exposed in TShapeHintsNode_1 interface, so everything is clean in the interface, and under the hood TShapeHintsNode_1 can "magically" handle "hints" field for Inventor.

When overriding, always check inherited result first, and exit if inherited handled successfully. Otherwise either read your stuff and return True (Lexer should advance to the position of next "nodeBodyElement"). Or return False without changing Lexer position.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 299).

Protected procedure ParseAfter(Reader: TX3DReaderNames); virtual;

Called at the end of parsing this node (including children) in any encoding.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 303).

Protected procedure CreateNode; virtual;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 305).

Public function FieldsCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 339).

Public procedure AddField(const Value: TX3DField);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 340).

Public function IndexOfField(const AName: string): Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 341).

Public function EventsCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 348).

Public procedure AddEvent(const Value: TX3DEvent);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 349).

Public function IndexOfEvent(const AName: string): Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 350).

Public function Field(const AName: string; const RaiseOnError: Boolean = false): TX3DField;

Search by name for given field. When RaiseOnError=false (default) returns Nil when not found. When RaiseOnError=true raises EX3DNotFound when not found.

Exceptions raised
EX3DNotFound

Source: scene/x3d/x3dnodes_x3dnode.inc (line 357).

Public function FieldOrEvent(const AName: string; const RaiseOnError: Boolean = false): TX3DFieldOrEvent;

Search by name for given field or event (exposed by some field or not). When RaiseOnError=false (default) returns Nil when not found. When RaiseOnError=true raises EX3DNotFound when not found.

Exceptions raised
EX3DNotFound

Source: scene/x3d/x3dnodes_x3dnode.inc (line 363).

Public function AnyEvent(const AName: string; const RaiseOnError: Boolean = false): TX3DEvent;

Search by name for given event (exposed by some field or not). When RaiseOnError=false (default) returns Nil when not found. When RaiseOnError=true raises EX3DNotFound when not found.

Exceptions raised
EX3DNotFound

Source: scene/x3d/x3dnodes_x3dnode.inc (line 369).

Public function VRML1ChildrenCount: integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 410).

Public procedure VRML1ChildAdd(const Index: Integer; const Child: TX3DNode); overload;

Add a VRML 1.0 child node at given position. Index (position) must be in [0..VRML1ChildrenCount]. Items at and above Index position are moved to the right, to insert new child at Index position.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 417).

Public procedure VRML1ChildAdd(const Child: TX3DNode); overload;

Add a VRML 1.0 child node at the end of VRML1Children list.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 420).

Public procedure VRML1ChildRemove(const I: Integer);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 422).

Public procedure VRML1ChildrenClear;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 423).

Public function VRML1ChildExtract(const I: Integer): TX3DNode;

Remove a VRML 1.0 children at index I and return it (do not free it). Compare this with VRML1Remove, that removes children I and frees it if it's no longer used by anything.

This removes children I, appropriately adjusting all parent / children links, but even if a node is unused after removing, it is not freed. It's always returned.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 432).

Public function VRML1ParentsCount: integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 440).

Public function ParentFieldsCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 455).

Public procedure FreeRemovingFromAllParents;

Free this object (if it's not Nil) also removing it from all parent nodes and fields.

By design, normal destructor (Destroy called by Free) doesn't care about removing references to this object from it's parents. That's because it's the parents that usually initialize freeing of their children, and they free child when it's reference count is 0. So this freeing method is special in this regard.

Use this if you really want to remove all node occurrences from the middle of VRML hierarchy.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 470).

Public procedure FreeIfUnused;

Free this node if it is not referenced by any parent fields or nodes. Takes into account that node may have VRML 1.0 parent nodes and VRML 2.0 / X3D parent fields (SFNode or MFNode). This is a safe way of removing a node that may, but doesn't have to, be part of some VRML/X3D graph. The idea is that if a node is a part of some graph, we don't need to do anything (since you should have a reference to the entine graph somewhere anyway), otherwise node is considered unused and freed.

Analogous to standard TObject.Free, this also works when called on a Nil value (does nothing in this case).

For safety, it's advised to set reference to Nil after calling FreeIfUnused. You can use FreeIfUnusedAndNil utility for this (that employs a trick to Nil the visible reference even before freeing, which is even safer). This is analogous to standard FreeAndNil.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 489).

Public procedure KeepExistingBegin;

Increase "fake reference count" by 1, preventing the node from being automatically freed when the reference count changes from non-zero to zero.

It is discouraged to use this method. In most cases, TX3DNode.WaitForRelease and NodeRelease are easier to use than KeepExistingBegin + KeepExistingEnd + FreeIfUnusedAndNil.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 514).

Public procedure KeepExistingEnd;

Decrease "fake reference count" by 1. This should match previous KeepExistingBegin call. When nothing will refer to this node, and the "fake reference count" is zero, the node will be freed.

Note that merely calling KeepExistingEnd will not free the node. Follow this with FreeIfUnused or (better) FreeIfUnusedAndNil to actually free unused node.

It is discouraged to use this method. In most cases, TX3DNode.WaitForRelease and NodeRelease are easier to use than KeepExistingBegin + KeepExistingEnd + FreeIfUnusedAndNil.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 528).

Public procedure WaitForRelease;

Do not free this node, even if it will become unused. You must call NodeRelease to free this node.

By default, if this method was not used, every X3D node is reference-counted. This means that when the node starts being referenced by some other node (e.g. TAbstractShapeNode.Geometry refers to TIndexedFaceSetNode instance), the reference count is increased. When the node stops being referenced (e.g. TAbstractShapeNode.Geometry is set to Nil), the reference count is decreased. When the reference count reaches zero, the node is freed.

Calling this routine pauses this "automatic freeing" of the node.

Calling this rouine multiple times on the same node has no effect. So you don't need to pair every WaitForRelease call with NodeRelease, it's enough to call NodeRelease once, no matter how many times you called WaitForRelease on the same node.

The reference count is still increased and decreased, but we also keep additional "fake" reference to the node, so it will not be freed.

This should be always paired with NodeRelease, that will remove this "fake" reference and free the node (if it is unused).

See the https://castle-engine.io/shaders#node_release for an example of this.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 557).

Public function Unused: Boolean;

Is node unused, looking at all mechanisms (VRML 1.0 parents, X3D parents, KeepExistingBegin/End, WaitsForRelease).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 561).

Public function PathFromBaseUrl(const RelativePath: string): string;

Returns an absolute path, assuming that RelativePath is relative path from BaseUrl or that RelativePath is already absolute.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 602).

Public procedure Parse(Lexer: TX3DLexer; Reader: TX3DReaderNames); virtual;

Parse node. This should set values of your fields, VRML 1.0 Children list, BaseUrl.

In special cases like TX3DUnknownNode this may actually initialize whole Fields list (by VRML 1.0 "fields" extensibility feature).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 610).

Public procedure ParseXML(Element: TDOMElement; Reader: TX3DReaderNames);

Parse node body, i.e. mainly node's fields.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 613).

Public constructor Create(const AX3DName: string = ''; const ABaseUrl: String = ''); virtual;

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 627).

Public destructor Destroy; override;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 630).

Public function X3DType: string; virtual;

Type of the node in X3D, like 'Group' or 'Shape'. Never empty. Constant for the class lifetime (even for special TX3DUnknownNode and TX3DPrototypeNode, where this is calculated at runtime).

Note that VRML/X3D is generally case-sensitive, so this property is too.

In TX3DNode, this returns ClassX3DType, which is suitable for most nodes. See ClassX3DType.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 641).

Public function NodeTypeName: string; deprecated 'use X3DType';

Warning: this symbol is deprecated: use X3DType

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 642).

Public class function ClassX3DType: string; virtual;

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/x3dnodes_x3dnode.inc (line 655).

Public function Traverse( NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc): Pointer;

Traverse all the nodes of VRML graph that are active.

An "active" part of the VRML graph are the nodes that actually change what the VRML file represents, in terms of geometry, collision detection etc. For example, the Switch node has only one child usually active. Nodes that merely influence the active graph by some events and routes do not have to be active (these nodes may change what the VRML file actually represents, but only by changing other nodes).

For all nodes of NodeClass TraversingFunc will be called. If if returns non-nil for some node, the processing of following nodes (children and siblings) will be aborted and result will be returned.

Traverse not only enumerates these nodes, it also collects all state (transformation, etc — see TX3DGraphTraverseState) that affects how given node should be presented.

Also, TraversingInfo is passed to each TraversingFunc call. This allows you to investigate, during TraversingFunc call, the parents hierarchy (you can't use VRML1Parents / ParentFields of the current node, since a node may have many parents). Traverse calls are naturally recursive, and so the stack of TraversingInfo structures is naturally build and destroyed by recursive calls. For the root node (the one where you called Traverse without specifying initial TraversingInfo), ParentInfo is simply Nil.

The scheme of how Traverse works:

BeforeTraverse;

TraverseIntoChildren := true;
if Self is NodeClass then TraversingFunc (Self, State, TraverseIntoChildren);

MiddleTraverse;

if TraverseIntoChildren is still true then
  for all children returned by DirectEnumerateActive
    call their Traverse(State);

AfterTraverse;

Add Self to State.VRML1State (for VRML 1.0 state nodes);

Note: setting TraverseIntoChildren to false means that some part of the tree is explicitly omitted from traversing. Use this only if you know what you're doing, as for some nodes they actually affect their parents too (for example, chilren within VRML 1.0 Group affect other nodes too; global lights within VRML >= 2.0 affect all nodes; and so on...). Usually, you will use this only for separator-like nodes (for VRML >= 2.0, all Group, Transform, Switch etc. act like separators), and only when you will somehow traverse into these nodes anyway.

We guarantee that AfterTraverse will be called if BeforeTraverse was called and finished (that is, AfterTraverse is called in the finally..end).

During traversing, you can only modify the children (direct or not) nodes of the current node.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 721).

Public function TraverseInternal(StateStack: TX3DGraphTraverseStateStack; NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc; ParentInfo: PTraversingInfo): Pointer;

Like Traverse, but it takes explicit starting state stack and starting ParentInfo. Not generally useful, use only for special purposes.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 728).

Public function TraverseIntoChildren(StateStack: TX3DGraphTraverseStateStack; NodeClass: TX3DNodeClass; TraversingFunc: TTraversingFunc; ParentInfo: PTraversingInfo): Pointer;

Like Traverse, but only enters children. This does the job of Traverse normally omitted if your Traverse callback returns TraverseIntoChildren = False. Using this method, you can traverse into children explicitly from your callback.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 738).

Public procedure EnumerateNodes( proc: TX3DNodeProc; OnlyActive: Boolean); overload;

Enumerate all our children of some class. Recursively. Enumerates also this instance (Self), if it satisfies the NodeClass and SeekNodeName conditions.

This enumerates both VRML 1.0 children (VRML1Children) as well as VRML >= 2.0 (including X3D) children (nodes in TSFNode and TMFNode fields).

If OnlyActive then it will enumerate only active parts of the graph ("active" as defined by Traverse), so it will work as a simpler version of Traverse (simpler, because it doesn't track any state).

If not OnlyActive then it will simply enumerate all nodes. This will include then also prototype helpers, if this node was expanded from prototype: see PrototypeInstanceSourceNode and PrototypeInstanceHelpers.

If you give SeekNodeName parameter, we'll only look for nodes with X3DName = SeekNodeName. When SeekNodeName = '' it, consistently, looks for unnamed nodes (where X3DName = '').

Enumerates children only after enumerating Self. So you can modify children before enumerating them in the Proc callback. You can only modify your children in the Proc callback.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 769).

Public procedure EnumerateNodes(nodeClass: TX3DNodeClass; proc: TX3DNodeProc; OnlyActive: Boolean); overload;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 771).

Public procedure EnumerateNodes(nodeClass: TX3DNodeClass; const SeekNodeName: string; proc: TX3DNodeProc; OnlyActive: Boolean); overload;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 773).

Public function SearchNodes(const Proc: TX3DNodeSearchProc; const OnlyActive: Boolean): Pointer;

Search nodes, like enumerating nodes but allows early exit during the enumeration. We search for a node for which Proc(Node) returns something non-nil.

For every node, the given Proc callback is run. If the Proc callback returns something non-nil, the enumeration of the following nodes stops, and we return the callback result.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 786).

Public function TryFindNodeByName(FindClass: TX3DNodeClass; const FindName: string; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';

Warning: this symbol is deprecated: use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])

TryFindNodeByName and TryFindNode seek for a node with given class (and node name, in case of TryFindNodeByName). If OnlyActive then they seek among only active nodes ("active" as defined by Traverse), otherwise all nodes.

These functions are quite like EnumerateNodes, except they stop at the first occurrence and return it.

TryFindNodeByName and TryFindNode return Nil if such node is not found. FindNodeByName and FindNode raise exception EX3DNotFound in this case.

Exceptions raised
EX3DNotFound
FindNodeByName and FindNode raise this exception when node is not found.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 803).

Public function FindNodeByName(FindClass: TX3DNodeClass; const FindName: string; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';

Warning: this symbol is deprecated: use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 806).

Public function TryFindNode(FindClass: TX3DNodeClass; OnlyActive: Boolean): TX3DNode; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';

Warning: this symbol is deprecated: use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 809).

Public function FindNode(FindClass: TX3DNodeClass; OnlyActive: Boolean): TX3DNode; overload; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';

Warning: this symbol is deprecated: use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 811).

Public function FindNode(const NodeClass: TX3DNodeClass; const FindName: String; const Options: TFindNodeOptions = []): TX3DNode; overload;

Find a node by name and class, in this node and children (recursively).

By default it searches both active and inactive graph parts. Add fnOnlyActive to search only in active parts.

Exceptions raised
EX3DNotFound
When node is not found. Unless fnNilOnMissing in Options, then it returns Nil on missing node, and EX3DNotFound is never raised.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 824).

Public function FindNode(const FindName: string): TX3DNode; overload; deprecated 'use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])';

Warning: this symbol is deprecated: use FindNode(NodeClass: TX3DNodeClass, FindName: String, Options: TFindNodeOptions = [])

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 827).

Public function TryFindNodeState( NodeClass: TX3DNodeClass; out Node: TX3DNode; out State: TX3DGraphTraverseState): Boolean; deprecated 'use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their TX3DGraphTraverseState';

Warning: this symbol is deprecated: use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their TX3DGraphTraverseState

Find the first node with given class (NodeClass), return it's state or just transformation. Similar to Traverse, but stops as soon as the given node is found.

Returns False when not found ("out" parametrs Node, State and Transform are undefined then).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 845).

Public function TryFindNodeTransform( NodeClass: TX3DNodeClass; out Node: TX3DNode; out Transform: TMatrix4; out TransformScale: Single): Boolean; deprecated 'use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their transformations';

Warning: this symbol is deprecated: use FindNode to look for nodes easier; or iterate over TCastleScene.Shapes.TraverseList if you really need to know nodes with their transformations

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 849).

Public function TryFindParentByName(const FindName: string): TX3DNode;

Seeks Self and parent nodes (from VRML1Parents and ParentFields, recursively) for given node name.

In other words, this is similar to TryNodeByName or NodeByName, but it goes "upward" in graph hierarchy. Note that this never restricts itself only to "active" graph part ("active" as defined by Traverse) because you really can't detect what is the "active" part of the graph when going upward.

Exceptions raised
EX3DNotFound
FindParentByName raises this exception when node is not found.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 870).

Public function FindParentByName(const FindName: string): TX3DNode;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 871).

Public function HasParentNode(Node: TX3DNode): Boolean;

Looks for a given Node in parents (and self), recursively. Similar to TryFindParentByName. Returns True only if found.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 876).

Public function TryFindDirectParentByName(const FindName: string): TX3DNode;

Search immediate parents of this node for a node with given FindName. Returns Nil if not found.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 880).

Public function IsNodePresent(Node: TX3DNode; OnlyActive: Boolean): Boolean;

Looks for a given node in our children (direct and not, including self). If OnlyActive, then only active parts are searched ("active" as defined by Traverse).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 885).

Public function NodesCount(NodeClass: TX3DNodeClass; CountOnlyActiveNodes: Boolean): integer;

Count the occurrences of given node class in our children. For example, you can pass NodeClass = TAbstractLightNode to count the light sources in the scene.

If CountOnlyActiveNodes, then only active parts are searched ("active" as defined by Traverse).

This traverses both VRML 1.0 children nodes and VRML 2.0 nodes inside SFNode and MFNode fields.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 896).

Public procedure SaveToStream(Writer: TX3DWriter); override;

Save node to a stream. Saves everything, including node name, node type, and node contents.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 901).

Public class function VRML1StateNode(out StateNode: TVRML1StateNode): Boolean;

Do the nodes of (exactly) this class should be included in VRML 1.0 state (see TX3DGraphTraverseState.VRML1State).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 905).

Public class function ForVRMLVersion(const Version: TX3DVersion): Boolean; virtual;

Some nodes are present only in specific VRML/X3D version. This functions decides it.

For example some nodes can only work in VRML < 2.0, some others only in VRML >= 2.0. There are even some pairs of nodes: for example TConeNode_1 works with VRML < 2.0, TConeNode works with VRML >= 2.0.

NodesManager will use this.

Default implementation of this function returns always True. Generally, I don't try to set this too aggresively — in other words, for all cases when it's sensible, I allow nodes to be used in every VRML/X3D version, even when official specification doesn't. This means that when reading VRML 1.0 files actually a large part of VRML 2.0 is allowed too, and also while reading VRML 2.0 many constructs from VRML 1.0 (officially no longer present in VRML 2.0) are allowed too. I'm trying to support what I call a "sum of VRML 1.0 and 2.0".

In practice I only use this function when various VRML/X3D versions specify the same node name but

  • With different fields.

    For example Cone and Cylinder have slightly different fields, due to the fact that VRML 2.0 resigned from using TSFBitMask fields.

  • With different behavior.

    For example definitions of Sphere for VRML 1.0 and 2.0 are practically equal. However, the behavior from where to take texture and material info is different — in VRML 1.0 we take last Texture2, Material etc. nodes, while in VRML 2.0 we look in parent Shape's "appearance" field. So once again two different Sphere classes are needed.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 945).

Public function EnumerateReplaceChildren( Func: TEnumerateReplaceNodesFunction): Cardinal;

Enumerates all children nodes (recursively), allowing you to decide for each node to replace or remove it.

So this is something like EnumerateNodes, except that it allows you to remove the nodes. It always enumerates all nodes, not only active (e.g. it enumerates all Switch node children, not only the chosen one).

Note that (unlike regular EnumerateNodes) this doesn't report Self to Func !. Which is natural, since this may remove nodes by normal VRML1ChildRemove calls, so it needs to know ParentNode of the removed node.

For each node Func will be called, with ParentNode and Node set. If you change the Node to something else, then the old node will be removed and new Node inserted in the same place. If new Node is Nil, then only the old node will be removed.

Nodes are traversed in depth-first search. Node is first reported to Func, and then (if it's not replaced) we descend into this Node.

Returns

The number of removed (and possibly replaced) nodes.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 970).

Public function RemoveChildrenWithMatchingName( const Wildcard: string; IgnoreCase: Boolean): Cardinal;

Removes all children (and their children, recursively) with node names matchig Wildcard. You can use * and ? special chars in the Wildcard.

Returns

The number of removed nodes.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 977).

Public function PrototypesCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 981).

Public procedure AddPrototype(const Value: TX3DPrototypeBase);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 982).

Public function RoutesCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 985).

Public procedure AddRoute(const Value: TX3DRoute); overload;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 986).

Public procedure AddRoute(const Source, Destination: TX3DFieldOrEvent); overload;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 987).

Public procedure RemoveRoute(const Value: TX3DRoute); overload;

Removes an X3D route (passing event between 2 nodes) from being stored in this node, and thus from being used. Note that TX3DRoute is "owned" by the node, and thus removing it also frees it.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 993).

Public procedure RemoveRoute(const Index: Integer); overload;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 994).

Public function ImportsCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 997).

Public procedure AddImport(const Value: TX3DImport);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 998).

Public function ExportsCount: Integer;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1001).

Public procedure AddExport(const Value: TX3DExport);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1002).

Public function DeepCopy: TX3DNode;

Create a deep copy of this node and all it's children.

New copy is completely independent from original, having all children nodes (in both VRML 1.0 sense (Children) and VRML >= 2.0 (inside SFNode and MFNode fields)) also duplicated. New copy has protypes, routes, interface declarations and generally everything established like in the original, using copied nodes.

Doesn't copy things which are dependent on container hierarchy. (So copying them would be more dangerous than useful.) This means: DestructionNotifications, Scene, VRML1Parents, ParentFields. VRML1Parents and ParentFields will be set for children anyway (to appropriate copies).

Caller owns this newly created copy — as returned by this method, it's not linked anywhere.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1021).

Public procedure AddDestructionNotification(const Event: TNodeDestructionNotification);

Callbacks registered here will be called when this node is destroyed.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1100).

Public procedure RemoveDestructionNotification(const Event: TNodeDestructionNotification);

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1101).

Public procedure PostAddInterfaceDeclaration(IDecl: TX3DInterfaceDeclaration); virtual;

This will be always called by VRML parsers after adding new item to our InterfaceDeclarations.

In this class, this simply adds IDecl.FieldOrEvent to our normal fields/events by IDecl.AddFieldOrEvent. You may override this in subclasses to react in some special way to new fields/events, for example Script node may register here to receive notification when input event is received.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1129).

Public procedure AddCustomField(AField: TX3DField);

Add to node InterfaceDeclarations given field. This should only be used with nodes having HasInterfaceDeclarations = True, like Script or ComposedShader.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1134).

Public procedure AddCustomFieldOrEvent(AFieldOrEvent: TX3DFieldOrEvent);

Add to node InterfaceDeclarations given field or event. This should only be used with nodes having HasInterfaceDeclarations = True, like Script or ComposedShader.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1139).

Public function NiceName: string;

Nice and concise node description for user. Shows node type and name.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1143).

Public procedure UnregisterScene;

Detach this node from parent scene, recursively. Useful if you take a node and want to put it in another TCastleSceneCore.

You almost never need to call this method from your application. This is done automatically for you when TCastleSceneCore is destroyed. And a node can only be part of one TCastleSceneCore instance at one time.

Notable exceptions when you need to call this:

  1. If you process RootNode graph and extract some node from it (that is, delete node from one RootNode graph, but instead of freeing it you insert it into some other VRML/X3D graph) you must call it to manually detach this node (and all it's children) from a previous TCastleSceneCore instance.

  2. Right now the TCastleSceneCore doesn't call RootNode.UnregisterScene when TCastleSceneCore.OwnsRootNode. This is done for speed, because it's not needed in 99% cases.

    However, if your scene contains some node that isn't freed because of KeepExistingBegin or WaitForRelease, then such node will remain attached to non-existing scene. You should call UnregisterScene on such node manually, for now.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1177).

Public function FieldSetByEvent(const Event: TX3DEvent): TX3DField; virtual;

Find field set by given event of this node. Nil if not found (including when this Event doesn't actually belong to this node).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1181).

Public function FieldSendingEvent(const Event: TX3DEvent): TX3DField; virtual;

Find field that sends given event of this node. Nil if not found (including when this Event doesn't actually belong to this node).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1185).

Public function Functionality( const FunctionalityClass: TNodeFunctionalityClass): TNodeFunctionality;

Return an instance performing given functionality of this class (like a fog, transformation, material...), or Nil if none. This implements a simple component system inside TX3DNode, allowing some functionality to have common interface and implementation across a few nodes that are not otherwise related in the ancestor hierarchy.

Descendants should register TNodeFunctionality classes using AddFunctionality.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1195).

Public procedure InternalInsertMetadata(const M: TAbstractMetadataNode);

This item has no description.

Source: scene/x3d/x3dnodes_standard_core.inc (line 39).

Public function FindMetadata(const Key: String): TAbstractMetadataNode;

Find a "metadata" information within this node with given key. Returns Nil if not found.

This seeks for a TAbstractMetadataNode instance within the X3D "metadata" field of this node. Looks for TAbstractMetadataNode with TAbstractMetadataNode.NameField matching the parameter Key. Note that X3D spec allows multiple metadata nodes to share the same key, this method only finds the first one.

It ignores TMetadataSet when searching, as TMetadataSet doesn't contain any simple data, it serves only as container for other metadata nodes.

Source: scene/x3d/x3dnodes_standard_core.inc (line 53).

Public procedure CreateNode; override;

Create node fields and events.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dnode.inc (line 33).

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_x3dnode.inc (line 34).

Public procedure CreateNode; override;

Create node fields and events.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dappearancechildnode.inc (line 28).

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_x3dappearancechildnode.inc (line 29).

Public procedure CreateNode; override;

Create node fields and events.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dshadernode.inc (line 31).

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_x3dshadernode.inc (line 32).

Public destructor Destroy; override;

This item has no description.

Source: scene/x3d/x3dnodes_instantreality.inc (line 183).

Public function ShininessFactorExp: Single;

Shininess expressed as an exponent for shading equations. This is just ShininessFactor * 128.

Source: scene/x3d/x3dnodes_instantreality.inc (line 187).

Public function MaterialInfo: TMaterialInfo;

Material information based on this node. It is automatically updated when properties of this material change. Do not free it yourself, it will be automatically freed when this node is freed.

Source: scene/x3d/x3dnodes_instantreality.inc (line 197).

Public procedure CreateNode; override;

Create node fields and events.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 167).

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_commonsurfaceshader.inc (line 168).

Public procedure SetTextureTransformEnabled(const Value: array of boolean); overload;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 588).

Public procedure SetTextureTransformEnabled(const Value: TBooleanList); overload;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 590).

Properties

Public property PositionInParent: Integer read FPositionInParent write FPositionInParent default -1;

Position of this item within parent VRML/X3D node, used for saving the VRML/X3D graph to file. Default value -1 means "undefined".

For normal usage and processing of VRML graph, this is totally not needed. This position doesn't dictate actual meaning of VRML graph. If you're looking to change order of nodes, you probably want to rather look at something like ReplaceItems within TMFNode or such.

This field is purely a hint when encoding VRML file how to order VRML items (nodes, fields, routes, protos) within parent node or the VRML file. Reason: VRML allows non-unique node names. Each DEF XXX overrides all previous ("previous" in lexical sense, i.e. normal order of tokens in the file) DEF XXX with the same XXX, thus hiding previous node name "XXX". This means that when saving VRML file we have to be very careful about the order of items, such that e.g. all routes are specified when appropriate node names are bound.

This is a relative position, relative to other PositionInParent value of other TX3DFileItem items. So it's not necessary to keep all PositionInParent different or successive within some parent. When saving, we will sort everything according to PositionInParent.

See e.g. ../../../demo_models/x3d/tricky_def_use.x3dv for tests of some tricky layout. When reading such file we have to record PositionInParent to be able to save such file correctly.

Source: scene/x3d/castlefields_x3dfileitem.inc (line 71).

Protected property CDataField: TMFString read FCDataField write FCDataField;

The field where CDATA section from XML is added. Used when loading X3D in XML encoding: XML elements may contain CDATA sections, that are added to "url" field. See X3D XML encoding specification about "Encapsulating Script node code" [http://www.web3d.org/x3d/specifications/ISO-IEC-19776-1.2-X3DEncodings-XML/Part01/concepts.html#EncapsulatingScriptNodeCode]. We also allow this for shader nodes (sensible (follows the intention of the spec) and compatible with InstantReality).

When not assigned, then CDATA section for this node is not allowed.

This should be set in descendants constructor.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 319).

Public property Fields [const Index: Integer]: TX3DField read GetFields;

Node fields.

For normal nodes, all fields are created and added using AddField from the constructor. Fields default values are set, and current field values are set to these defaults. Later, we only modify these fields current values (e.g. when parsing).

However, there are special node classes that set their fields differently. TX3DPrototypeNode has their fields set according to it's VRML 2.0 prototype. TX3DUnknownNode may have it's fields set by VRML 1.0 "fields" feature (so it's Fields are initialized by parsing it).

Nodes with HasInterfaceDeclarations have some Fields and Events added when reading node.

All fields on this list are owned by this instance.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 338).

Public property Events [const Index: Integer]: TX3DEvent read GetEvents;

Explicit events (that is, not exposed by some field) of this node. For exposed events, see each field's property ExposedEvents.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 347).

Public property VRML1Children [const I: Integer]: TX3DNode read GetVRML1Child write SetVRML1Child;

VRML 1.0 children nodes. These are nodes directly specified inside a VRML 1.0 node, they don't belong to any node field. (In VRML 1.0, there was no SFNode / MFNode fields.)

In VRML 2.0, this is always empty.

VRML 1.0 nodes may have any number of children. The children nodes refer back to it's parent nodes in VRML1Parents list. When travelling over VRML/X3D graph, remember that cycles are possible, because of DEF/USE. Obviously, they possible when travelling along the VRML1Parents list. We currently assume that there are no cycles when we treat the graph as directed, but it may change one day (some VRML/X3D models create real cycles).

Adding/removing stuff from the VRML1Children list keeps track of how many times a node is used. If the child node has no parents, it will be freed. Actually, nodes can be children of both nodes (VRML 1.0 style, then VRML1Children and VRML1Parents is used) or fields (TMFNode or TSFNode, in VRML 2.0 style; then ParentFields is used). So the node is freed only when it's not referenced by any node and not referenced by any field. Generally, it's the parent that takes care of reference-counting and freeing the children, not the other way around.

Note that given node instance may be a children of a single node multiple times, through DEF/USE mechanism. The order of children is important and preserved. (On the other hand, the order of VRML1Parents is not important, as that list is mostly for reference-counting.)

You can replace one children with another like VRML1Children[I] := NewChildren;. This works like a shortcut for VRML1ChildRemove(I); VRML1ChildAdd(I, NewChildren);. But 1. it's more efficient; 2. it's safer — if Children[I] is already equal to NewChildren, it does nothing.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 409).

Public property VRML1Parents [const I: Integer]: TX3DNode read GetVRML1Parent;

All VRML 1.0 parent nodes. VRML1Parents is a reverse of VRML1Children — it lists all the nodes where we are on VRML1Children list.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 439).

Public property ParentFields[Index: Integer]: TX3DField read GetParentFieldsItem;

All SFNode and MFNode fields where this node is referenced. This is somewhat analogous for VRML1Parents, but for VRML 2.0.

ParentFieldsNode is just for your comfort, it returns always appropriate field's ParentNode property value (i.e. (ParentField[Index] as TSFNode).ParentNode or (ParentField[Index] as TMFNode).ParentNode).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 452).

Public property ParentFieldsNode[Index: Integer]: TX3DNode read GetParentFieldsNodeItem;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 453).

Public property KeepExisting: Cardinal read FKeepExisting write FKeepExisting; deprecated 'do not access this directly; instead use TX3DNode.WaitForRelease and NodeRelease (eventually KeepExistingBegin and KeepExistingEnd) if you want to control node lifetime';

Warning: this symbol is deprecated: do not access this directly; instead use TX3DNode.WaitForRelease and NodeRelease (eventually KeepExistingBegin and KeepExistingEnd) if you want to control node lifetime

When KeepExisting is non-zero, the node will not be automatically freed when it will become unused (when reference count changes from non-zero to zero). This is useful when you want to control the node lifetime explicitly.

For example, you may want to remove the node from X3D graph hierarchy, but keep a valid reference to it anyway (for example, maybe you'll free it later by hand or add it somewhere else).

Methods KeepExistingBegin and KeepExistingEnd simply increase / decrease KeepExisting value by 1. This is the most usual usage.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 502).

Public property X3DName: string read FX3DName write FX3DName;

Name of this node. When saving/loading, this comes from VRML/X3D "DEF" construct. Empty value means that the name is not defined. Do not change this during loading / saving of the X3D graph, or searching for nodes e.g. by EnumerateNodes.

Note that this property is deliberately not called Name. In the future, this class may descend from the standard TComponent class, that defines a Name field with a special restrictions (it must be a valid Pascal identifier), which cannot apply to X3D node names (that can have quite free names, see http://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html ). We don't want to confuse these two properties.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 575).

Public property NodeName: string read FX3DName write FX3DName; deprecated 'use X3DName';

Warning: this symbol is deprecated: use X3DName

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 577).

Public property BaseUrl: String read FBaseUrl write FBaseUrl;

Base URL for all URLs inside our fields. Used everywhere as a base for relative URLs, to handle fields that refer to external files like textures, other 3D models (ImageTexture, Inline nodes, many others).

It must be an absolute URL. Currently, it doesn't have to contain a protocol, and is then interpreted as a path on local filesystem (just like it had file:// prefix). Still, it must be an absolute path.

This is set in constructor, and eventually adjusted by various parsing routines. This way we could, if only we would like to, resolve nodes like Inline or ImageTexture immediately after parsing them.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 593).

Public property WWWBasePath: string read FBaseUrl write FBaseUrl; deprecated;

Warning: this symbol is deprecated.

Old deprecated name for BaseUrl.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 597).

Public property Prototypes [const Index: Integer]: TX3DPrototypeBase read GetPrototypes;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 980).

Public property Routes [const Index: Integer]: TX3DRoute read GetRoutes;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 984).

Public property ImportsList [const Index: Integer]: TX3DImport read GetImports;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 996).

Public property ExportsList [const Index: Integer]: TX3DExport read GetExports;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1000).

Public property PrototypeInstance: Boolean read FPrototypeInstance;

PrototypeInstance = True indicates that this node was created from a non-external prototype instantiation.

Then PrototypeInstanceSourceNode is non-nil and indicates parsed prototype node (and PrototypeInstanceSourceNode.Prototype gives you even a link to the actual prototype specification).

PrototypeInstanceSourceNode is used for events: any ROUTEs specified outside of prototype and leading to/from instantiated prototype should actually lead to PrototypeInstanceSourceNode events (not to events of Self). Reason: prototype events may be different than actual expanded node events, and ROUTEs want to lead to prototype events. This is implemented when expanding prototype (TX3DPrototypeNode.Instantiate) and when linking ROUTE (TX3DRoute.SetSource, TX3DRoute.SetDestination).

PrototypeInstanceHelpers may be Nil if empty, or may contain a list of other nodes duplicated along with the main prototype node. From VRML spec:

Any other nodes and accompanying scene graphs are not part of the transformation hierarchy, but may be referenced by ROUTE statements or Script nodes in the prototype definition.

Note that for TX3DPrototypeNode (within PrototypeInstanceSourceNode) these have a little different meaning: they describe the nested prototype, if any, that was used to create this node. This may happen if the node was expanded from one prototype within another. (Usually, you shouldn't be concerned about this; see TX3DPrototypeNode.Instantiate implementation comments for gory details about this.)

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1057).

Public property PrototypeInstanceSourceNode: TX3DPrototypeNode read FPrototypeInstanceSourceNode;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1058).

Public property PrototypeInstanceHelpers: TX3DNode read FPrototypeInstanceHelpers;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1060).

Public property DefaultContainerField: string read FDefaultContainerField write FDefaultContainerField;

Default value of "containerField" attribute for this node in X3D XML encoding.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1065).

Public property HasInterfaceDeclarations: TX3DAccessTypes read FHasInterfaceDeclarations write SetHasInterfaceDeclarations default [];

For some special VRML / X3D nodes (like Script, ComposedShader) that allow the definition of additional fields/events within.

In X3D specification this is marked like

# And any number of:
fieldType [in]     fieldName
fieldType [in,out] fieldName    initialValue
fieldType [out]    fieldName
fieldType []       fieldName    initialValue

If HasInterfaceDeclarations is not [], then InterfaceDeclarations will be non-nil and parser (classic VRML parser in this unit, X3D XML reader too) will read this from VRML files. Moreover, for each interface declaration, also appropriate field/event will be added to the list of Fields or Events, so fields/events created by interface declarations will function just like other standard fields everywhere.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1090).

Public property InterfaceDeclarations: TX3DInterfaceDeclarationList read FInterfaceDeclarations;

This item has no description.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1094).

Public property Scene: TX3DEventsEngine read FScene write FScene;

Scene that will be notified about changes to this node. This is necessary to allow the scene to properly process VRML/X3D events, and also to react properly to any other changes to the nodes (like when you change some field directly by ObjectPascal code, e.g. by TX3DField.Send).

May be Nil if none.

A given TX3DNode may be renderable only by a single renderer. This means it can be placed only within one TCastleScene.

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1114).

Public property TransformFunctionality: TTransformFunctionality read FTransformFunctionality;

Fast shortcut to Functionality(TTransformFunctionality).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1199).

Public property TimeFunctionality: TTimeDependentFunctionality read FTimeFunctionality;

Fast shortcut to Functionality(TTimeDependentFunctionality).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1201).

Public property GenTexFunctionality: TGeneratedTextureFunctionality read FGenTexFunctionality;

Fast shortcut to Functionality(TGeneratedTextureFunctionality).

Source: scene/x3d/x3dnodes_x3dnode.inc (line 1203).

Public property MetadataBoolean[const Key: String]: Boolean read GetMetadataBoolean write SetMetadataBoolean;

Get/set metadata, identified by a given Key, as a Boolean. "Metadata" is any value you want to save with this node, it has no effect on the rendering/behavior. This property hides various complexities of the X3D metadata nodes.

This property looks for a TMetadataBooleanNode node inside the "metadata" of this node using FindMetadata. If found, it allows to operate TMetadataBooleanNode.FdValue array. The MetadataBooleanArray allows to get/set appropriate items of this array. The MetadataBoolean simply gets/sets the first array item.

If such metadata node is not found, or it's TMetadataBooleanNode.FdValue array is too short, this returns false. When setting, it adds such metadata node if necessary, and increases the TMetadataBooleanNode.FdValue array length if necessary.

Source: scene/x3d/x3dnodes_standard_core.inc (line 70).

Public property MetadataBooleanArray[const Key: String; const Index: Cardinal]: Boolean read GetMetadataBooleanArray write SetMetadataBooleanArray;

This item has no description.

Source: scene/x3d/x3dnodes_standard_core.inc (line 71).

Public property MetadataString[const Key: String]: String read GetMetadataString write SetMetadataString;

Get/set metadata, identified by a given Key, as a String. "Metadata" is any value you want to save with this node, it has no effect on the rendering/behavior. This property hides various complexities of the X3D metadata nodes.

This property looks for a TMetadataStringNode node inside the "metadata" of this node using FindMetadata. If found, it allows to operate TMetadataStringNode.FdValue array. The MetadataStringArray allows to get/set appropriate items of this array. The MetadataString simply gets/sets the first array item.

If such metadata node is not found, or it's TMetadataStringNode.FdValue array is too short, this returns ''. When setting, it adds such metadata node if necessary, and increases the TMetadataStringNode.FdValue array length if necessary.

Source: scene/x3d/x3dnodes_standard_core.inc (line 88).

Public property MetadataStringArray[const Key: String; const Index: Cardinal]: String read GetMetadataStringArray write SetMetadataStringArray;

This item has no description.

Source: scene/x3d/x3dnodes_standard_core.inc (line 89).

Public property MetadataInteger[const Key: String]: Integer read GetMetadataInteger write SetMetadataInteger;

Get/set metadata, identified by a given Key, as a Integer. "Metadata" is any value you want to save with this node, it has no effect on the rendering/behavior. This property hides various complexities of the X3D metadata nodes.

This property looks for a TMetadataIntegerNode node inside the "metadata" of this node using FindMetadata. If found, it allows to operate TMetadataIntegerNode.FdValue array. The MetadataIntegerArray allows to get/set appropriate items of this array. The MetadataInteger simply gets/sets the first array item.

If such metadata node is not found, or it's TMetadataIntegerNode.FdValue array is too short, this returns 0. When setting, it adds such metadata node if necessary, and increases the TMetadataIntegerNode.FdValue array length if necessary.

Source: scene/x3d/x3dnodes_standard_core.inc (line 106).

Public property MetadataIntegerArray[const Key: String; const Index: Cardinal]: Integer read GetMetadataIntegerArray write SetMetadataIntegerArray;

This item has no description.

Source: scene/x3d/x3dnodes_standard_core.inc (line 107).

Public property MetadataDouble[const Key: String]: Double read GetMetadataDouble write SetMetadataDouble;

Get/set metadata, identified by a given Key, as a Double. "Metadata" is any value you want to save with this node, it has no effect on the rendering/behavior. This property hides various complexities of the X3D metadata nodes.

This property looks for a TMetadataDoubleNode or TMetadataFloatNode node inside the "metadata" of this node using FindMetadata. If found, it allows to operate TMetadataDoubleNode.FdValue array or TMetadataFloatNode.FdValue array. The MetadataDoubleArray allows to get/set appropriate items of this array. The MetadataDouble simply gets/sets the first array item.

If such metadata node is not found, or it's TMetadataDoubleNode.FdValue array is too short, this returns 0.0. When setting, it adds such metadata node if necessary, and increases the TMetadataDoubleNode.FdValue array length if necessary.

Source: scene/x3d/x3dnodes_standard_core.inc (line 125).

Public property MetadataDoubleArray[const Key: String; const Index: Cardinal]: Double read GetMetadataDoubleArray write SetMetadataDoubleArray;

This item has no description.

Source: scene/x3d/x3dnodes_standard_core.inc (line 126).

Public property FdMetadata: TSFNode read FFdMetadata;

Internal wrapper for property Metadata. This wrapper API may change, we advise to access simpler Metadata 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_x3dnode.inc (line 39).

Public property Metadata: TAbstractMetadataNode read GetMetadata write SetMetadata;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dnode.inc (line 43).

Public property EventActivate: TSFBoolEvent read FEventActivate;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dshadernode.inc (line 36).

Public property EventIsSelected: TSFBoolEvent read FEventIsSelected;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dshadernode.inc (line 40).

Public property EventIsValid: TSFBoolEvent read FEventIsValid;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_x3dshadernode.inc (line 44).

Public property FdLanguage: TSFStringEnum read FFdLanguage;

Internal wrapper for property Language. This wrapper API may change, we advise to access simpler Language 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_x3dshadernode.inc (line 48).

Public property Language: TShaderLanguage read GetLanguage write SetLanguage;

Shading language. Only the GLSL (OpenGL Shading Language) is actually supported. The default value, empty string, is equivalent to GLSL.

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

Public property Transparency: Single read GetTransparency write SetTransparency;

Transparency determined by the AlphaFactor. This is just 1 - AlphaFactor.

Source: scene/x3d/x3dnodes_instantreality.inc (line 191).

Public property FdAlphaFactor: TSFFloat read FFdAlphaFactor;

Internal wrapper for property AlphaFactor. This wrapper API may change, we advise to access simpler AlphaFactor 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_commonsurfaceshader.inc (line 172).

Public property AlphaFactor: Single read GetAlphaFactor write SetAlphaFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 174).

Public property FdAlphaTextureId: TSFInt32 read FFdAlphaTextureId;

Internal wrapper for property AlphaTextureId. This wrapper API may change, we advise to access simpler AlphaTextureId 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_commonsurfaceshader.inc (line 178).

Public property AlphaTextureId: Integer read GetAlphaTextureId write SetAlphaTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 180).

Public property FdAlphaTextureCoordinatesId: TSFInt32 read FFdAlphaTextureCoordinatesId;

Internal wrapper for property AlphaTextureCoordinatesId. This wrapper API may change, we advise to access simpler AlphaTextureCoordinatesId 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_commonsurfaceshader.inc (line 184).

Public property AlphaTextureCoordinatesId: Integer read GetAlphaTextureCoordinatesId write SetAlphaTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 186).

Public property FdAlphaTextureChannelMask: TSFString read FFdAlphaTextureChannelMask;

Internal wrapper for property AlphaTextureChannelMask. This wrapper API may change, we advise to access simpler AlphaTextureChannelMask 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_commonsurfaceshader.inc (line 190).

Public property AlphaTextureChannelMask: String read GetAlphaTextureChannelMask write SetAlphaTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 192).

Public property FdAlphaTexture: TSFNode read FFdAlphaTexture;

Internal wrapper for property AlphaTexture. This wrapper API may change, we advise to access simpler AlphaTexture 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_commonsurfaceshader.inc (line 196).

Public property AlphaTexture: TAbstractTextureNode read GetAlphaTexture write SetAlphaTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 198).

Public property FdAmbientFactor: TSFVec3f read FFdAmbientFactor;

Internal wrapper for property AmbientFactor. This wrapper API may change, we advise to access simpler AmbientFactor 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_commonsurfaceshader.inc (line 202).

Public property AmbientFactor: TVector3 read GetAmbientFactor write SetAmbientFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 204).

Public property FdAmbientTextureId: TSFInt32 read FFdAmbientTextureId;

Internal wrapper for property AmbientTextureId. This wrapper API may change, we advise to access simpler AmbientTextureId 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_commonsurfaceshader.inc (line 208).

Public property AmbientTextureId: Integer read GetAmbientTextureId write SetAmbientTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 210).

Public property FdAmbientTextureCoordinatesId: TSFInt32 read FFdAmbientTextureCoordinatesId;

Internal wrapper for property AmbientTextureCoordinatesId. This wrapper API may change, we advise to access simpler AmbientTextureCoordinatesId 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_commonsurfaceshader.inc (line 214).

Public property AmbientTextureCoordinatesId: Integer read GetAmbientTextureCoordinatesId write SetAmbientTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 216).

Public property FdAmbientTextureChannelMask: TSFString read FFdAmbientTextureChannelMask;

Internal wrapper for property AmbientTextureChannelMask. This wrapper API may change, we advise to access simpler AmbientTextureChannelMask 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_commonsurfaceshader.inc (line 220).

Public property AmbientTextureChannelMask: String read GetAmbientTextureChannelMask write SetAmbientTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 222).

Public property FdAmbientTexture: TSFNode read FFdAmbientTexture;

Internal wrapper for property AmbientTexture. This wrapper API may change, we advise to access simpler AmbientTexture 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_commonsurfaceshader.inc (line 226).

Public property AmbientTexture: TAbstractTextureNode read GetAmbientTexture write SetAmbientTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 228).

Public property FdDiffuseFactor: TSFVec3f read FFdDiffuseFactor;

Internal wrapper for property DiffuseFactor. This wrapper API may change, we advise to access simpler DiffuseFactor 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_commonsurfaceshader.inc (line 232).

Public property DiffuseFactor: TVector3 read GetDiffuseFactor write SetDiffuseFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 234).

Public property FdDiffuseTextureId: TSFInt32 read FFdDiffuseTextureId;

Internal wrapper for property DiffuseTextureId. This wrapper API may change, we advise to access simpler DiffuseTextureId 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_commonsurfaceshader.inc (line 238).

Public property DiffuseTextureId: Integer read GetDiffuseTextureId write SetDiffuseTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 240).

Public property FdDiffuseTextureCoordinatesId: TSFInt32 read FFdDiffuseTextureCoordinatesId;

Internal wrapper for property DiffuseTextureCoordinatesId. This wrapper API may change, we advise to access simpler DiffuseTextureCoordinatesId 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_commonsurfaceshader.inc (line 244).

Public property DiffuseTextureCoordinatesId: Integer read GetDiffuseTextureCoordinatesId write SetDiffuseTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 246).

Public property FdDiffuseTextureChannelMask: TSFString read FFdDiffuseTextureChannelMask;

Internal wrapper for property DiffuseTextureChannelMask. This wrapper API may change, we advise to access simpler DiffuseTextureChannelMask 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_commonsurfaceshader.inc (line 250).

Public property DiffuseTextureChannelMask: String read GetDiffuseTextureChannelMask write SetDiffuseTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 252).

Public property FdDiffuseTexture: TSFNode read FFdDiffuseTexture;

Internal wrapper for property DiffuseTexture. This wrapper API may change, we advise to access simpler DiffuseTexture 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_commonsurfaceshader.inc (line 256).

Public property DiffuseTexture: TAbstractTextureNode read GetDiffuseTexture write SetDiffuseTexture;

The texture controlling the diffuse color, multiplied by DiffuseFactor.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 258).

Public property FdDiffuseDisplacementTexture: TSFNode read FFdDiffuseDisplacementTexture;

Internal wrapper for property DiffuseDisplacementTexture. This wrapper API may change, we advise to access simpler DiffuseDisplacementTexture 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_commonsurfaceshader.inc (line 262).

Public property DiffuseDisplacementTexture: TAbstractTextureNode read GetDiffuseDisplacementTexture write SetDiffuseDisplacementTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 264).

Public property FdDisplacementAxis: TSFString read FFdDisplacementAxis;

Internal wrapper for property DisplacementAxis. This wrapper API may change, we advise to access simpler DisplacementAxis 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_commonsurfaceshader.inc (line 268).

Public property DisplacementAxis: String read GetDisplacementAxis write SetDisplacementAxis;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 270).

Public property FdDisplacementFactor: TSFFloat read FFdDisplacementFactor;

Internal wrapper for property DisplacementFactor. This wrapper API may change, we advise to access simpler DisplacementFactor 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_commonsurfaceshader.inc (line 274).

Public property DisplacementFactor: Single read GetDisplacementFactor write SetDisplacementFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 276).

Public property FdDisplacementTextureId: TSFInt32 read FFdDisplacementTextureId;

Internal wrapper for property DisplacementTextureId. This wrapper API may change, we advise to access simpler DisplacementTextureId 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_commonsurfaceshader.inc (line 280).

Public property DisplacementTextureId: Integer read GetDisplacementTextureId write SetDisplacementTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 282).

Public property FdDisplacementTextureCoordinatesId: TSFInt32 read FFdDisplacementTextureCoordinatesId;

Internal wrapper for property DisplacementTextureCoordinatesId. This wrapper API may change, we advise to access simpler DisplacementTextureCoordinatesId 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_commonsurfaceshader.inc (line 286).

Public property DisplacementTextureCoordinatesId: Integer read GetDisplacementTextureCoordinatesId write SetDisplacementTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 288).

Public property FdDisplacementTexture: TSFNode read FFdDisplacementTexture;

Internal wrapper for property DisplacementTexture. This wrapper API may change, we advise to access simpler DisplacementTexture 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_commonsurfaceshader.inc (line 292).

Public property DisplacementTexture: TAbstractTextureNode read GetDisplacementTexture write SetDisplacementTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 294).

Public property FdEmissiveFactor: TSFVec3f read FFdEmissiveFactor;

Internal wrapper for property EmissiveFactor. This wrapper API may change, we advise to access simpler EmissiveFactor 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_commonsurfaceshader.inc (line 298).

Public property EmissiveFactor: TVector3 read GetEmissiveFactor write SetEmissiveFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 300).

Public property FdEmissiveTextureId: TSFInt32 read FFdEmissiveTextureId;

Internal wrapper for property EmissiveTextureId. This wrapper API may change, we advise to access simpler EmissiveTextureId 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_commonsurfaceshader.inc (line 304).

Public property EmissiveTextureId: Integer read GetEmissiveTextureId write SetEmissiveTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 306).

Public property FdEmissiveTextureCoordinatesId: TSFInt32 read FFdEmissiveTextureCoordinatesId;

Internal wrapper for property EmissiveTextureCoordinatesId. This wrapper API may change, we advise to access simpler EmissiveTextureCoordinatesId 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_commonsurfaceshader.inc (line 310).

Public property EmissiveTextureCoordinatesId: Integer read GetEmissiveTextureCoordinatesId write SetEmissiveTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 312).

Public property FdEmissiveTextureChannelMask: TSFString read FFdEmissiveTextureChannelMask;

Internal wrapper for property EmissiveTextureChannelMask. This wrapper API may change, we advise to access simpler EmissiveTextureChannelMask 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_commonsurfaceshader.inc (line 316).

Public property EmissiveTextureChannelMask: String read GetEmissiveTextureChannelMask write SetEmissiveTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 318).

Public property FdEmissiveTexture: TSFNode read FFdEmissiveTexture;

Internal wrapper for property EmissiveTexture. This wrapper API may change, we advise to access simpler EmissiveTexture 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_commonsurfaceshader.inc (line 322).

Public property EmissiveTexture: TAbstractTextureNode read GetEmissiveTexture write SetEmissiveTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 324).

Public property FdEnvironmentFactor: TSFVec3f read FFdEnvironmentFactor;

Internal wrapper for property EnvironmentFactor. This wrapper API may change, we advise to access simpler EnvironmentFactor 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_commonsurfaceshader.inc (line 328).

Public property EnvironmentFactor: TVector3 read GetEnvironmentFactor write SetEnvironmentFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 330).

Public property FdEnvironmentTextureId: TSFInt32 read FFdEnvironmentTextureId;

Internal wrapper for property EnvironmentTextureId. This wrapper API may change, we advise to access simpler EnvironmentTextureId 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_commonsurfaceshader.inc (line 334).

Public property EnvironmentTextureId: Integer read GetEnvironmentTextureId write SetEnvironmentTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 336).

Public property FdEnvironmentTextureCoordinatesId: TSFInt32 read FFdEnvironmentTextureCoordinatesId;

Internal wrapper for property EnvironmentTextureCoordinatesId. This wrapper API may change, we advise to access simpler EnvironmentTextureCoordinatesId 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_commonsurfaceshader.inc (line 340).

Public property EnvironmentTextureCoordinatesId: Integer read GetEnvironmentTextureCoordinatesId write SetEnvironmentTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 342).

Public property FdEnvironmentTextureChannelMask: TSFString read FFdEnvironmentTextureChannelMask;

Internal wrapper for property EnvironmentTextureChannelMask. This wrapper API may change, we advise to access simpler EnvironmentTextureChannelMask 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_commonsurfaceshader.inc (line 346).

Public property EnvironmentTextureChannelMask: String read GetEnvironmentTextureChannelMask write SetEnvironmentTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 348).

Public property FdEnvironmentTexture: TSFNode read FFdEnvironmentTexture;

Internal wrapper for property EnvironmentTexture. This wrapper API may change, we advise to access simpler EnvironmentTexture 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_commonsurfaceshader.inc (line 352).

Public property EnvironmentTexture: TAbstractEnvironmentTextureNode read GetEnvironmentTexture write SetEnvironmentTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 354).

Public property FdMultiDiffuseAlphaTexture: TSFNode read FFdMultiDiffuseAlphaTexture;

Internal wrapper for property MultiDiffuseAlphaTexture. This wrapper API may change, we advise to access simpler MultiDiffuseAlphaTexture 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_commonsurfaceshader.inc (line 358).

Public property MultiDiffuseAlphaTexture: TAbstractTextureNode read GetMultiDiffuseAlphaTexture write SetMultiDiffuseAlphaTexture;

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

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 360).

Public property FdMultiEmmisiveAmbientIntensityTexture: TSFNode read FFdMultiEmmisiveAmbientIntensityTexture;

Internal wrapper for property MultiEmmisiveAmbientIntensityTexture. This wrapper API may change, we advise to access simpler MultiEmmisiveAmbientIntensityTexture 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_commonsurfaceshader.inc (line 364).

Public property MultiEmmisiveAmbientIntensityTexture: TAbstractTextureNode read GetMultiEmmisiveAmbientIntensityTexture write SetMultiEmmisiveAmbientIntensityTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 366).

Public property FdMultiSpecularShininessTexture: TSFNode read FFdMultiSpecularShininessTexture;

Internal wrapper for property MultiSpecularShininessTexture. This wrapper API may change, we advise to access simpler MultiSpecularShininessTexture 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_commonsurfaceshader.inc (line 370).

Public property MultiSpecularShininessTexture: TAbstractTextureNode read GetMultiSpecularShininessTexture write SetMultiSpecularShininessTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 372).

Public property FdMultiVisibilityTexture: TSFNode read FFdMultiVisibilityTexture;

Internal wrapper for property MultiVisibilityTexture. This wrapper API may change, we advise to access simpler MultiVisibilityTexture 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_commonsurfaceshader.inc (line 376).

Public property MultiVisibilityTexture: TAbstractTextureNode read GetMultiVisibilityTexture write SetMultiVisibilityTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 378).

Public property FdNormalFormat: TSFString read FFdNormalFormat;

Internal wrapper for property NormalFormat. This wrapper API may change, we advise to access simpler NormalFormat 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_commonsurfaceshader.inc (line 382).

Public property NormalFormat: String read GetNormalFormat write SetNormalFormat;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 384).

Public property FdNormalSpace: TSFString read FFdNormalSpace;

Internal wrapper for property NormalSpace. This wrapper API may change, we advise to access simpler NormalSpace 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_commonsurfaceshader.inc (line 388).

Public property NormalSpace: String read GetNormalSpace write SetNormalSpace;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 390).

Public property FdNormalTextureId: TSFInt32 read FFdNormalTextureId;

Internal wrapper for property NormalTextureId. This wrapper API may change, we advise to access simpler NormalTextureId 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_commonsurfaceshader.inc (line 394).

Public property NormalTextureId: Integer read GetNormalTextureId write SetNormalTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 396).

Public property FdNormalTextureCoordinatesId: TSFInt32 read FFdNormalTextureCoordinatesId;

Internal wrapper for property NormalTextureCoordinatesId. This wrapper API may change, we advise to access simpler NormalTextureCoordinatesId 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_commonsurfaceshader.inc (line 400).

Public property NormalTextureCoordinatesId: Integer read GetNormalTextureCoordinatesId write SetNormalTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 402).

Public property FdNormalTextureChannelMask: TSFString read FFdNormalTextureChannelMask;

Internal wrapper for property NormalTextureChannelMask. This wrapper API may change, we advise to access simpler NormalTextureChannelMask 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_commonsurfaceshader.inc (line 406).

Public property NormalTextureChannelMask: String read GetNormalTextureChannelMask write SetNormalTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 408).

Public property FdNormalScale: TSFVec3f read FFdNormalScale;

Internal wrapper for property NormalScale. This wrapper API may change, we advise to access simpler NormalScale 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_commonsurfaceshader.inc (line 412).

Public property NormalScale: TVector3 read GetNormalScale write SetNormalScale;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 414).

Public property FdNormalBias: TSFVec3f read FFdNormalBias;

Internal wrapper for property NormalBias. This wrapper API may change, we advise to access simpler NormalBias 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_commonsurfaceshader.inc (line 418).

Public property NormalBias: TVector3 read GetNormalBias write SetNormalBias;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 420).

Public property FdNormalTexture: TSFNode read FFdNormalTexture;

Internal wrapper for property NormalTexture. This wrapper API may change, we advise to access simpler NormalTexture 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_commonsurfaceshader.inc (line 424).

Public property NormalTexture: TAbstractTextureNode read GetNormalTexture write SetNormalTexture;

Normalmap for bump mapping (the texture controlling the normals).

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 426).

Public property FdNormalTextureParallaxHeight: TSFFloat read FFdNormalTextureParallaxHeight;

Internal wrapper for property NormalTextureParallaxHeight. This wrapper API may change, we advise to access simpler NormalTextureParallaxHeight 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_commonsurfaceshader.inc (line 430).

Public property NormalTextureParallaxHeight: Single read GetNormalTextureParallaxHeight write SetNormalTextureParallaxHeight;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 432).

Public property FdReflectionFactor: TSFVec3f read FFdReflectionFactor;

Internal wrapper for property ReflectionFactor. This wrapper API may change, we advise to access simpler ReflectionFactor 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_commonsurfaceshader.inc (line 436).

Public property ReflectionFactor: TVector3 read GetReflectionFactor write SetReflectionFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 438).

Public property FdReflectionTextureId: TSFInt32 read FFdReflectionTextureId;

Internal wrapper for property ReflectionTextureId. This wrapper API may change, we advise to access simpler ReflectionTextureId 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_commonsurfaceshader.inc (line 442).

Public property ReflectionTextureId: Integer read GetReflectionTextureId write SetReflectionTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 444).

Public property FdReflectionTextureCoordinatesId: TSFInt32 read FFdReflectionTextureCoordinatesId;

Internal wrapper for property ReflectionTextureCoordinatesId. This wrapper API may change, we advise to access simpler ReflectionTextureCoordinatesId 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_commonsurfaceshader.inc (line 448).

Public property ReflectionTextureCoordinatesId: Integer read GetReflectionTextureCoordinatesId write SetReflectionTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 450).

Public property FdReflectionTextureChannelMask: TSFString read FFdReflectionTextureChannelMask;

Internal wrapper for property ReflectionTextureChannelMask. This wrapper API may change, we advise to access simpler ReflectionTextureChannelMask 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_commonsurfaceshader.inc (line 454).

Public property ReflectionTextureChannelMask: String read GetReflectionTextureChannelMask write SetReflectionTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 456).

Public property FdReflectionTexture: TSFNode read FFdReflectionTexture;

Internal wrapper for property ReflectionTexture. This wrapper API may change, we advise to access simpler ReflectionTexture 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_commonsurfaceshader.inc (line 460).

Public property ReflectionTexture: TAbstractTextureNode read GetReflectionTexture write SetReflectionTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 462).

Public property FdShininessFactor: TSFFloat read FFdShininessFactor;

Internal wrapper for property ShininessFactor. This wrapper API may change, we advise to access simpler ShininessFactor 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_commonsurfaceshader.inc (line 466).

Public property ShininessFactor: Single read GetShininessFactor write SetShininessFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 468).

Public property FdShininessTextureId: TSFInt32 read FFdShininessTextureId;

Internal wrapper for property ShininessTextureId. This wrapper API may change, we advise to access simpler ShininessTextureId 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_commonsurfaceshader.inc (line 472).

Public property ShininessTextureId: Integer read GetShininessTextureId write SetShininessTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 474).

Public property FdShininessTextureCoordinatesId: TSFInt32 read FFdShininessTextureCoordinatesId;

Internal wrapper for property ShininessTextureCoordinatesId. This wrapper API may change, we advise to access simpler ShininessTextureCoordinatesId 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_commonsurfaceshader.inc (line 478).

Public property ShininessTextureCoordinatesId: Integer read GetShininessTextureCoordinatesId write SetShininessTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 480).

Public property FdShininessTextureChannelMask: TSFString read FFdShininessTextureChannelMask;

Internal wrapper for property ShininessTextureChannelMask. This wrapper API may change, we advise to access simpler ShininessTextureChannelMask 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_commonsurfaceshader.inc (line 484).

Public property ShininessTextureChannelMask: String read GetShininessTextureChannelMask write SetShininessTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 486).

Public property FdShininessTexture: TSFNode read FFdShininessTexture;

Internal wrapper for property ShininessTexture. This wrapper API may change, we advise to access simpler ShininessTexture 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_commonsurfaceshader.inc (line 490).

Public property ShininessTexture: TAbstractTextureNode read GetShininessTexture write SetShininessTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 492).

Public property FdSpecularFactor: TSFVec3f read FFdSpecularFactor;

Internal wrapper for property SpecularFactor. This wrapper API may change, we advise to access simpler SpecularFactor 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_commonsurfaceshader.inc (line 496).

Public property SpecularFactor: TVector3 read GetSpecularFactor write SetSpecularFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 498).

Public property FdSpecularTextureId: TSFInt32 read FFdSpecularTextureId;

Internal wrapper for property SpecularTextureId. This wrapper API may change, we advise to access simpler SpecularTextureId 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_commonsurfaceshader.inc (line 502).

Public property SpecularTextureId: Integer read GetSpecularTextureId write SetSpecularTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 504).

Public property FdSpecularTextureCoordinatesId: TSFInt32 read FFdSpecularTextureCoordinatesId;

Internal wrapper for property SpecularTextureCoordinatesId. This wrapper API may change, we advise to access simpler SpecularTextureCoordinatesId 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_commonsurfaceshader.inc (line 508).

Public property SpecularTextureCoordinatesId: Integer read GetSpecularTextureCoordinatesId write SetSpecularTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 510).

Public property FdSpecularTextureChannelMask: TSFString read FFdSpecularTextureChannelMask;

Internal wrapper for property SpecularTextureChannelMask. This wrapper API may change, we advise to access simpler SpecularTextureChannelMask 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_commonsurfaceshader.inc (line 514).

Public property SpecularTextureChannelMask: String read GetSpecularTextureChannelMask write SetSpecularTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 516).

Public property FdSpecularTexture: TSFNode read FFdSpecularTexture;

Internal wrapper for property SpecularTexture. This wrapper API may change, we advise to access simpler SpecularTexture 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_commonsurfaceshader.inc (line 520).

Public property SpecularTexture: TAbstractTextureNode read GetSpecularTexture write SetSpecularTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 522).

Public property FdTransmissionFactor: TSFVec3f read FFdTransmissionFactor;

Internal wrapper for property TransmissionFactor. This wrapper API may change, we advise to access simpler TransmissionFactor 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_commonsurfaceshader.inc (line 526).

Public property TransmissionFactor: TVector3 read GetTransmissionFactor write SetTransmissionFactor;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 528).

Public property FdTransmissionTextureId: TSFInt32 read FFdTransmissionTextureId;

Internal wrapper for property TransmissionTextureId. This wrapper API may change, we advise to access simpler TransmissionTextureId 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_commonsurfaceshader.inc (line 532).

Public property TransmissionTextureId: Integer read GetTransmissionTextureId write SetTransmissionTextureId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 534).

Public property FdTransmissionTextureCoordinatesId: TSFInt32 read FFdTransmissionTextureCoordinatesId;

Internal wrapper for property TransmissionTextureCoordinatesId. This wrapper API may change, we advise to access simpler TransmissionTextureCoordinatesId 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_commonsurfaceshader.inc (line 538).

Public property TransmissionTextureCoordinatesId: Integer read GetTransmissionTextureCoordinatesId write SetTransmissionTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 540).

Public property FdTransmissionTextureChannelMask: TSFString read FFdTransmissionTextureChannelMask;

Internal wrapper for property TransmissionTextureChannelMask. This wrapper API may change, we advise to access simpler TransmissionTextureChannelMask 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_commonsurfaceshader.inc (line 544).

Public property TransmissionTextureChannelMask: String read GetTransmissionTextureChannelMask write SetTransmissionTextureChannelMask;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 546).

Public property FdTransmissionTexture: TSFNode read FFdTransmissionTexture;

Internal wrapper for property TransmissionTexture. This wrapper API may change, we advise to access simpler TransmissionTexture 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_commonsurfaceshader.inc (line 550).

Public property TransmissionTexture: TAbstractTextureNode read GetTransmissionTexture write SetTransmissionTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 552).

Public property FdTangentTextureCoordinatesId: TSFInt32 read FFdTangentTextureCoordinatesId;

Internal wrapper for property TangentTextureCoordinatesId. This wrapper API may change, we advise to access simpler TangentTextureCoordinatesId 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_commonsurfaceshader.inc (line 556).

Public property TangentTextureCoordinatesId: Integer read GetTangentTextureCoordinatesId write SetTangentTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 558).

Public property FdBinormalTextureCoordinatesId: TSFInt32 read FFdBinormalTextureCoordinatesId;

Internal wrapper for property BinormalTextureCoordinatesId. This wrapper API may change, we advise to access simpler BinormalTextureCoordinatesId 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_commonsurfaceshader.inc (line 562).

Public property BinormalTextureCoordinatesId: Integer read GetBinormalTextureCoordinatesId write SetBinormalTextureCoordinatesId;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 564).

Public property FdInvertAlphaTexture: TSFBool read FFdInvertAlphaTexture;

Internal wrapper for property InvertAlphaTexture. This wrapper API may change, we advise to access simpler InvertAlphaTexture 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_commonsurfaceshader.inc (line 568).

Public property InvertAlphaTexture: Boolean read GetInvertAlphaTexture write SetInvertAlphaTexture;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 570).

Public property FdRelativeIndexOfRefraction: TSFFloat read FFdRelativeIndexOfRefraction;

Internal wrapper for property RelativeIndexOfRefraction. This wrapper API may change, we advise to access simpler RelativeIndexOfRefraction 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_commonsurfaceshader.inc (line 574).

Public property RelativeIndexOfRefraction: Single read GetRelativeIndexOfRefraction write SetRelativeIndexOfRefraction;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 576).

Public property FdFresnelBlend: TSFFloat read FFdFresnelBlend;

Internal wrapper for property FresnelBlend. This wrapper API may change, we advise to access simpler FresnelBlend 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_commonsurfaceshader.inc (line 580).

Public property FresnelBlend: Single read GetFresnelBlend write SetFresnelBlend;

This item has no description.

Source: scene/x3d/auto_generated_node_helpers/x3dnodes_commonsurfaceshader.inc (line 582).

Public property FdTextureTransformEnabled: TMFBool read FFdTextureTransformEnabled;

Internal wrapper for property TextureTransformEnabled. This wrapper API may change, we advise to access simpler TextureTransformEnabled 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_commonsurfaceshader.inc (line 586).


Generated by PasDoc 0.17.0.snapshot.