47 #ifndef AI_MATERIAL_H_INC 48 #define AI_MATERIAL_H_INC 57 #define AI_DEFAULT_MATERIAL_NAME "DefaultMaterial" 100 _aiTextureOp_Force32Bit = INT_MAX
131 _aiTextureMapMode_Force32Bit = INT_MAX
171 _aiTextureMapping_Force32Bit = INT_MAX
286 _aiTextureType_Force32Bit = INT_MAX
290 #define AI_TEXTURE_TYPE_MAX aiTextureType_UNKNOWN 359 _aiShadingMode_Force32Bit = INT_MAX
400 _aiTextureFlags_Force32Bit = INT_MAX
444 _aiBlendMode_Force32Bit = INT_MAX
449 #include "./Compiler/pushpack1.h" 486 : mTranslation (0.0,0.0)
496 #include "./Compiler/poppack1.h" 503 enum aiPropertyTypeInfo
546 _aiPTI_Force32Bit = INT_MAX
570 struct aiMaterialProperty
581 unsigned int mSemantic;
591 unsigned int mDataLength;
600 C_ENUM aiPropertyTypeInfo mType;
613 , mType( aiPTI_Float )
618 ~aiMaterialProperty() {
665 template <
typename Type>
666 aiReturn Get(
const char* pKey,
unsigned int type,
667 unsigned int idx, Type* pOut,
unsigned int* pMax)
const;
669 aiReturn Get(
const char* pKey,
unsigned int type,
670 unsigned int idx,
int* pOut,
unsigned int* pMax)
const;
672 aiReturn Get(
const char* pKey,
unsigned int type,
673 unsigned int idx, ai_real* pOut,
unsigned int* pMax)
const;
685 template <
typename Type>
686 aiReturn Get(
const char* pKey,
unsigned int type,
687 unsigned int idx,Type& pOut)
const;
690 aiReturn Get(
const char* pKey,
unsigned int type,
691 unsigned int idx,
int& pOut)
const;
693 aiReturn Get(
const char* pKey,
unsigned int type,
694 unsigned int idx, ai_real& pOut)
const;
696 aiReturn Get(
const char* pKey,
unsigned int type,
697 unsigned int idx,
aiString& pOut)
const;
699 aiReturn Get(
const char* pKey,
unsigned int type,
700 unsigned int idx,
aiColor3D& pOut)
const;
702 aiReturn Get(
const char* pKey,
unsigned int type,
703 unsigned int idx,
aiColor4D& pOut)
const;
705 aiReturn Get(
const char* pKey,
unsigned int type,
750 unsigned int* uvindex = NULL,
751 ai_real* blend = NULL,
769 aiReturn AddBinaryProperty (
const void* pInput,
770 unsigned int pSizeInBytes,
774 aiPropertyTypeInfo pType);
786 unsigned int type = 0,
787 unsigned int index = 0);
797 aiReturn AddProperty (
const TYPE* pInput,
798 unsigned int pNumValues,
800 unsigned int type = 0,
801 unsigned int index = 0);
804 unsigned int pNumValues,
806 unsigned int type = 0,
807 unsigned int index = 0);
810 unsigned int pNumValues,
812 unsigned int type = 0,
813 unsigned int index = 0);
816 unsigned int pNumValues,
818 unsigned int type = 0,
819 unsigned int index = 0);
821 aiReturn AddProperty (
const int* pInput,
822 unsigned int pNumValues,
824 unsigned int type = 0,
825 unsigned int index = 0);
827 aiReturn AddProperty (
const float* pInput,
828 unsigned int pNumValues,
830 unsigned int type = 0,
831 unsigned int index = 0);
833 aiReturn AddProperty (
const double* pInput,
834 unsigned int pNumValues,
836 unsigned int type = 0,
837 unsigned int index = 0);
840 unsigned int pNumValues,
842 unsigned int type = 0,
843 unsigned int index = 0);
852 aiReturn RemoveProperty (
const char* pKey,
853 unsigned int type = 0,
854 unsigned int index = 0);
867 static void CopyPropertyList(
aiMaterial* pcDest,
874 C_STRUCT aiMaterialProperty** mProperties;
889 #define AI_MATKEY_NAME "?mat.name",0,0 890 #define AI_MATKEY_TWOSIDED "$mat.twosided",0,0 891 #define AI_MATKEY_SHADING_MODEL "$mat.shadingm",0,0 892 #define AI_MATKEY_ENABLE_WIREFRAME "$mat.wireframe",0,0 893 #define AI_MATKEY_BLEND_FUNC "$mat.blend",0,0 894 #define AI_MATKEY_OPACITY "$mat.opacity",0,0 895 #define AI_MATKEY_BUMPSCALING "$mat.bumpscaling",0,0 896 #define AI_MATKEY_SHININESS "$mat.shininess",0,0 897 #define AI_MATKEY_REFLECTIVITY "$mat.reflectivity",0,0 898 #define AI_MATKEY_SHININESS_STRENGTH "$mat.shinpercent",0,0 899 #define AI_MATKEY_REFRACTI "$mat.refracti",0,0 900 #define AI_MATKEY_COLOR_DIFFUSE "$clr.diffuse",0,0 901 #define AI_MATKEY_COLOR_AMBIENT "$clr.ambient",0,0 902 #define AI_MATKEY_COLOR_SPECULAR "$clr.specular",0,0 903 #define AI_MATKEY_COLOR_EMISSIVE "$clr.emissive",0,0 904 #define AI_MATKEY_COLOR_TRANSPARENT "$clr.transparent",0,0 905 #define AI_MATKEY_COLOR_REFLECTIVE "$clr.reflective",0,0 906 #define AI_MATKEY_GLOBAL_BACKGROUND_IMAGE "?bg.global",0,0 911 #define _AI_MATKEY_TEXTURE_BASE "$tex.file" 912 #define _AI_MATKEY_UVWSRC_BASE "$tex.uvwsrc" 913 #define _AI_MATKEY_TEXOP_BASE "$tex.op" 914 #define _AI_MATKEY_MAPPING_BASE "$tex.mapping" 915 #define _AI_MATKEY_TEXBLEND_BASE "$tex.blend" 916 #define _AI_MATKEY_MAPPINGMODE_U_BASE "$tex.mapmodeu" 917 #define _AI_MATKEY_MAPPINGMODE_V_BASE "$tex.mapmodev" 918 #define _AI_MATKEY_TEXMAP_AXIS_BASE "$tex.mapaxis" 919 #define _AI_MATKEY_UVTRANSFORM_BASE "$tex.uvtrafo" 920 #define _AI_MATKEY_TEXFLAGS_BASE "$tex.flags" 924 #define AI_MATKEY_TEXTURE(type, N) _AI_MATKEY_TEXTURE_BASE,type,N 928 #define AI_MATKEY_TEXTURE_DIFFUSE(N) \ 929 AI_MATKEY_TEXTURE(aiTextureType_DIFFUSE,N) 931 #define AI_MATKEY_TEXTURE_SPECULAR(N) \ 932 AI_MATKEY_TEXTURE(aiTextureType_SPECULAR,N) 934 #define AI_MATKEY_TEXTURE_AMBIENT(N) \ 935 AI_MATKEY_TEXTURE(aiTextureType_AMBIENT,N) 937 #define AI_MATKEY_TEXTURE_EMISSIVE(N) \ 938 AI_MATKEY_TEXTURE(aiTextureType_EMISSIVE,N) 940 #define AI_MATKEY_TEXTURE_NORMALS(N) \ 941 AI_MATKEY_TEXTURE(aiTextureType_NORMALS,N) 943 #define AI_MATKEY_TEXTURE_HEIGHT(N) \ 944 AI_MATKEY_TEXTURE(aiTextureType_HEIGHT,N) 946 #define AI_MATKEY_TEXTURE_SHININESS(N) \ 947 AI_MATKEY_TEXTURE(aiTextureType_SHININESS,N) 949 #define AI_MATKEY_TEXTURE_OPACITY(N) \ 950 AI_MATKEY_TEXTURE(aiTextureType_OPACITY,N) 952 #define AI_MATKEY_TEXTURE_DISPLACEMENT(N) \ 953 AI_MATKEY_TEXTURE(aiTextureType_DISPLACEMENT,N) 955 #define AI_MATKEY_TEXTURE_LIGHTMAP(N) \ 956 AI_MATKEY_TEXTURE(aiTextureType_LIGHTMAP,N) 958 #define AI_MATKEY_TEXTURE_REFLECTION(N) \ 959 AI_MATKEY_TEXTURE(aiTextureType_REFLECTION,N) 964 #define AI_MATKEY_UVWSRC(type, N) _AI_MATKEY_UVWSRC_BASE,type,N 968 #define AI_MATKEY_UVWSRC_DIFFUSE(N) \ 969 AI_MATKEY_UVWSRC(aiTextureType_DIFFUSE,N) 971 #define AI_MATKEY_UVWSRC_SPECULAR(N) \ 972 AI_MATKEY_UVWSRC(aiTextureType_SPECULAR,N) 974 #define AI_MATKEY_UVWSRC_AMBIENT(N) \ 975 AI_MATKEY_UVWSRC(aiTextureType_AMBIENT,N) 977 #define AI_MATKEY_UVWSRC_EMISSIVE(N) \ 978 AI_MATKEY_UVWSRC(aiTextureType_EMISSIVE,N) 980 #define AI_MATKEY_UVWSRC_NORMALS(N) \ 981 AI_MATKEY_UVWSRC(aiTextureType_NORMALS,N) 983 #define AI_MATKEY_UVWSRC_HEIGHT(N) \ 984 AI_MATKEY_UVWSRC(aiTextureType_HEIGHT,N) 986 #define AI_MATKEY_UVWSRC_SHININESS(N) \ 987 AI_MATKEY_UVWSRC(aiTextureType_SHININESS,N) 989 #define AI_MATKEY_UVWSRC_OPACITY(N) \ 990 AI_MATKEY_UVWSRC(aiTextureType_OPACITY,N) 992 #define AI_MATKEY_UVWSRC_DISPLACEMENT(N) \ 993 AI_MATKEY_UVWSRC(aiTextureType_DISPLACEMENT,N) 995 #define AI_MATKEY_UVWSRC_LIGHTMAP(N) \ 996 AI_MATKEY_UVWSRC(aiTextureType_LIGHTMAP,N) 998 #define AI_MATKEY_UVWSRC_REFLECTION(N) \ 999 AI_MATKEY_UVWSRC(aiTextureType_REFLECTION,N) 1003 #define AI_MATKEY_TEXOP(type, N) _AI_MATKEY_TEXOP_BASE,type,N 1007 #define AI_MATKEY_TEXOP_DIFFUSE(N) \ 1008 AI_MATKEY_TEXOP(aiTextureType_DIFFUSE,N) 1010 #define AI_MATKEY_TEXOP_SPECULAR(N) \ 1011 AI_MATKEY_TEXOP(aiTextureType_SPECULAR,N) 1013 #define AI_MATKEY_TEXOP_AMBIENT(N) \ 1014 AI_MATKEY_TEXOP(aiTextureType_AMBIENT,N) 1016 #define AI_MATKEY_TEXOP_EMISSIVE(N) \ 1017 AI_MATKEY_TEXOP(aiTextureType_EMISSIVE,N) 1019 #define AI_MATKEY_TEXOP_NORMALS(N) \ 1020 AI_MATKEY_TEXOP(aiTextureType_NORMALS,N) 1022 #define AI_MATKEY_TEXOP_HEIGHT(N) \ 1023 AI_MATKEY_TEXOP(aiTextureType_HEIGHT,N) 1025 #define AI_MATKEY_TEXOP_SHININESS(N) \ 1026 AI_MATKEY_TEXOP(aiTextureType_SHININESS,N) 1028 #define AI_MATKEY_TEXOP_OPACITY(N) \ 1029 AI_MATKEY_TEXOP(aiTextureType_OPACITY,N) 1031 #define AI_MATKEY_TEXOP_DISPLACEMENT(N) \ 1032 AI_MATKEY_TEXOP(aiTextureType_DISPLACEMENT,N) 1034 #define AI_MATKEY_TEXOP_LIGHTMAP(N) \ 1035 AI_MATKEY_TEXOP(aiTextureType_LIGHTMAP,N) 1037 #define AI_MATKEY_TEXOP_REFLECTION(N) \ 1038 AI_MATKEY_TEXOP(aiTextureType_REFLECTION,N) 1042 #define AI_MATKEY_MAPPING(type, N) _AI_MATKEY_MAPPING_BASE,type,N 1046 #define AI_MATKEY_MAPPING_DIFFUSE(N) \ 1047 AI_MATKEY_MAPPING(aiTextureType_DIFFUSE,N) 1049 #define AI_MATKEY_MAPPING_SPECULAR(N) \ 1050 AI_MATKEY_MAPPING(aiTextureType_SPECULAR,N) 1052 #define AI_MATKEY_MAPPING_AMBIENT(N) \ 1053 AI_MATKEY_MAPPING(aiTextureType_AMBIENT,N) 1055 #define AI_MATKEY_MAPPING_EMISSIVE(N) \ 1056 AI_MATKEY_MAPPING(aiTextureType_EMISSIVE,N) 1058 #define AI_MATKEY_MAPPING_NORMALS(N) \ 1059 AI_MATKEY_MAPPING(aiTextureType_NORMALS,N) 1061 #define AI_MATKEY_MAPPING_HEIGHT(N) \ 1062 AI_MATKEY_MAPPING(aiTextureType_HEIGHT,N) 1064 #define AI_MATKEY_MAPPING_SHININESS(N) \ 1065 AI_MATKEY_MAPPING(aiTextureType_SHININESS,N) 1067 #define AI_MATKEY_MAPPING_OPACITY(N) \ 1068 AI_MATKEY_MAPPING(aiTextureType_OPACITY,N) 1070 #define AI_MATKEY_MAPPING_DISPLACEMENT(N) \ 1071 AI_MATKEY_MAPPING(aiTextureType_DISPLACEMENT,N) 1073 #define AI_MATKEY_MAPPING_LIGHTMAP(N) \ 1074 AI_MATKEY_MAPPING(aiTextureType_LIGHTMAP,N) 1076 #define AI_MATKEY_MAPPING_REFLECTION(N) \ 1077 AI_MATKEY_MAPPING(aiTextureType_REFLECTION,N) 1081 #define AI_MATKEY_TEXBLEND(type, N) _AI_MATKEY_TEXBLEND_BASE,type,N 1085 #define AI_MATKEY_TEXBLEND_DIFFUSE(N) \ 1086 AI_MATKEY_TEXBLEND(aiTextureType_DIFFUSE,N) 1088 #define AI_MATKEY_TEXBLEND_SPECULAR(N) \ 1089 AI_MATKEY_TEXBLEND(aiTextureType_SPECULAR,N) 1091 #define AI_MATKEY_TEXBLEND_AMBIENT(N) \ 1092 AI_MATKEY_TEXBLEND(aiTextureType_AMBIENT,N) 1094 #define AI_MATKEY_TEXBLEND_EMISSIVE(N) \ 1095 AI_MATKEY_TEXBLEND(aiTextureType_EMISSIVE,N) 1097 #define AI_MATKEY_TEXBLEND_NORMALS(N) \ 1098 AI_MATKEY_TEXBLEND(aiTextureType_NORMALS,N) 1100 #define AI_MATKEY_TEXBLEND_HEIGHT(N) \ 1101 AI_MATKEY_TEXBLEND(aiTextureType_HEIGHT,N) 1103 #define AI_MATKEY_TEXBLEND_SHININESS(N) \ 1104 AI_MATKEY_TEXBLEND(aiTextureType_SHININESS,N) 1106 #define AI_MATKEY_TEXBLEND_OPACITY(N) \ 1107 AI_MATKEY_TEXBLEND(aiTextureType_OPACITY,N) 1109 #define AI_MATKEY_TEXBLEND_DISPLACEMENT(N) \ 1110 AI_MATKEY_TEXBLEND(aiTextureType_DISPLACEMENT,N) 1112 #define AI_MATKEY_TEXBLEND_LIGHTMAP(N) \ 1113 AI_MATKEY_TEXBLEND(aiTextureType_LIGHTMAP,N) 1115 #define AI_MATKEY_TEXBLEND_REFLECTION(N) \ 1116 AI_MATKEY_TEXBLEND(aiTextureType_REFLECTION,N) 1120 #define AI_MATKEY_MAPPINGMODE_U(type, N) _AI_MATKEY_MAPPINGMODE_U_BASE,type,N 1124 #define AI_MATKEY_MAPPINGMODE_U_DIFFUSE(N) \ 1125 AI_MATKEY_MAPPINGMODE_U(aiTextureType_DIFFUSE,N) 1127 #define AI_MATKEY_MAPPINGMODE_U_SPECULAR(N) \ 1128 AI_MATKEY_MAPPINGMODE_U(aiTextureType_SPECULAR,N) 1130 #define AI_MATKEY_MAPPINGMODE_U_AMBIENT(N) \ 1131 AI_MATKEY_MAPPINGMODE_U(aiTextureType_AMBIENT,N) 1133 #define AI_MATKEY_MAPPINGMODE_U_EMISSIVE(N) \ 1134 AI_MATKEY_MAPPINGMODE_U(aiTextureType_EMISSIVE,N) 1136 #define AI_MATKEY_MAPPINGMODE_U_NORMALS(N) \ 1137 AI_MATKEY_MAPPINGMODE_U(aiTextureType_NORMALS,N) 1139 #define AI_MATKEY_MAPPINGMODE_U_HEIGHT(N) \ 1140 AI_MATKEY_MAPPINGMODE_U(aiTextureType_HEIGHT,N) 1142 #define AI_MATKEY_MAPPINGMODE_U_SHININESS(N) \ 1143 AI_MATKEY_MAPPINGMODE_U(aiTextureType_SHININESS,N) 1145 #define AI_MATKEY_MAPPINGMODE_U_OPACITY(N) \ 1146 AI_MATKEY_MAPPINGMODE_U(aiTextureType_OPACITY,N) 1148 #define AI_MATKEY_MAPPINGMODE_U_DISPLACEMENT(N) \ 1149 AI_MATKEY_MAPPINGMODE_U(aiTextureType_DISPLACEMENT,N) 1151 #define AI_MATKEY_MAPPINGMODE_U_LIGHTMAP(N) \ 1152 AI_MATKEY_MAPPINGMODE_U(aiTextureType_LIGHTMAP,N) 1154 #define AI_MATKEY_MAPPINGMODE_U_REFLECTION(N) \ 1155 AI_MATKEY_MAPPINGMODE_U(aiTextureType_REFLECTION,N) 1159 #define AI_MATKEY_MAPPINGMODE_V(type, N) _AI_MATKEY_MAPPINGMODE_V_BASE,type,N 1163 #define AI_MATKEY_MAPPINGMODE_V_DIFFUSE(N) \ 1164 AI_MATKEY_MAPPINGMODE_V(aiTextureType_DIFFUSE,N) 1166 #define AI_MATKEY_MAPPINGMODE_V_SPECULAR(N) \ 1167 AI_MATKEY_MAPPINGMODE_V(aiTextureType_SPECULAR,N) 1169 #define AI_MATKEY_MAPPINGMODE_V_AMBIENT(N) \ 1170 AI_MATKEY_MAPPINGMODE_V(aiTextureType_AMBIENT,N) 1172 #define AI_MATKEY_MAPPINGMODE_V_EMISSIVE(N) \ 1173 AI_MATKEY_MAPPINGMODE_V(aiTextureType_EMISSIVE,N) 1175 #define AI_MATKEY_MAPPINGMODE_V_NORMALS(N) \ 1176 AI_MATKEY_MAPPINGMODE_V(aiTextureType_NORMALS,N) 1178 #define AI_MATKEY_MAPPINGMODE_V_HEIGHT(N) \ 1179 AI_MATKEY_MAPPINGMODE_V(aiTextureType_HEIGHT,N) 1181 #define AI_MATKEY_MAPPINGMODE_V_SHININESS(N) \ 1182 AI_MATKEY_MAPPINGMODE_V(aiTextureType_SHININESS,N) 1184 #define AI_MATKEY_MAPPINGMODE_V_OPACITY(N) \ 1185 AI_MATKEY_MAPPINGMODE_V(aiTextureType_OPACITY,N) 1187 #define AI_MATKEY_MAPPINGMODE_V_DISPLACEMENT(N) \ 1188 AI_MATKEY_MAPPINGMODE_V(aiTextureType_DISPLACEMENT,N) 1190 #define AI_MATKEY_MAPPINGMODE_V_LIGHTMAP(N) \ 1191 AI_MATKEY_MAPPINGMODE_V(aiTextureType_LIGHTMAP,N) 1193 #define AI_MATKEY_MAPPINGMODE_V_REFLECTION(N) \ 1194 AI_MATKEY_MAPPINGMODE_V(aiTextureType_REFLECTION,N) 1198 #define AI_MATKEY_TEXMAP_AXIS(type, N) _AI_MATKEY_TEXMAP_AXIS_BASE,type,N 1202 #define AI_MATKEY_TEXMAP_AXIS_DIFFUSE(N) \ 1203 AI_MATKEY_TEXMAP_AXIS(aiTextureType_DIFFUSE,N) 1205 #define AI_MATKEY_TEXMAP_AXIS_SPECULAR(N) \ 1206 AI_MATKEY_TEXMAP_AXIS(aiTextureType_SPECULAR,N) 1208 #define AI_MATKEY_TEXMAP_AXIS_AMBIENT(N) \ 1209 AI_MATKEY_TEXMAP_AXIS(aiTextureType_AMBIENT,N) 1211 #define AI_MATKEY_TEXMAP_AXIS_EMISSIVE(N) \ 1212 AI_MATKEY_TEXMAP_AXIS(aiTextureType_EMISSIVE,N) 1214 #define AI_MATKEY_TEXMAP_AXIS_NORMALS(N) \ 1215 AI_MATKEY_TEXMAP_AXIS(aiTextureType_NORMALS,N) 1217 #define AI_MATKEY_TEXMAP_AXIS_HEIGHT(N) \ 1218 AI_MATKEY_TEXMAP_AXIS(aiTextureType_HEIGHT,N) 1220 #define AI_MATKEY_TEXMAP_AXIS_SHININESS(N) \ 1221 AI_MATKEY_TEXMAP_AXIS(aiTextureType_SHININESS,N) 1223 #define AI_MATKEY_TEXMAP_AXIS_OPACITY(N) \ 1224 AI_MATKEY_TEXMAP_AXIS(aiTextureType_OPACITY,N) 1226 #define AI_MATKEY_TEXMAP_AXIS_DISPLACEMENT(N) \ 1227 AI_MATKEY_TEXMAP_AXIS(aiTextureType_DISPLACEMENT,N) 1229 #define AI_MATKEY_TEXMAP_AXIS_LIGHTMAP(N) \ 1230 AI_MATKEY_TEXMAP_AXIS(aiTextureType_LIGHTMAP,N) 1232 #define AI_MATKEY_TEXMAP_AXIS_REFLECTION(N) \ 1233 AI_MATKEY_TEXMAP_AXIS(aiTextureType_REFLECTION,N) 1237 #define AI_MATKEY_UVTRANSFORM(type, N) _AI_MATKEY_UVTRANSFORM_BASE,type,N 1241 #define AI_MATKEY_UVTRANSFORM_DIFFUSE(N) \ 1242 AI_MATKEY_UVTRANSFORM(aiTextureType_DIFFUSE,N) 1244 #define AI_MATKEY_UVTRANSFORM_SPECULAR(N) \ 1245 AI_MATKEY_UVTRANSFORM(aiTextureType_SPECULAR,N) 1247 #define AI_MATKEY_UVTRANSFORM_AMBIENT(N) \ 1248 AI_MATKEY_UVTRANSFORM(aiTextureType_AMBIENT,N) 1250 #define AI_MATKEY_UVTRANSFORM_EMISSIVE(N) \ 1251 AI_MATKEY_UVTRANSFORM(aiTextureType_EMISSIVE,N) 1253 #define AI_MATKEY_UVTRANSFORM_NORMALS(N) \ 1254 AI_MATKEY_UVTRANSFORM(aiTextureType_NORMALS,N) 1256 #define AI_MATKEY_UVTRANSFORM_HEIGHT(N) \ 1257 AI_MATKEY_UVTRANSFORM(aiTextureType_HEIGHT,N) 1259 #define AI_MATKEY_UVTRANSFORM_SHININESS(N) \ 1260 AI_MATKEY_UVTRANSFORM(aiTextureType_SHININESS,N) 1262 #define AI_MATKEY_UVTRANSFORM_OPACITY(N) \ 1263 AI_MATKEY_UVTRANSFORM(aiTextureType_OPACITY,N) 1265 #define AI_MATKEY_UVTRANSFORM_DISPLACEMENT(N) \ 1266 AI_MATKEY_UVTRANSFORM(aiTextureType_DISPLACEMENT,N) 1268 #define AI_MATKEY_UVTRANSFORM_LIGHTMAP(N) \ 1269 AI_MATKEY_UVTRANSFORM(aiTextureType_LIGHTMAP,N) 1271 #define AI_MATKEY_UVTRANSFORM_REFLECTION(N) \ 1272 AI_MATKEY_UVTRANSFORM(aiTextureType_REFLECTION,N) 1274 #define AI_MATKEY_UVTRANSFORM_UNKNOWN(N) \ 1275 AI_MATKEY_UVTRANSFORM(aiTextureType_UNKNOWN,N) 1279 #define AI_MATKEY_TEXFLAGS(type, N) _AI_MATKEY_TEXFLAGS_BASE,type,N 1283 #define AI_MATKEY_TEXFLAGS_DIFFUSE(N) \ 1284 AI_MATKEY_TEXFLAGS(aiTextureType_DIFFUSE,N) 1286 #define AI_MATKEY_TEXFLAGS_SPECULAR(N) \ 1287 AI_MATKEY_TEXFLAGS(aiTextureType_SPECULAR,N) 1289 #define AI_MATKEY_TEXFLAGS_AMBIENT(N) \ 1290 AI_MATKEY_TEXFLAGS(aiTextureType_AMBIENT,N) 1292 #define AI_MATKEY_TEXFLAGS_EMISSIVE(N) \ 1293 AI_MATKEY_TEXFLAGS(aiTextureType_EMISSIVE,N) 1295 #define AI_MATKEY_TEXFLAGS_NORMALS(N) \ 1296 AI_MATKEY_TEXFLAGS(aiTextureType_NORMALS,N) 1298 #define AI_MATKEY_TEXFLAGS_HEIGHT(N) \ 1299 AI_MATKEY_TEXFLAGS(aiTextureType_HEIGHT,N) 1301 #define AI_MATKEY_TEXFLAGS_SHININESS(N) \ 1302 AI_MATKEY_TEXFLAGS(aiTextureType_SHININESS,N) 1304 #define AI_MATKEY_TEXFLAGS_OPACITY(N) \ 1305 AI_MATKEY_TEXFLAGS(aiTextureType_OPACITY,N) 1307 #define AI_MATKEY_TEXFLAGS_DISPLACEMENT(N) \ 1308 AI_MATKEY_TEXFLAGS(aiTextureType_DISPLACEMENT,N) 1310 #define AI_MATKEY_TEXFLAGS_LIGHTMAP(N) \ 1311 AI_MATKEY_TEXFLAGS(aiTextureType_LIGHTMAP,N) 1313 #define AI_MATKEY_TEXFLAGS_REFLECTION(N) \ 1314 AI_MATKEY_TEXFLAGS(aiTextureType_REFLECTION,N) 1316 #define AI_MATKEY_TEXFLAGS_UNKNOWN(N) \ 1317 AI_MATKEY_TEXFLAGS(aiTextureType_UNKNOWN,N) 1337 const C_STRUCT aiMaterialProperty** pPropOut);
1371 unsigned int* pMax);
1407 #define aiGetMaterialFloat (pMat, type, index, pKey, pOut) \ 1408 aiGetMaterialFloatArray(pMat, type, index, pKey, pOut, NULL) 1423 unsigned int* pMax);
1445 #define aiGetMaterialInteger (pMat, type, index, pKey, pOut) \ 1446 aiGetMaterialIntegerArray(pMat, type, index, pKey, pOut, NULL) 1540 unsigned int* uvindex = NULL,
1541 ai_real* blend = NULL,
1544 unsigned int* flags = NULL);
1551 unsigned int* uvindex ,
1555 unsigned int* flags );
1556 #endif // !#ifdef __cplusplus ASSIMP_API C_ENUM aiReturn aiGetMaterialProperty(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, const C_STRUCT aiMaterialProperty **pPropOut)
Retrieve a material property with a specific key from the material.
T = T1 / T2.
Definition: material.h:90
T = T1 + (T2-0.5)
Definition: material.h:96
No shading at all.
Definition: material.h:351
T = T1 * T2.
Definition: material.h:81
Formula:
Definition: material.h:429
aiBlendMode
Defines alpha-blend flags.
Definition: material.h:421
OrenNayar-Shading per pixel.
Definition: material.h:334
A texture coordinate u|v is translated to u%1|v%1.
Definition: material.h:113
Basic data types and primitives, such as vectors or colors.
T = T1 - T2.
Definition: material.h:87
ASSIMP_API C_ENUM aiReturn aiGetMaterialIntegerArray(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, int *pOut, unsigned int *pMax)
__cplusplus
The texture is a (tangent space) normal-map.
Definition: material.h:235
Explicit request to the application to process the alpha channel of the texture.
Definition: material.h:390
The texture is a height map.
Definition: material.h:227
aiTextureFlags
Defines some mixed flags for a particular texture.
Definition: material.h:375
ASSIMP_API unsigned int aiGetMaterialTextureCount(const C_STRUCT aiMaterial *pMat, C_ENUM aiTextureType type)
Get the number of textures for a particular texture type.
Planar mapping.
Definition: material.h:164
Represents a two-dimensional vector.
Definition: vector2.h:108
unsigned int mNumProperties
Number of properties in the data base.
Definition: material.h:877
ASSIMP_API C_ENUM aiReturn aiGetMaterialUVTransform(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, C_STRUCT aiUVTransform *pOut)
Retrieve a aiUVTransform value from the material property table.
Undefined mapping.
Definition: material.h:167
Flat shading.
Definition: material.h:309
T = (T1 + T2) - (T1 * T2)
Definition: material.h:93
Cylindrical mapping.
Definition: material.h:158
Texture coordinates outside [0...1] are clamped to the nearest valid value.
Definition: material.h:118
Fresnel shading.
Definition: material.h:355
ASSIMP_API C_ENUM aiReturn aiGetMaterialFloatArray(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, ai_real *pOut, unsigned int *pMax)
Retrieve an array of float values with a specific key from the material.
aiReturn
Standard return type for some library functions.
Definition: types.h:375
aiShadingMode
Defines all shading models supported by the library.
Definition: material.h:304
Cubic mapping.
Definition: material.h:161
The texture is combined with the result of the ambient lighting equation.
Definition: material.h:215
Unknown texture.
Definition: material.h:282
Defines the C++ getters for the material system.
ASSIMP_API C_ENUM aiReturn aiGetMaterialColor(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, C_STRUCT aiColor4D *pOut)
__cplusplus
Dummy value.
Definition: material.h:198
Displacement texture.
Definition: material.h:258
Represents an UTF-8 string, zero byte terminated.
Definition: types.h:252
aiTextureMapMode
Defines how UV coordinates outside the [0...1] range are handled.
Definition: material.h:109
unsigned int mNumAllocated
Storage allocated.
Definition: material.h:880
The texture is added to the result of the lighting calculation.
Definition: material.h:220
CookTorrance-Shading per pixel.
Definition: material.h:347
Phong-Blinn-Shading.
Definition: material.h:321
A texture coordinate u|v becomes u%1|v%1 if (u-(u%1))%2 is zero and 1-(u%1)|1-(v%1) otherwise...
Definition: material.h:128
aiTextureMapping
Defines how the mapping coords for a texture are generated.
Definition: material.h:144
The texture is combined with the result of the specular lighting equation.
Definition: material.h:210
Definition: vector3.h:135
The mapping coordinates are taken from an UV channel.
Definition: material.h:152
Represents a color in Red-Green-Blue space.
Definition: types.h:158
The texture is combined with the result of the diffuse lighting equation.
Definition: material.h:205
Additive blending.
Definition: material.h:438
The texture's color values have to be inverted (componentwise 1-n)
Definition: material.h:379
Spherical mapping.
Definition: material.h:155
aiTextureOp
Defines how the Nth texture of a specific type is combined with the result of all previous layers...
Definition: material.h:78
aiTextureType
Defines the purpose of a texture.
Definition: material.h:190
Toon-Shading per pixel.
Definition: material.h:327
T = T1 + T2.
Definition: material.h:84
The texture defines per-pixel opacity.
Definition: material.h:251
Explicit request to the application to ignore the alpha channel of the texture.
Definition: material.h:397
ASSIMP_API C_ENUM aiReturn aiGetMaterialString(const C_STRUCT aiMaterial *pMat, const char *pKey, unsigned int type, unsigned int index, C_STRUCT aiString *pOut)
Retrieve a string from the material property table.
Phong-Shading -.
Definition: material.h:317
If the texture coordinates for a pixel are outside [0...1] the texture is not applied to that pixel...
Definition: material.h:123
Lightmap texture (aka Ambient Occlusion)
Definition: material.h:267
Simple Gouraud shading.
Definition: material.h:313
Minnaert-Shading per pixel.
Definition: material.h:341
Data structure for a material.
Definition: material.h:642
Reflection texture.
Definition: material.h:274
The texture defines the glossiness of the material.
Definition: material.h:244
C_ENUM aiReturn aiGetMaterialTexture(const C_STRUCT aiMaterial *mat, C_ENUM aiTextureType type, unsigned int index, C_STRUCT aiString *path, C_ENUM aiTextureMapping *mapping, unsigned int *uvindex, ai_real *blend, C_ENUM aiTextureOp *op, C_ENUM aiTextureMapMode *mapmode, unsigned int *flags)
Helper function to get all values pertaining to a particular texture slot from a material structure...