assimp/port/AssimpDelphi/aiMaterial.pas

154 lines
4.3 KiB
Plaintext
Raw Normal View History

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.