|
@@ -0,0 +1,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.
|