summaryrefslogtreecommitdiff
path: root/src/mesh/assimp-master/port/AssimpDelphi/aiMaterial.pas
blob: ffd8109915855c959dd9a29fcd7182ec36a2cfbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
unit aiMaterial;

interface

uses aiTypes, aiVector2D, aiVector3D;

{This following directive causes enums to be stored as double words (32bit), to be compatible with
 the assimp C Dll}
{$Z4}

type TaiTextureOp = (
	aiTextureOp_Multiply = $0,
	aiTextureOp_Add = $1,
	aiTextureOp_Subtract = $2,
	aiTextureOp_Divide = $3,
	aiTextureOp_SmoothAdd = $4,
	aiTextureOp_SignedAdd = $5
	//_aiTextureOp_Force32Bit = 0x9fffffff
);

type TaiTextureMapMode = (
    aiTextureMapMode_Wrap = $0,
    aiTextureMapMode_Clamp = $1,
    aiTextureMapMode_Decal = $3,
    aiTextureMapMode_Mirror = $2
	 //_aiTextureMapMode_Force32Bit = 0x9fffffff
);

type TaiTextureMapping = (
    aiTextureMapping_UV = $0,
    aiTextureMapping_SPHERE = $1,
    aiTextureMapping_CYLINDER = $2,
    aiTextureMapping_BOX = $3,
    aiTextureMapping_PLANE = $4,
    aiTextureMapping_OTHER = $5
	 //_aiTextureMapping_Force32Bit = 0x9fffffff
);

type TaiTextureType = (
    aiTextureType_NONE = $0,
    aiTextureType_DIFFUSE = $1,
    aiTextureType_SPECULAR = $2,
    aiTextureType_AMBIENT = $3,
    aiTextureType_EMISSIVE = $4,
    aiTextureType_HEIGHT = $5,
    aiTextureType_NORMALS = $6,
    aiTextureType_SHININESS = $7,
    aiTextureType_OPACITY = $8,
    aiTextureType_DISPLACEMENT = $9,
    aiTextureType_LIGHTMAP = $A,
    aiTextureType_REFLECTION = $B,
    aiTextureType_UNKNOWN = $C
	 //_aiTextureType_Force32Bit = 0x9fffffff
);

const AI_TEXTURE_TYPE_MAX = aiTextureType_UNKNOWN;

type TaiShadingMode = (
    aiShadingMode_Flat = $1,
    aiShadingMode_Gouraud =  $2,
    aiShadingMode_Phong = $3,
    aiShadingMode_Blinn	= $4,
    aiShadingMode_Toon = $5,
    aiShadingMode_OrenNayar = $6,
    aiShadingMode_Minnaert = $7,
    aiShadingMode_CookTorrance = $8,
    aiShadingMode_NoShading = $9,
    aiShadingMode_Fresnel = $A
	 //_aiShadingMode_Force32Bit = 0x9fffffff
);


type TaiTextureFlags = (
	aiTextureFlags_Invert = $1,
	aiTextureFlags_UseAlpha = $2,
	aiTextureFlags_IgnoreAlpha = $4
	//_aiTextureFlags_Force32Bit = 0x9fffffff
);

type TaiBlendMode = (
	aiBlendMode_Default = $0,
	aiBlendMode_Additive = $1
	//_aiBlendMode_Force32Bit = 0x9fffffff
);

type TaiUVTransform = packed record
   mTranslation: TaiVector2D;
   mScaling: TaiVector2D;
   mRotation: single;
end;

type TaiPropertyTypeInfo = (
   aiPTI_Float   = $1,
   aiPTI_String  = $3,
   aiPTI_Integer = $4,
   aiPTI_Buffer  = $5
	// _aiPTI_Force32Bit = 0x9fffffff
);

type TaiMaterialProperty = packed record
   mKey: aiString;
   mSemantic: Cardinal;
   mIndex: Cardinal;
   mDataLength: Cardinal;
   mType: TaiPropertyTypeInfo;
   mData: PChar;
end;
type PaiMaterialProperty = ^TaiMaterialProperty;

type TaiMaterial = packed record
   mProperties: pointer;
   mNumProperties: Cardinal;
   mNumAllocated: Cardinal;
end;
type PaiMaterial = ^TaiMaterial;
type PaiMaterialArray = array[0..0] of PaiMaterial;
type PPaiMaterialArray = ^PaiMaterialArray;

const AI_MATKEY_NAME = '?mat.name';
const AI_MATKEY_TWOSIDED = '$mat.twosided';
const AI_MATKEY_SHADING_MODEL = '$mat.shadingm';
const AI_MATKEY_ENABLE_WIREFRAME = '$mat.wireframe';
const AI_MATKEY_BLEND_FUNC = '$mat.blend';
const AI_MATKEY_OPACITY = '$mat.opacity';
const AI_MATKEY_BUMPSCALING = '$mat.bumpscaling';
const AI_MATKEY_SHININESS = '$mat.shininess';
const AI_MATKEY_REFLECTIVITY = '$mat.reflectivity';
const AI_MATKEY_SHININESS_STRENGTH = '$mat.shinpercent';
const AI_MATKEY_REFRACTI = '$mat.refracti';
const AI_MATKEY_COLOR_DIFFUSE = '$clr.diffuse';
const AI_MATKEY_COLOR_AMBIENT = '$clr.ambient';
const AI_MATKEY_COLOR_SPECULAR = '$clr.specular';
const AI_MATKEY_COLOR_EMISSIVE = '$clr.emissive';
const AI_MATKEY_COLOR_TRANSPARENT = '$clr.transparent';
const AI_MATKEY_COLOR_REFLECTIVE = '$clr.reflective';
const AI_MATKEY_GLOBAL_BACKGROUND_IMAGE = '?bg.global';

const _AI_MATKEY_TEXTURE_BASE = '$tex.file';
const _AI_MATKEY_UVWSRC_BASE = '$tex.uvwsrc';
const _AI_MATKEY_TEXOP_BASE = '$tex.op';
const _AI_MATKEY_MAPPING_BASE = '$tex.mapping';
const _AI_MATKEY_TEXBLEND_BASE = '$tex.blend';
const _AI_MATKEY_MAPPINGMODE_U_BASE = '$tex.mapmodeu';
const _AI_MATKEY_MAPPINGMODE_V_BASE = '$tex.mapmodev';
const _AI_MATKEY_TEXMAP_AXIS_BASE = '$tex.mapaxis';
const _AI_MATKEY_UVTRANSFORM_BASE = '$tex.uvtrafo';
const _AI_MATKEY_TEXFLAGS_BASE = '$tex.flags';



implementation

end.