Class TMaterialNode_1

Unit

Declaration

type TMaterialNode_1 = class(TAbstractChildNode)

Description

This item has no description. Showing description inherited from TAbstractChildNode.

Abstract node type that indicates that the node may be used as a child of a grouping node, e.g. inside TAbstractGroupingNode.FdChildren.

Hierarchy

Overview

Methods

Public destructor Destroy; override;
Public function PureEmissive: boolean;
Public procedure ForcePureEmissive; deprecated 'use X3D with TUnlitMaterialNode';
Public function MaterialInfo(const AIndex: Integer = 0): TPhongMaterialInfo;
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public class function ForVRMLVersion(const Version: TX3DVersion): Boolean; override;
Public procedure SetAmbientColor(const Value: array of TCastleColorRGB); overload;
Public procedure SetAmbientColor(const Value: TVector3List); overload;
Public procedure SetDiffuseColor(const Value: array of TCastleColorRGB); overload;
Public procedure SetDiffuseColor(const Value: TVector3List); overload;
Public procedure SetSpecularColor(const Value: array of TCastleColorRGB); overload;
Public procedure SetSpecularColor(const Value: TVector3List); overload;
Public procedure SetEmissiveColor(const Value: array of TCastleColorRGB); overload;
Public procedure SetEmissiveColor(const Value: TVector3List); overload;
Public procedure SetShininess(const Value: array of Single); overload;
Public procedure SetShininess(const Value: TSingleList); overload;
Public procedure SetTransparency(const Value: array of Single); overload;
Public procedure SetTransparency(const Value: TSingleList); overload;
Public procedure SetMirror(const Value: array of Single); overload;
Public procedure SetMirror(const Value: TSingleList); overload;
Public procedure SetReflSpecular(const Value: array of TCastleColorRGB); overload;
Public procedure SetReflSpecular(const Value: TVector3List); overload;
Public procedure SetReflDiffuse(const Value: array of TCastleColorRGB); overload;
Public procedure SetReflDiffuse(const Value: TVector3List); overload;
Public procedure SetTransSpecular(const Value: array of TCastleColorRGB); overload;
Public procedure SetTransSpecular(const Value: TVector3List); overload;
Public procedure SetTransDiffuse(const Value: array of TCastleColorRGB); overload;
Public procedure SetTransDiffuse(const Value: TVector3List); overload;
Public procedure SetReflSpecularExp(const Value: array of Single); overload;
Public procedure SetReflSpecularExp(const Value: TSingleList); overload;
Public procedure SetTransSpecularExp(const Value: array of Single); overload;
Public procedure SetTransSpecularExp(const Value: TSingleList); overload;

Properties

Public property FdAmbientColor: TMFColor read FFdAmbientColor;
Public property FdDiffuseColor: TMFColor read FFdDiffuseColor;
Public property FdSpecularColor: TMFColor read FFdSpecularColor;
Public property FdEmissiveColor: TMFColor read FFdEmissiveColor;
Public property FdShininess: TMFFloat read FFdShininess;
Public property FdTransparency: TMFFloat read FFdTransparency;
Public property FdMirror: TMFFloat read FFdMirror;
Public property FdReflSpecular: TMFColor read FFdReflSpecular;
Public property FdReflDiffuse: TMFColor read FFdReflDiffuse;
Public property FdTransSpecular: TMFColor read FFdTransSpecular;
Public property FdTransDiffuse: TMFColor read FFdTransDiffuse;
Public property FdReflSpecularExp: TMFFloat read FFdReflSpecularExp;
Public property FdTransSpecularExp: TMFFloat read FFdTransSpecularExp;
Public property FdFogImmune: TSFBool read FFdFogImmune;
Public property FogImmune: Boolean read GetFogImmune write SetFogImmune;

Description

Methods

Public destructor Destroy; override;

This item has no description.

Public function PureEmissive: boolean;

Only the emissive color is not black (zero). This detects a special case described in VRML 1.0 specification: when ambient, diffuse and specular are all empty (no values), then emissiveColor should be used at the final color and shape should be unlit.

You should use the EmissiveColor4Single in this case.

Public procedure ForcePureEmissive; deprecated 'use X3D with TUnlitMaterialNode';

Warning: this symbol is deprecated: use X3D with TUnlitMaterialNode

Force the material pure emissive (see PureEmissive) by setting other colors to black.

Public function MaterialInfo(const AIndex: Integer = 0): TPhongMaterialInfo;

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.

Public procedure CreateNode; override;

Create node fields and events.

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.

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

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

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.

Public procedure SetAmbientColor(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetDiffuseColor(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetSpecularColor(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetEmissiveColor(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetShininess(const Value: array of Single); overload;

This item has no description.

Public procedure SetShininess(const Value: TSingleList); overload;

This item has no description.

Public procedure SetTransparency(const Value: array of Single); overload;

This item has no description.

Public procedure SetTransparency(const Value: TSingleList); overload;

This item has no description.

Public procedure SetMirror(const Value: array of Single); overload;

This item has no description.

Public procedure SetMirror(const Value: TSingleList); overload;

This item has no description.

Public procedure SetReflSpecular(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetReflDiffuse(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetTransSpecular(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetTransDiffuse(const Value: array of TCastleColorRGB); overload;

This item has no description.

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

This item has no description.

Public procedure SetReflSpecularExp(const Value: array of Single); overload;

This item has no description.

Public procedure SetReflSpecularExp(const Value: TSingleList); overload;

This item has no description.

Public procedure SetTransSpecularExp(const Value: array of Single); overload;

This item has no description.

Public procedure SetTransSpecularExp(const Value: TSingleList); overload;

This item has no description.

Properties

Public property FdAmbientColor: TMFColor read FFdAmbientColor;

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

Public property FdDiffuseColor: TMFColor read FFdDiffuseColor;

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

Public property FdSpecularColor: TMFColor read FFdSpecularColor;

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

Public property FdEmissiveColor: TMFColor read FFdEmissiveColor;

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

Public property FdShininess: TMFFloat read FFdShininess;

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

Public property FdTransparency: TMFFloat read FFdTransparency;

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

Public property FdMirror: TMFFloat read FFdMirror;

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

Public property FdReflSpecular: TMFColor read FFdReflSpecular;

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

Public property FdReflDiffuse: TMFColor read FFdReflDiffuse;

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

Public property FdTransSpecular: TMFColor read FFdTransSpecular;

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

Public property FdTransDiffuse: TMFColor read FFdTransDiffuse;

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

Public property FdReflSpecularExp: TMFFloat read FFdReflSpecularExp;

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

Public property FdTransSpecularExp: TMFFloat read FFdTransSpecularExp;

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

Public property FdFogImmune: TSFBool read FFdFogImmune;

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

Public property FogImmune: Boolean read GetFogImmune write SetFogImmune;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.