aiMaterial.pas 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. unit aiMaterial;
  2. interface
  3. uses aiTypes, aiVector2D, aiVector3D;
  4. {This following directive causes enums to be stored as double words (32bit), to be compatible with
  5. the assimp C Dll}
  6. {$Z4}
  7. type TaiTextureOp = (
  8. aiTextureOp_Multiply = $0,
  9. aiTextureOp_Add = $1,
  10. aiTextureOp_Subtract = $2,
  11. aiTextureOp_Divide = $3,
  12. aiTextureOp_SmoothAdd = $4,
  13. aiTextureOp_SignedAdd = $5
  14. //_aiTextureOp_Force32Bit = 0x9fffffff
  15. );
  16. type TaiTextureMapMode = (
  17. aiTextureMapMode_Wrap = $0,
  18. aiTextureMapMode_Clamp = $1,
  19. aiTextureMapMode_Decal = $3,
  20. aiTextureMapMode_Mirror = $2
  21. //_aiTextureMapMode_Force32Bit = 0x9fffffff
  22. );
  23. type TaiTextureMapping = (
  24. aiTextureMapping_UV = $0,
  25. aiTextureMapping_SPHERE = $1,
  26. aiTextureMapping_CYLINDER = $2,
  27. aiTextureMapping_BOX = $3,
  28. aiTextureMapping_PLANE = $4,
  29. aiTextureMapping_OTHER = $5
  30. //_aiTextureMapping_Force32Bit = 0x9fffffff
  31. );
  32. type TaiTextureType = (
  33. aiTextureType_NONE = $0,
  34. aiTextureType_DIFFUSE = $1,
  35. aiTextureType_SPECULAR = $2,
  36. aiTextureType_AMBIENT = $3,
  37. aiTextureType_EMISSIVE = $4,
  38. aiTextureType_HEIGHT = $5,
  39. aiTextureType_NORMALS = $6,
  40. aiTextureType_SHININESS = $7,
  41. aiTextureType_OPACITY = $8,
  42. aiTextureType_DISPLACEMENT = $9,
  43. aiTextureType_LIGHTMAP = $A,
  44. aiTextureType_REFLECTION = $B,
  45. aiTextureType_UNKNOWN = $C
  46. //_aiTextureType_Force32Bit = 0x9fffffff
  47. );
  48. const AI_TEXTURE_TYPE_MAX = aiTextureType_UNKNOWN;
  49. type TaiShadingMode = (
  50. aiShadingMode_Flat = $1,
  51. aiShadingMode_Gouraud = $2,
  52. aiShadingMode_Phong = $3,
  53. aiShadingMode_Blinn = $4,
  54. aiShadingMode_Toon = $5,
  55. aiShadingMode_OrenNayar = $6,
  56. aiShadingMode_Minnaert = $7,
  57. aiShadingMode_CookTorrance = $8,
  58. aiShadingMode_NoShading = $9,
  59. aiShadingMode_Fresnel = $A
  60. //_aiShadingMode_Force32Bit = 0x9fffffff
  61. );
  62. type TaiTextureFlags = (
  63. aiTextureFlags_Invert = $1,
  64. aiTextureFlags_UseAlpha = $2,
  65. aiTextureFlags_IgnoreAlpha = $4
  66. //_aiTextureFlags_Force32Bit = 0x9fffffff
  67. );
  68. type TaiBlendMode = (
  69. aiBlendMode_Default = $0,
  70. aiBlendMode_Additive = $1
  71. //_aiBlendMode_Force32Bit = 0x9fffffff
  72. );
  73. type TaiUVTransform = packed record
  74. mTranslation: TaiVector2D;
  75. mScaling: TaiVector2D;
  76. mRotation: single;
  77. end;
  78. type TaiPropertyTypeInfo = (
  79. aiPTI_Float = $1,
  80. aiPTI_String = $3,
  81. aiPTI_Integer = $4,
  82. aiPTI_Buffer = $5
  83. // _aiPTI_Force32Bit = 0x9fffffff
  84. );
  85. type TaiMaterialProperty = packed record
  86. mKey: aiString;
  87. mSemantic: Cardinal;
  88. mIndex: Cardinal;
  89. mDataLength: Cardinal;
  90. mType: TaiPropertyTypeInfo;
  91. mData: PChar;
  92. end;
  93. type PaiMaterialProperty = ^TaiMaterialProperty;
  94. type TaiMaterial = packed record
  95. mProperties: pointer;
  96. mNumProperties: Cardinal;
  97. mNumAllocated: Cardinal;
  98. end;
  99. type PaiMaterial = ^TaiMaterial;
  100. type PaiMaterialArray = array[0..0] of PaiMaterial;
  101. type PPaiMaterialArray = ^PaiMaterialArray;
  102. const AI_MATKEY_NAME = '?mat.name';
  103. const AI_MATKEY_TWOSIDED = '$mat.twosided';
  104. const AI_MATKEY_SHADING_MODEL = '$mat.shadingm';
  105. const AI_MATKEY_ENABLE_WIREFRAME = '$mat.wireframe';
  106. const AI_MATKEY_BLEND_FUNC = '$mat.blend';
  107. const AI_MATKEY_OPACITY = '$mat.opacity';
  108. const AI_MATKEY_BUMPSCALING = '$mat.bumpscaling';
  109. const AI_MATKEY_SHININESS = '$mat.shininess';
  110. const AI_MATKEY_REFLECTIVITY = '$mat.reflectivity';
  111. const AI_MATKEY_SHININESS_STRENGTH = '$mat.shinpercent';
  112. const AI_MATKEY_REFRACTI = '$mat.refracti';
  113. const AI_MATKEY_COLOR_DIFFUSE = '$clr.diffuse';
  114. const AI_MATKEY_COLOR_AMBIENT = '$clr.ambient';
  115. const AI_MATKEY_COLOR_SPECULAR = '$clr.specular';
  116. const AI_MATKEY_COLOR_EMISSIVE = '$clr.emissive';
  117. const AI_MATKEY_COLOR_TRANSPARENT = '$clr.transparent';
  118. const AI_MATKEY_COLOR_REFLECTIVE = '$clr.reflective';
  119. const AI_MATKEY_GLOBAL_BACKGROUND_IMAGE = '?bg.global';
  120. const _AI_MATKEY_TEXTURE_BASE = '$tex.file';
  121. const _AI_MATKEY_UVWSRC_BASE = '$tex.uvwsrc';
  122. const _AI_MATKEY_TEXOP_BASE = '$tex.op';
  123. const _AI_MATKEY_MAPPING_BASE = '$tex.mapping';
  124. const _AI_MATKEY_TEXBLEND_BASE = '$tex.blend';
  125. const _AI_MATKEY_MAPPINGMODE_U_BASE = '$tex.mapmodeu';
  126. const _AI_MATKEY_MAPPINGMODE_V_BASE = '$tex.mapmodev';
  127. const _AI_MATKEY_TEXMAP_AXIS_BASE = '$tex.mapaxis';
  128. const _AI_MATKEY_UVTRANSFORM_BASE = '$tex.uvtrafo';
  129. const _AI_MATKEY_TEXFLAGS_BASE = '$tex.flags';
  130. implementation
  131. end.