Castle Game Engine: X3DNodes: Class TX3DMaterialInfoAbstract

# Class TX3DMaterialInfoAbstract
Description | Hierarchy | Fields | Methods | Properties
## Unit X3DNodes ## Declaration `type TX3DMaterialInfoAbstract = class(TObject)` ## Description Material information, usable for all VRML/X3D versions. VRML 1.0 and VRML/X3D >= 2.0 materials work a little differently: VRML 1.0 has arrays of values, e.g. an array of diffuse color, while VRML/X3D >= 2.0 is really a single material, e.g. one diffuse color. This class is designed to hide these differences as much as possible: it provides a simple common interface for getting material properties. Note that it doesn't try to abstract all material properties — there are some features that are simply fundamentally different in how VRML 1.0 and >= 2.0 materials should be treated, and they cannot be abstracted under a common interface here. ## Hierarchy TObject TX3DMaterialInfoAbstract ## Overview ### Methods
| `procedure CalculateReflSpecular(var V: TVector3Single);`
| `procedure CalculateReflDiffuse(var V: TVector3Single);`
| `procedure CalculateTransSpecular(var V: TVector3Single);`
| `procedure CalculateTransDiffuse(var V: TVector3Single);`
| `function DiffuseColor: TVector3Single; virtual; abstract;`
| `function Mirror: Single; virtual; abstract;`
| `function Transparency: Single; virtual; abstract;`
| `function ReflSpecular: TVector3Single; virtual; abstract;`
| `function ReflDiffuse: TVector3Single; virtual; abstract;`
| `function TransSpecular: TVector3Single; virtual; abstract;`
| `function TransDiffuse: TVector3Single; virtual; abstract;`
| `function ReflSpecularExp: Single; virtual; abstract;`
| `function TransSpecularExp: Single; virtual; abstract;`
## Description ### Methods
| `procedure CalculateReflSpecular(var V: TVector3Single);`
Calculate physical material properties using standard VRML material fields. See [http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_material_phong_brdf_fields]. These should be used by descendants implementation, for example `CalculateReflSpecular` should be used by descendant ReflSpecular when material node doesn't specify any value in FdReflSpecular field.
| `procedure CalculateReflDiffuse(var V: TVector3Single);`
| `procedure CalculateTransSpecular(var V: TVector3Single);`
| `procedure CalculateTransDiffuse(var V: TVector3Single);`
| `function DiffuseColor: TVector3Single; virtual; abstract;`
| `function Mirror: Single; virtual; abstract;`
| `function Transparency: Single; virtual; abstract;`
| `function ReflSpecular: TVector3Single; virtual; abstract;`
| `function ReflDiffuse: TVector3Single; virtual; abstract;`
| `function TransSpecular: TVector3Single; virtual; abstract;`
| `function TransDiffuse: TVector3Single; virtual; abstract;`
| `function ReflSpecularExp: Single; virtual; abstract;`
| `function TransSpecularExp: Single; virtual; abstract;`
Generated by PasDoc 0.13.0 on 2015-06-15 04:43:14