Path Tracer
material.h
Go to the documentation of this file.
1 /*
2 ---------------------------------------------------------------------------
3 Open Asset Import Library (assimp)
4 ---------------------------------------------------------------------------
5 
6 Copyright (c) 2006-2020, assimp team
7 
8 
9 
10 All rights reserved.
11 
12 Redistribution and use of this software in source and binary forms,
13 with or without modification, are permitted provided that the following
14 conditions are met:
15 
16 * Redistributions of source code must retain the above
17  copyright notice, this list of conditions and the
18  following disclaimer.
19 
20 * Redistributions in binary form must reproduce the above
21  copyright notice, this list of conditions and the
22  following disclaimer in the documentation and/or other
23  materials provided with the distribution.
24 
25 * Neither the name of the assimp team, nor the names of its
26  contributors may be used to endorse or promote products
27  derived from this software without specific prior
28  written permission of the assimp team.
29 
30 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
33 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
34 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
35 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
36 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
37 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
38 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
39 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
40 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41 ---------------------------------------------------------------------------
42 */
43 
47 #pragma once
48 #ifndef AI_MATERIAL_H_INC
49 #define AI_MATERIAL_H_INC
50 
51 #ifdef __GNUC__
52 # pragma GCC system_header
53 #endif
54 
55 #include <assimp/types.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61 // Name for default materials (2nd is used if meshes have UV coords)
62 #define AI_DEFAULT_MATERIAL_NAME "DefaultMaterial"
63 
64 // ---------------------------------------------------------------------------
84 {
87 
90 
93 
96 
99 
102 
103 
104 #ifndef SWIG
105  _aiTextureOp_Force32Bit = INT_MAX
106 #endif
107 };
108 
109 // ---------------------------------------------------------------------------
115 {
119 
124 
129 
134 
135 #ifndef SWIG
136  _aiTextureMapMode_Force32Bit = INT_MAX
137 #endif
138 };
139 
140 // ---------------------------------------------------------------------------
150 {
158 
161 
164 
167 
170 
173 
174 
175 #ifndef SWIG
176  _aiTextureMapping_Force32Bit = INT_MAX
177 #endif
178 };
179 
180 // ---------------------------------------------------------------------------
196 {
204 
215 
220 
225 
230 
237 
245 
254 
261 
268 
277 
284 
293  aiTextureType_NORMAL_CAMERA = 13,
294  aiTextureType_EMISSION_COLOR = 14,
295  aiTextureType_METALNESS = 15,
296  aiTextureType_DIFFUSE_ROUGHNESS = 16,
297  aiTextureType_AMBIENT_OCCLUSION = 17,
298 
306 
307 
308 #ifndef SWIG
309  _aiTextureType_Force32Bit = INT_MAX
310 #endif
311 };
312 
313 #define AI_TEXTURE_TYPE_MAX aiTextureType_UNKNOWN
314 
315 // -------------------------------------------------------------------------------
316 // Get a string for a given aiTextureType
317 ASSIMP_API const char* TextureTypeToString(enum aiTextureType in);
318 
319 // ---------------------------------------------------------------------------
332 {
337 
341 
345 
349 
355 
362 
369 
375 
379 
383 
384 
385 #ifndef SWIG
386  _aiShadingMode_Force32Bit = INT_MAX
387 #endif
388 };
389 
390 
391 // ---------------------------------------------------------------------------
403 {
407 
418 
425 
426 #ifndef SWIG
427  _aiTextureFlags_Force32Bit = INT_MAX
428 #endif
429 };
430 
431 
432 // ---------------------------------------------------------------------------
449 {
457 
466 
467  // we don't need more for the moment, but we might need them
468  // in future versions ...
469 
470 #ifndef SWIG
471  _aiBlendMode_Force32Bit = INT_MAX
472 #endif
473 };
474 
475 
476 #include "./Compiler/pushpack1.h"
477 
478 // ---------------------------------------------------------------------------
489 {
495 
501 
508  ai_real mRotation;
509 
510 
511 #ifdef __cplusplus
512  aiUVTransform() AI_NO_EXCEPT
513  : mTranslation (0.0,0.0)
514  , mScaling (1.0,1.0)
515  , mRotation (0.0)
516  {
517  // nothing to be done here ...
518  }
519 #endif
520 
521 };
522 
523 #include "./Compiler/poppack1.h"
524 
526 // ---------------------------------------------------------------------------
530 enum aiPropertyTypeInfo
531 {
538  aiPTI_Float = 0x1,
539 
546  aiPTI_Double = 0x2,
547 
553  aiPTI_String = 0x3,
554 
561  aiPTI_Integer = 0x4,
562 
563 
566  aiPTI_Buffer = 0x5,
567 
568 
572 #ifndef SWIG
573  _aiPTI_Force32Bit = INT_MAX
574 #endif
575 };
576 
577 // ---------------------------------------------------------------------------
597 struct aiMaterialProperty
598 {
602  C_STRUCT aiString mKey;
603 
608  unsigned int mSemantic;
609 
613  unsigned int mIndex;
614 
618  unsigned int mDataLength;
619 
627  C_ENUM aiPropertyTypeInfo mType;
628 
632  char* mData;
633 
634 #ifdef __cplusplus
635 
636  aiMaterialProperty() AI_NO_EXCEPT
637  : mSemantic( 0 )
638  , mIndex( 0 )
639  , mDataLength( 0 )
640  , mType( aiPTI_Float )
641  , mData(nullptr) {
642  // empty
643  }
644 
645  ~aiMaterialProperty() {
646  delete[] mData;
647  mData = nullptr;
648  }
649 
650 #endif
651 };
653 
654 #ifdef __cplusplus
655 } // We need to leave the "C" block here to allow template member functions
656 #endif
657 
658 // ---------------------------------------------------------------------------
667 #ifdef __cplusplus
668 struct ASSIMP_API aiMaterial
669 #else
671 #endif
672 {
673 
674 #ifdef __cplusplus
675 
676 public:
677 
678  aiMaterial();
679  ~aiMaterial();
680 
681  // -------------------------------------------------------------------
686  // -------------------------------------------------------------------
687  aiString GetName();
688 
689  // -------------------------------------------------------------------
701  template <typename Type>
702  aiReturn Get(const char* pKey,unsigned int type,
703  unsigned int idx, Type* pOut, unsigned int* pMax) const;
704 
705  aiReturn Get(const char* pKey,unsigned int type,
706  unsigned int idx, int* pOut, unsigned int* pMax) const;
707 
708  aiReturn Get(const char* pKey,unsigned int type,
709  unsigned int idx, ai_real* pOut, unsigned int* pMax) const;
710 
711  // -------------------------------------------------------------------
721  template <typename Type>
722  aiReturn Get(const char* pKey,unsigned int type,
723  unsigned int idx,Type& pOut) const;
724 
725 
726  aiReturn Get(const char* pKey,unsigned int type,
727  unsigned int idx, int& pOut) const;
728 
729  aiReturn Get(const char* pKey,unsigned int type,
730  unsigned int idx, ai_real& pOut) const;
731 
732  aiReturn Get(const char* pKey,unsigned int type,
733  unsigned int idx, aiString& pOut) const;
734 
735  aiReturn Get(const char* pKey,unsigned int type,
736  unsigned int idx, aiColor3D& pOut) const;
737 
738  aiReturn Get(const char* pKey,unsigned int type,
739  unsigned int idx, aiColor4D& pOut) const;
740 
741  aiReturn Get(const char* pKey,unsigned int type,
742  unsigned int idx, aiUVTransform& pOut) const;
743 
744  // -------------------------------------------------------------------
749  unsigned int GetTextureCount(aiTextureType type) const;
750 
751  // -------------------------------------------------------------------
781  // -------------------------------------------------------------------
782  aiReturn GetTexture(aiTextureType type,
783  unsigned int index,
784  C_STRUCT aiString* path,
785  aiTextureMapping* mapping = NULL,
786  unsigned int* uvindex = NULL,
787  ai_real* blend = NULL,
788  aiTextureOp* op = NULL,
789  aiTextureMapMode* mapmode = NULL) const;
790 
791 
792  // Setters
793 
794 
795  // ------------------------------------------------------------------------------
805  aiReturn AddBinaryProperty (const void* pInput,
806  unsigned int pSizeInBytes,
807  const char* pKey,
808  unsigned int type ,
809  unsigned int index ,
810  aiPropertyTypeInfo pType);
811 
812  // ------------------------------------------------------------------------------
820  aiReturn AddProperty (const aiString* pInput,
821  const char* pKey,
822  unsigned int type = 0,
823  unsigned int index = 0);
824 
825  // ------------------------------------------------------------------------------
832  template<class TYPE>
833  aiReturn AddProperty (const TYPE* pInput,
834  unsigned int pNumValues,
835  const char* pKey,
836  unsigned int type = 0,
837  unsigned int index = 0);
838 
839  aiReturn AddProperty (const aiVector3D* pInput,
840  unsigned int pNumValues,
841  const char* pKey,
842  unsigned int type = 0,
843  unsigned int index = 0);
844 
845  aiReturn AddProperty (const aiColor3D* pInput,
846  unsigned int pNumValues,
847  const char* pKey,
848  unsigned int type = 0,
849  unsigned int index = 0);
850 
851  aiReturn AddProperty (const aiColor4D* pInput,
852  unsigned int pNumValues,
853  const char* pKey,
854  unsigned int type = 0,
855  unsigned int index = 0);
856 
857  aiReturn AddProperty (const int* pInput,
858  unsigned int pNumValues,
859  const char* pKey,
860  unsigned int type = 0,
861  unsigned int index = 0);
862 
863  aiReturn AddProperty (const float* pInput,
864  unsigned int pNumValues,
865  const char* pKey,
866  unsigned int type = 0,
867  unsigned int index = 0);
868 
869  aiReturn AddProperty (const double* pInput,
870  unsigned int pNumValues,
871  const char* pKey,
872  unsigned int type = 0,
873  unsigned int index = 0);
874 
875  aiReturn AddProperty (const aiUVTransform* pInput,
876  unsigned int pNumValues,
877  const char* pKey,
878  unsigned int type = 0,
879  unsigned int index = 0);
880 
881  // ------------------------------------------------------------------------------
888  aiReturn RemoveProperty (const char* pKey,
889  unsigned int type = 0,
890  unsigned int index = 0);
891 
892  // ------------------------------------------------------------------------------
896  void Clear();
897 
898  // ------------------------------------------------------------------------------
903  static void CopyPropertyList(aiMaterial* pcDest,
904  const aiMaterial* pcSrc);
905 
906 
907 #endif
908 
910  C_STRUCT aiMaterialProperty** mProperties;
911 
913  unsigned int mNumProperties;
914 
916  unsigned int mNumAllocated;
917 };
918 
919 // Go back to extern "C" again
920 #ifdef __cplusplus
921 extern "C" {
922 #endif
923 
924 // ---------------------------------------------------------------------------
925 #define AI_MATKEY_NAME "?mat.name",0,0
926 #define AI_MATKEY_TWOSIDED "$mat.twosided",0,0
927 #define AI_MATKEY_SHADING_MODEL "$mat.shadingm",0,0
928 #define AI_MATKEY_ENABLE_WIREFRAME "$mat.wireframe",0,0
929 #define AI_MATKEY_BLEND_FUNC "$mat.blend",0,0
930 #define AI_MATKEY_OPACITY "$mat.opacity",0,0
931 #define AI_MATKEY_TRANSPARENCYFACTOR "$mat.transparencyfactor",0,0
932 #define AI_MATKEY_BUMPSCALING "$mat.bumpscaling",0,0
933 #define AI_MATKEY_SHININESS "$mat.shininess",0,0
934 #define AI_MATKEY_REFLECTIVITY "$mat.reflectivity",0,0
935 #define AI_MATKEY_SHININESS_STRENGTH "$mat.shinpercent",0,0
936 #define AI_MATKEY_REFRACTI "$mat.refracti",0,0
937 #define AI_MATKEY_COLOR_DIFFUSE "$clr.diffuse",0,0
938 #define AI_MATKEY_COLOR_AMBIENT "$clr.ambient",0,0
939 #define AI_MATKEY_COLOR_SPECULAR "$clr.specular",0,0
940 #define AI_MATKEY_COLOR_EMISSIVE "$clr.emissive",0,0
941 #define AI_MATKEY_COLOR_TRANSPARENT "$clr.transparent",0,0
942 #define AI_MATKEY_COLOR_REFLECTIVE "$clr.reflective",0,0
943 #define AI_MATKEY_GLOBAL_BACKGROUND_IMAGE "?bg.global",0,0
944 #define AI_MATKEY_GLOBAL_SHADERLANG "?sh.lang",0,0
945 #define AI_MATKEY_SHADER_VERTEX "?sh.vs",0,0
946 #define AI_MATKEY_SHADER_FRAGMENT "?sh.fs",0,0
947 #define AI_MATKEY_SHADER_GEO "?sh.gs",0,0
948 #define AI_MATKEY_SHADER_TESSELATION "?sh.ts",0,0
949 #define AI_MATKEY_SHADER_PRIMITIVE "?sh.ps",0,0
950 #define AI_MATKEY_SHADER_COMPUTE "?sh.cs",0,0
951 
952 // ---------------------------------------------------------------------------
953 // Pure key names for all texture-related properties
955 #define _AI_MATKEY_TEXTURE_BASE "$tex.file"
956 #define _AI_MATKEY_UVWSRC_BASE "$tex.uvwsrc"
957 #define _AI_MATKEY_TEXOP_BASE "$tex.op"
958 #define _AI_MATKEY_MAPPING_BASE "$tex.mapping"
959 #define _AI_MATKEY_TEXBLEND_BASE "$tex.blend"
960 #define _AI_MATKEY_MAPPINGMODE_U_BASE "$tex.mapmodeu"
961 #define _AI_MATKEY_MAPPINGMODE_V_BASE "$tex.mapmodev"
962 #define _AI_MATKEY_TEXMAP_AXIS_BASE "$tex.mapaxis"
963 #define _AI_MATKEY_UVTRANSFORM_BASE "$tex.uvtrafo"
964 #define _AI_MATKEY_TEXFLAGS_BASE "$tex.flags"
965 
967 // ---------------------------------------------------------------------------
968 #define AI_MATKEY_TEXTURE(type, N) _AI_MATKEY_TEXTURE_BASE,type,N
969 
970 // For backward compatibility and simplicity
972 #define AI_MATKEY_TEXTURE_DIFFUSE(N) \
973  AI_MATKEY_TEXTURE(aiTextureType_DIFFUSE,N)
974 
975 #define AI_MATKEY_TEXTURE_SPECULAR(N) \
976  AI_MATKEY_TEXTURE(aiTextureType_SPECULAR,N)
977 
978 #define AI_MATKEY_TEXTURE_AMBIENT(N) \
979  AI_MATKEY_TEXTURE(aiTextureType_AMBIENT,N)
980 
981 #define AI_MATKEY_TEXTURE_EMISSIVE(N) \
982  AI_MATKEY_TEXTURE(aiTextureType_EMISSIVE,N)
983 
984 #define AI_MATKEY_TEXTURE_NORMALS(N) \
985  AI_MATKEY_TEXTURE(aiTextureType_NORMALS,N)
986 
987 #define AI_MATKEY_TEXTURE_HEIGHT(N) \
988  AI_MATKEY_TEXTURE(aiTextureType_HEIGHT,N)
989 
990 #define AI_MATKEY_TEXTURE_SHININESS(N) \
991  AI_MATKEY_TEXTURE(aiTextureType_SHININESS,N)
992 
993 #define AI_MATKEY_TEXTURE_OPACITY(N) \
994  AI_MATKEY_TEXTURE(aiTextureType_OPACITY,N)
995 
996 #define AI_MATKEY_TEXTURE_DISPLACEMENT(N) \
997  AI_MATKEY_TEXTURE(aiTextureType_DISPLACEMENT,N)
998 
999 #define AI_MATKEY_TEXTURE_LIGHTMAP(N) \
1000  AI_MATKEY_TEXTURE(aiTextureType_LIGHTMAP,N)
1001 
1002 #define AI_MATKEY_TEXTURE_REFLECTION(N) \
1003  AI_MATKEY_TEXTURE(aiTextureType_REFLECTION,N)
1004 
1006 
1007 // ---------------------------------------------------------------------------
1008 #define AI_MATKEY_UVWSRC(type, N) _AI_MATKEY_UVWSRC_BASE,type,N
1009 
1010 // For backward compatibility and simplicity
1012 #define AI_MATKEY_UVWSRC_DIFFUSE(N) \
1013  AI_MATKEY_UVWSRC(aiTextureType_DIFFUSE,N)
1014 
1015 #define AI_MATKEY_UVWSRC_SPECULAR(N) \
1016  AI_MATKEY_UVWSRC(aiTextureType_SPECULAR,N)
1017 
1018 #define AI_MATKEY_UVWSRC_AMBIENT(N) \
1019  AI_MATKEY_UVWSRC(aiTextureType_AMBIENT,N)
1020 
1021 #define AI_MATKEY_UVWSRC_EMISSIVE(N) \
1022  AI_MATKEY_UVWSRC(aiTextureType_EMISSIVE,N)
1023 
1024 #define AI_MATKEY_UVWSRC_NORMALS(N) \
1025  AI_MATKEY_UVWSRC(aiTextureType_NORMALS,N)
1026 
1027 #define AI_MATKEY_UVWSRC_HEIGHT(N) \
1028  AI_MATKEY_UVWSRC(aiTextureType_HEIGHT,N)
1029 
1030 #define AI_MATKEY_UVWSRC_SHININESS(N) \
1031  AI_MATKEY_UVWSRC(aiTextureType_SHININESS,N)
1032 
1033 #define AI_MATKEY_UVWSRC_OPACITY(N) \
1034  AI_MATKEY_UVWSRC(aiTextureType_OPACITY,N)
1035 
1036 #define AI_MATKEY_UVWSRC_DISPLACEMENT(N) \
1037  AI_MATKEY_UVWSRC(aiTextureType_DISPLACEMENT,N)
1038 
1039 #define AI_MATKEY_UVWSRC_LIGHTMAP(N) \
1040  AI_MATKEY_UVWSRC(aiTextureType_LIGHTMAP,N)
1041 
1042 #define AI_MATKEY_UVWSRC_REFLECTION(N) \
1043  AI_MATKEY_UVWSRC(aiTextureType_REFLECTION,N)
1044 
1046 // ---------------------------------------------------------------------------
1047 #define AI_MATKEY_TEXOP(type, N) _AI_MATKEY_TEXOP_BASE,type,N
1048 
1049 // For backward compatibility and simplicity
1051 #define AI_MATKEY_TEXOP_DIFFUSE(N) \
1052  AI_MATKEY_TEXOP(aiTextureType_DIFFUSE,N)
1053 
1054 #define AI_MATKEY_TEXOP_SPECULAR(N) \
1055  AI_MATKEY_TEXOP(aiTextureType_SPECULAR,N)
1056 
1057 #define AI_MATKEY_TEXOP_AMBIENT(N) \
1058  AI_MATKEY_TEXOP(aiTextureType_AMBIENT,N)
1059 
1060 #define AI_MATKEY_TEXOP_EMISSIVE(N) \
1061  AI_MATKEY_TEXOP(aiTextureType_EMISSIVE,N)
1062 
1063 #define AI_MATKEY_TEXOP_NORMALS(N) \
1064  AI_MATKEY_TEXOP(aiTextureType_NORMALS,N)
1065 
1066 #define AI_MATKEY_TEXOP_HEIGHT(N) \
1067  AI_MATKEY_TEXOP(aiTextureType_HEIGHT,N)
1068 
1069 #define AI_MATKEY_TEXOP_SHININESS(N) \
1070  AI_MATKEY_TEXOP(aiTextureType_SHININESS,N)
1071 
1072 #define AI_MATKEY_TEXOP_OPACITY(N) \
1073  AI_MATKEY_TEXOP(aiTextureType_OPACITY,N)
1074 
1075 #define AI_MATKEY_TEXOP_DISPLACEMENT(N) \
1076  AI_MATKEY_TEXOP(aiTextureType_DISPLACEMENT,N)
1077 
1078 #define AI_MATKEY_TEXOP_LIGHTMAP(N) \
1079  AI_MATKEY_TEXOP(aiTextureType_LIGHTMAP,N)
1080 
1081 #define AI_MATKEY_TEXOP_REFLECTION(N) \
1082  AI_MATKEY_TEXOP(aiTextureType_REFLECTION,N)
1083 
1085 // ---------------------------------------------------------------------------
1086 #define AI_MATKEY_MAPPING(type, N) _AI_MATKEY_MAPPING_BASE,type,N
1087 
1088 // For backward compatibility and simplicity
1090 #define AI_MATKEY_MAPPING_DIFFUSE(N) \
1091  AI_MATKEY_MAPPING(aiTextureType_DIFFUSE,N)
1092 
1093 #define AI_MATKEY_MAPPING_SPECULAR(N) \
1094  AI_MATKEY_MAPPING(aiTextureType_SPECULAR,N)
1095 
1096 #define AI_MATKEY_MAPPING_AMBIENT(N) \
1097  AI_MATKEY_MAPPING(aiTextureType_AMBIENT,N)
1098 
1099 #define AI_MATKEY_MAPPING_EMISSIVE(N) \
1100  AI_MATKEY_MAPPING(aiTextureType_EMISSIVE,N)
1101 
1102 #define AI_MATKEY_MAPPING_NORMALS(N) \
1103  AI_MATKEY_MAPPING(aiTextureType_NORMALS,N)
1104 
1105 #define AI_MATKEY_MAPPING_HEIGHT(N) \
1106  AI_MATKEY_MAPPING(aiTextureType_HEIGHT,N)
1107 
1108 #define AI_MATKEY_MAPPING_SHININESS(N) \
1109  AI_MATKEY_MAPPING(aiTextureType_SHININESS,N)
1110 
1111 #define AI_MATKEY_MAPPING_OPACITY(N) \
1112  AI_MATKEY_MAPPING(aiTextureType_OPACITY,N)
1113 
1114 #define AI_MATKEY_MAPPING_DISPLACEMENT(N) \
1115  AI_MATKEY_MAPPING(aiTextureType_DISPLACEMENT,N)
1116 
1117 #define AI_MATKEY_MAPPING_LIGHTMAP(N) \
1118  AI_MATKEY_MAPPING(aiTextureType_LIGHTMAP,N)
1119 
1120 #define AI_MATKEY_MAPPING_REFLECTION(N) \
1121  AI_MATKEY_MAPPING(aiTextureType_REFLECTION,N)
1122 
1124 // ---------------------------------------------------------------------------
1125 #define AI_MATKEY_TEXBLEND(type, N) _AI_MATKEY_TEXBLEND_BASE,type,N
1126 
1127 // For backward compatibility and simplicity
1129 #define AI_MATKEY_TEXBLEND_DIFFUSE(N) \
1130  AI_MATKEY_TEXBLEND(aiTextureType_DIFFUSE,N)
1131 
1132 #define AI_MATKEY_TEXBLEND_SPECULAR(N) \
1133  AI_MATKEY_TEXBLEND(aiTextureType_SPECULAR,N)
1134 
1135 #define AI_MATKEY_TEXBLEND_AMBIENT(N) \
1136  AI_MATKEY_TEXBLEND(aiTextureType_AMBIENT,N)
1137 
1138 #define AI_MATKEY_TEXBLEND_EMISSIVE(N) \
1139  AI_MATKEY_TEXBLEND(aiTextureType_EMISSIVE,N)
1140 
1141 #define AI_MATKEY_TEXBLEND_NORMALS(N) \
1142  AI_MATKEY_TEXBLEND(aiTextureType_NORMALS,N)
1143 
1144 #define AI_MATKEY_TEXBLEND_HEIGHT(N) \
1145  AI_MATKEY_TEXBLEND(aiTextureType_HEIGHT,N)
1146 
1147 #define AI_MATKEY_TEXBLEND_SHININESS(N) \
1148  AI_MATKEY_TEXBLEND(aiTextureType_SHININESS,N)
1149 
1150 #define AI_MATKEY_TEXBLEND_OPACITY(N) \
1151  AI_MATKEY_TEXBLEND(aiTextureType_OPACITY,N)
1152 
1153 #define AI_MATKEY_TEXBLEND_DISPLACEMENT(N) \
1154  AI_MATKEY_TEXBLEND(aiTextureType_DISPLACEMENT,N)
1155 
1156 #define AI_MATKEY_TEXBLEND_LIGHTMAP(N) \
1157  AI_MATKEY_TEXBLEND(aiTextureType_LIGHTMAP,N)
1158 
1159 #define AI_MATKEY_TEXBLEND_REFLECTION(N) \
1160  AI_MATKEY_TEXBLEND(aiTextureType_REFLECTION,N)
1161 
1163 // ---------------------------------------------------------------------------
1164 #define AI_MATKEY_MAPPINGMODE_U(type, N) _AI_MATKEY_MAPPINGMODE_U_BASE,type,N
1165 
1166 // For backward compatibility and simplicity
1168 #define AI_MATKEY_MAPPINGMODE_U_DIFFUSE(N) \
1169  AI_MATKEY_MAPPINGMODE_U(aiTextureType_DIFFUSE,N)
1170 
1171 #define AI_MATKEY_MAPPINGMODE_U_SPECULAR(N) \
1172  AI_MATKEY_MAPPINGMODE_U(aiTextureType_SPECULAR,N)
1173 
1174 #define AI_MATKEY_MAPPINGMODE_U_AMBIENT(N) \
1175  AI_MATKEY_MAPPINGMODE_U(aiTextureType_AMBIENT,N)
1176 
1177 #define AI_MATKEY_MAPPINGMODE_U_EMISSIVE(N) \
1178  AI_MATKEY_MAPPINGMODE_U(aiTextureType_EMISSIVE,N)
1179 
1180 #define AI_MATKEY_MAPPINGMODE_U_NORMALS(N) \
1181  AI_MATKEY_MAPPINGMODE_U(aiTextureType_NORMALS,N)
1182 
1183 #define AI_MATKEY_MAPPINGMODE_U_HEIGHT(N) \
1184  AI_MATKEY_MAPPINGMODE_U(aiTextureType_HEIGHT,N)
1185 
1186 #define AI_MATKEY_MAPPINGMODE_U_SHININESS(N) \
1187  AI_MATKEY_MAPPINGMODE_U(aiTextureType_SHININESS,N)
1188 
1189 #define AI_MATKEY_MAPPINGMODE_U_OPACITY(N) \
1190  AI_MATKEY_MAPPINGMODE_U(aiTextureType_OPACITY,N)
1191 
1192 #define AI_MATKEY_MAPPINGMODE_U_DISPLACEMENT(N) \
1193  AI_MATKEY_MAPPINGMODE_U(aiTextureType_DISPLACEMENT,N)
1194 
1195 #define AI_MATKEY_MAPPINGMODE_U_LIGHTMAP(N) \
1196  AI_MATKEY_MAPPINGMODE_U(aiTextureType_LIGHTMAP,N)
1197 
1198 #define AI_MATKEY_MAPPINGMODE_U_REFLECTION(N) \
1199  AI_MATKEY_MAPPINGMODE_U(aiTextureType_REFLECTION,N)
1200 
1202 // ---------------------------------------------------------------------------
1203 #define AI_MATKEY_MAPPINGMODE_V(type, N) _AI_MATKEY_MAPPINGMODE_V_BASE,type,N
1204 
1205 // For backward compatibility and simplicity
1207 #define AI_MATKEY_MAPPINGMODE_V_DIFFUSE(N) \
1208  AI_MATKEY_MAPPINGMODE_V(aiTextureType_DIFFUSE,N)
1209 
1210 #define AI_MATKEY_MAPPINGMODE_V_SPECULAR(N) \
1211  AI_MATKEY_MAPPINGMODE_V(aiTextureType_SPECULAR,N)
1212 
1213 #define AI_MATKEY_MAPPINGMODE_V_AMBIENT(N) \
1214  AI_MATKEY_MAPPINGMODE_V(aiTextureType_AMBIENT,N)
1215 
1216 #define AI_MATKEY_MAPPINGMODE_V_EMISSIVE(N) \
1217  AI_MATKEY_MAPPINGMODE_V(aiTextureType_EMISSIVE,N)
1218 
1219 #define AI_MATKEY_MAPPINGMODE_V_NORMALS(N) \
1220  AI_MATKEY_MAPPINGMODE_V(aiTextureType_NORMALS,N)
1221 
1222 #define AI_MATKEY_MAPPINGMODE_V_HEIGHT(N) \
1223  AI_MATKEY_MAPPINGMODE_V(aiTextureType_HEIGHT,N)
1224 
1225 #define AI_MATKEY_MAPPINGMODE_V_SHININESS(N) \
1226  AI_MATKEY_MAPPINGMODE_V(aiTextureType_SHININESS,N)
1227 
1228 #define AI_MATKEY_MAPPINGMODE_V_OPACITY(N) \
1229  AI_MATKEY_MAPPINGMODE_V(aiTextureType_OPACITY,N)
1230 
1231 #define AI_MATKEY_MAPPINGMODE_V_DISPLACEMENT(N) \
1232  AI_MATKEY_MAPPINGMODE_V(aiTextureType_DISPLACEMENT,N)
1233 
1234 #define AI_MATKEY_MAPPINGMODE_V_LIGHTMAP(N) \
1235  AI_MATKEY_MAPPINGMODE_V(aiTextureType_LIGHTMAP,N)
1236 
1237 #define AI_MATKEY_MAPPINGMODE_V_REFLECTION(N) \
1238  AI_MATKEY_MAPPINGMODE_V(aiTextureType_REFLECTION,N)
1239 
1241 // ---------------------------------------------------------------------------
1242 #define AI_MATKEY_TEXMAP_AXIS(type, N) _AI_MATKEY_TEXMAP_AXIS_BASE,type,N
1243 
1244 // For backward compatibility and simplicity
1246 #define AI_MATKEY_TEXMAP_AXIS_DIFFUSE(N) \
1247  AI_MATKEY_TEXMAP_AXIS(aiTextureType_DIFFUSE,N)
1248 
1249 #define AI_MATKEY_TEXMAP_AXIS_SPECULAR(N) \
1250  AI_MATKEY_TEXMAP_AXIS(aiTextureType_SPECULAR,N)
1251 
1252 #define AI_MATKEY_TEXMAP_AXIS_AMBIENT(N) \
1253  AI_MATKEY_TEXMAP_AXIS(aiTextureType_AMBIENT,N)
1254 
1255 #define AI_MATKEY_TEXMAP_AXIS_EMISSIVE(N) \
1256  AI_MATKEY_TEXMAP_AXIS(aiTextureType_EMISSIVE,N)
1257 
1258 #define AI_MATKEY_TEXMAP_AXIS_NORMALS(N) \
1259  AI_MATKEY_TEXMAP_AXIS(aiTextureType_NORMALS,N)
1260 
1261 #define AI_MATKEY_TEXMAP_AXIS_HEIGHT(N) \
1262  AI_MATKEY_TEXMAP_AXIS(aiTextureType_HEIGHT,N)
1263 
1264 #define AI_MATKEY_TEXMAP_AXIS_SHININESS(N) \
1265  AI_MATKEY_TEXMAP_AXIS(aiTextureType_SHININESS,N)
1266 
1267 #define AI_MATKEY_TEXMAP_AXIS_OPACITY(N) \
1268  AI_MATKEY_TEXMAP_AXIS(aiTextureType_OPACITY,N)
1269 
1270 #define AI_MATKEY_TEXMAP_AXIS_DISPLACEMENT(N) \
1271  AI_MATKEY_TEXMAP_AXIS(aiTextureType_DISPLACEMENT,N)
1272 
1273 #define AI_MATKEY_TEXMAP_AXIS_LIGHTMAP(N) \
1274  AI_MATKEY_TEXMAP_AXIS(aiTextureType_LIGHTMAP,N)
1275 
1276 #define AI_MATKEY_TEXMAP_AXIS_REFLECTION(N) \
1277  AI_MATKEY_TEXMAP_AXIS(aiTextureType_REFLECTION,N)
1278 
1280 // ---------------------------------------------------------------------------
1281 #define AI_MATKEY_UVTRANSFORM(type, N) _AI_MATKEY_UVTRANSFORM_BASE,type,N
1282 
1283 // For backward compatibility and simplicity
1285 #define AI_MATKEY_UVTRANSFORM_DIFFUSE(N) \
1286  AI_MATKEY_UVTRANSFORM(aiTextureType_DIFFUSE,N)
1287 
1288 #define AI_MATKEY_UVTRANSFORM_SPECULAR(N) \
1289  AI_MATKEY_UVTRANSFORM(aiTextureType_SPECULAR,N)
1290 
1291 #define AI_MATKEY_UVTRANSFORM_AMBIENT(N) \
1292  AI_MATKEY_UVTRANSFORM(aiTextureType_AMBIENT,N)
1293 
1294 #define AI_MATKEY_UVTRANSFORM_EMISSIVE(N) \
1295  AI_MATKEY_UVTRANSFORM(aiTextureType_EMISSIVE,N)
1296 
1297 #define AI_MATKEY_UVTRANSFORM_NORMALS(N) \
1298  AI_MATKEY_UVTRANSFORM(aiTextureType_NORMALS,N)
1299 
1300 #define AI_MATKEY_UVTRANSFORM_HEIGHT(N) \
1301  AI_MATKEY_UVTRANSFORM(aiTextureType_HEIGHT,N)
1302 
1303 #define AI_MATKEY_UVTRANSFORM_SHININESS(N) \
1304  AI_MATKEY_UVTRANSFORM(aiTextureType_SHININESS,N)
1305 
1306 #define AI_MATKEY_UVTRANSFORM_OPACITY(N) \
1307  AI_MATKEY_UVTRANSFORM(aiTextureType_OPACITY,N)
1308 
1309 #define AI_MATKEY_UVTRANSFORM_DISPLACEMENT(N) \
1310  AI_MATKEY_UVTRANSFORM(aiTextureType_DISPLACEMENT,N)
1311 
1312 #define AI_MATKEY_UVTRANSFORM_LIGHTMAP(N) \
1313  AI_MATKEY_UVTRANSFORM(aiTextureType_LIGHTMAP,N)
1314 
1315 #define AI_MATKEY_UVTRANSFORM_REFLECTION(N) \
1316  AI_MATKEY_UVTRANSFORM(aiTextureType_REFLECTION,N)
1317 
1318 #define AI_MATKEY_UVTRANSFORM_UNKNOWN(N) \
1319  AI_MATKEY_UVTRANSFORM(aiTextureType_UNKNOWN,N)
1320 
1322 // ---------------------------------------------------------------------------
1323 #define AI_MATKEY_TEXFLAGS(type, N) _AI_MATKEY_TEXFLAGS_BASE,type,N
1324 
1325 // For backward compatibility and simplicity
1327 #define AI_MATKEY_TEXFLAGS_DIFFUSE(N) \
1328  AI_MATKEY_TEXFLAGS(aiTextureType_DIFFUSE,N)
1329 
1330 #define AI_MATKEY_TEXFLAGS_SPECULAR(N) \
1331  AI_MATKEY_TEXFLAGS(aiTextureType_SPECULAR,N)
1332 
1333 #define AI_MATKEY_TEXFLAGS_AMBIENT(N) \
1334  AI_MATKEY_TEXFLAGS(aiTextureType_AMBIENT,N)
1335 
1336 #define AI_MATKEY_TEXFLAGS_EMISSIVE(N) \
1337  AI_MATKEY_TEXFLAGS(aiTextureType_EMISSIVE,N)
1338 
1339 #define AI_MATKEY_TEXFLAGS_NORMALS(N) \
1340  AI_MATKEY_TEXFLAGS(aiTextureType_NORMALS,N)
1341 
1342 #define AI_MATKEY_TEXFLAGS_HEIGHT(N) \
1343  AI_MATKEY_TEXFLAGS(aiTextureType_HEIGHT,N)
1344 
1345 #define AI_MATKEY_TEXFLAGS_SHININESS(N) \
1346  AI_MATKEY_TEXFLAGS(aiTextureType_SHININESS,N)
1347 
1348 #define AI_MATKEY_TEXFLAGS_OPACITY(N) \
1349  AI_MATKEY_TEXFLAGS(aiTextureType_OPACITY,N)
1350 
1351 #define AI_MATKEY_TEXFLAGS_DISPLACEMENT(N) \
1352  AI_MATKEY_TEXFLAGS(aiTextureType_DISPLACEMENT,N)
1353 
1354 #define AI_MATKEY_TEXFLAGS_LIGHTMAP(N) \
1355  AI_MATKEY_TEXFLAGS(aiTextureType_LIGHTMAP,N)
1356 
1357 #define AI_MATKEY_TEXFLAGS_REFLECTION(N) \
1358  AI_MATKEY_TEXFLAGS(aiTextureType_REFLECTION,N)
1359 
1360 #define AI_MATKEY_TEXFLAGS_UNKNOWN(N) \
1361  AI_MATKEY_TEXFLAGS(aiTextureType_UNKNOWN,N)
1362 
1365 // ---------------------------------------------------------------------------
1375 // ---------------------------------------------------------------------------
1377  const C_STRUCT aiMaterial* pMat,
1378  const char* pKey,
1379  unsigned int type,
1380  unsigned int index,
1381  const C_STRUCT aiMaterialProperty** pPropOut);
1382 
1383 // ---------------------------------------------------------------------------
1408 // ---------------------------------------------------------------------------
1410  const C_STRUCT aiMaterial* pMat,
1411  const char* pKey,
1412  unsigned int type,
1413  unsigned int index,
1414  ai_real* pOut,
1415  unsigned int* pMax);
1416 
1417 
1418 #ifdef __cplusplus
1419 
1420 // ---------------------------------------------------------------------------
1438 // ---------------------------------------------------------------------------
1439 inline aiReturn aiGetMaterialFloat(const aiMaterial* pMat,
1440  const char* pKey,
1441  unsigned int type,
1442  unsigned int index,
1443  ai_real* pOut)
1444 {
1445  return aiGetMaterialFloatArray(pMat,pKey,type,index,pOut,(unsigned int*)0x0);
1446 }
1447 
1448 #else
1449 
1450 // Use our friend, the C preprocessor
1451 #define aiGetMaterialFloat (pMat, type, index, pKey, pOut) \
1452  aiGetMaterialFloatArray(pMat, type, index, pKey, pOut, NULL)
1453 
1454 #endif
1455 
1456 
1457 // ---------------------------------------------------------------------------
1462 ASSIMP_API C_ENUM aiReturn aiGetMaterialIntegerArray(const C_STRUCT aiMaterial* pMat,
1463  const char* pKey,
1464  unsigned int type,
1465  unsigned int index,
1466  int* pOut,
1467  unsigned int* pMax);
1468 
1469 
1470 #ifdef __cplusplus
1471 
1472 // ---------------------------------------------------------------------------
1476 // ---------------------------------------------------------------------------
1477 inline aiReturn aiGetMaterialInteger(const C_STRUCT aiMaterial* pMat,
1478  const char* pKey,
1479  unsigned int type,
1480  unsigned int index,
1481  int* pOut)
1482 {
1483  return aiGetMaterialIntegerArray(pMat,pKey,type,index,pOut,(unsigned int*)0x0);
1484 }
1485 
1486 #else
1487 
1488 // use our friend, the C preprocessor
1489 #define aiGetMaterialInteger (pMat, type, index, pKey, pOut) \
1490  aiGetMaterialIntegerArray(pMat, type, index, pKey, pOut, NULL)
1491 
1492 #endif
1493 
1494 // ---------------------------------------------------------------------------
1498 // ---------------------------------------------------------------------------
1499 ASSIMP_API C_ENUM aiReturn aiGetMaterialColor(const C_STRUCT aiMaterial* pMat,
1500  const char* pKey,
1501  unsigned int type,
1502  unsigned int index,
1503  C_STRUCT aiColor4D* pOut);
1504 
1505 
1506 // ---------------------------------------------------------------------------
1510 // ---------------------------------------------------------------------------
1511 ASSIMP_API C_ENUM aiReturn aiGetMaterialUVTransform(const C_STRUCT aiMaterial* pMat,
1512  const char* pKey,
1513  unsigned int type,
1514  unsigned int index,
1515  C_STRUCT aiUVTransform* pOut);
1516 
1517 
1518 // ---------------------------------------------------------------------------
1522 // ---------------------------------------------------------------------------
1523 ASSIMP_API C_ENUM aiReturn aiGetMaterialString(const C_STRUCT aiMaterial* pMat,
1524  const char* pKey,
1525  unsigned int type,
1526  unsigned int index,
1527  C_STRUCT aiString* pOut);
1528 
1529 // ---------------------------------------------------------------------------
1535 // ---------------------------------------------------------------------------
1536 ASSIMP_API unsigned int aiGetMaterialTextureCount(const C_STRUCT aiMaterial* pMat,
1537  C_ENUM aiTextureType type);
1538 
1539 // ---------------------------------------------------------------------------
1575 // ---------------------------------------------------------------------------
1576 #ifdef __cplusplus
1577 ASSIMP_API aiReturn aiGetMaterialTexture(const C_STRUCT aiMaterial* mat,
1578  aiTextureType type,
1579  unsigned int index,
1580  aiString* path,
1581  aiTextureMapping* mapping = NULL,
1582  unsigned int* uvindex = NULL,
1583  ai_real* blend = NULL,
1584  aiTextureOp* op = NULL,
1585  aiTextureMapMode* mapmode = NULL,
1586  unsigned int* flags = NULL);
1587 #else
1588 C_ENUM aiReturn aiGetMaterialTexture(const C_STRUCT aiMaterial* mat,
1589  C_ENUM aiTextureType type,
1590  unsigned int index,
1591  C_STRUCT aiString* path,
1592  C_ENUM aiTextureMapping* mapping /*= NULL*/,
1593  unsigned int* uvindex /*= NULL*/,
1594  ai_real* blend /*= NULL*/,
1595  C_ENUM aiTextureOp* op /*= NULL*/,
1596  C_ENUM aiTextureMapMode* mapmode /*= NULL*/,
1597  unsigned int* flags /*= NULL*/);
1598 #endif // !#ifdef __cplusplus
1599 
1600 
1601 #ifdef __cplusplus
1602 }
1603 
1604 #include "material.inl"
1605 
1606 #endif
1607 
1608 #endif
aiGetMaterialProperty
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.
aiShadingMode_Phong
@ aiShadingMode_Phong
Definition: material.h:344
aiTextureType_DISPLACEMENT
@ aiTextureType_DISPLACEMENT
Definition: material.h:267
aiTextureType_OPACITY
@ aiTextureType_OPACITY
Definition: material.h:260
aiGetMaterialIntegerArray
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
aiShadingMode_Minnaert
@ aiShadingMode_Minnaert
Definition: material.h:368
aiVector3D
Definition: vector3.h:136
aiShadingMode_Toon
@ aiShadingMode_Toon
Definition: material.h:354
types.h
aiUVTransform::mRotation
ai_real mRotation
Definition: material.h:508
aiShadingMode_Blinn
@ aiShadingMode_Blinn
Definition: material.h:348
aiTextureMapMode_Clamp
@ aiTextureMapMode_Clamp
Definition: material.h:123
aiTextureType_NONE
@ aiTextureType_NONE
Definition: material.h:203
aiGetMaterialFloatArray
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.
aiTextureFlags_Invert
@ aiTextureFlags_Invert
Definition: material.h:406
aiTextureType
aiTextureType
Defines the purpose of a texture.
Definition: material.h:196
aiMaterial::mNumProperties
unsigned int mNumProperties
Definition: material.h:913
aiShadingMode
aiShadingMode
Defines all shading models supported by the library.
Definition: material.h:332
aiTextureType_HEIGHT
@ aiTextureType_HEIGHT
Definition: material.h:236
aiTextureFlags_IgnoreAlpha
@ aiTextureFlags_IgnoreAlpha
Definition: material.h:424
aiTextureMapping_BOX
@ aiTextureMapping_BOX
Definition: material.h:166
aiUVTransform::mTranslation
C_STRUCT aiVector2D mTranslation
Definition: material.h:494
aiTextureType_SPECULAR
@ aiTextureType_SPECULAR
Definition: material.h:219
aiMaterial::mNumAllocated
unsigned int mNumAllocated
Definition: material.h:916
aiReturn
aiReturn
Definition: types.h:397
aiTextureMapping_OTHER
@ aiTextureMapping_OTHER
Definition: material.h:172
aiTextureOp_Subtract
@ aiTextureOp_Subtract
Definition: material.h:92
aiTextureOp
aiTextureOp
Defines how the Nth texture of a specific type is combined with the result of all previous layers.
Definition: material.h:84
aiTextureType_REFLECTION
@ aiTextureType_REFLECTION
Definition: material.h:283
aiGetMaterialColor
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
aiShadingMode_Gouraud
@ aiShadingMode_Gouraud
Definition: material.h:340
aiShadingMode_CookTorrance
@ aiShadingMode_CookTorrance
Definition: material.h:374
aiTextureOp_Divide
@ aiTextureOp_Divide
Definition: material.h:95
aiTextureOp_SignedAdd
@ aiTextureOp_SignedAdd
Definition: material.h:101
aiTextureType_SHININESS
@ aiTextureType_SHININESS
Definition: material.h:253
material.inl
Defines the C++ getters for the material system.
aiUVTransform
Defines how an UV channel is transformed.
Definition: material.h:489
aiTextureMapMode
aiTextureMapMode
Defines how UV coordinates outside the [0...1] range are handled.
Definition: material.h:115
aiColor3D
Definition: types.h:165
aiMaterial
Data structure for a material.
Definition: material.h:672
aiGetMaterialTextureCount
ASSIMP_API unsigned int aiGetMaterialTextureCount(const C_STRUCT aiMaterial *pMat, C_ENUM aiTextureType type)
aiGetMaterialTexture
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.
aiTextureOp_SmoothAdd
@ aiTextureOp_SmoothAdd
Definition: material.h:98
aiTextureMapping_PLANE
@ aiTextureMapping_PLANE
Definition: material.h:169
aiBlendMode_Additive
@ aiBlendMode_Additive
Definition: material.h:465
aiTextureOp_Add
@ aiTextureOp_Add
Definition: material.h:89
aiString
Definition: types.h:266
aiColor4D
Definition: color4.h:97
aiBlendMode_Default
@ aiBlendMode_Default
Definition: material.h:456
aiVector2D
Definition: vector2.h:105
aiTextureMapMode_Mirror
@ aiTextureMapMode_Mirror
Definition: material.h:133
aiTextureMapping
aiTextureMapping
Defines how the mapping coords for a texture are generated.
Definition: material.h:150
aiShadingMode_Fresnel
@ aiShadingMode_Fresnel
Definition: material.h:382
aiGetMaterialString
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.
aiShadingMode_Flat
@ aiShadingMode_Flat
Definition: material.h:336
aiTextureMapMode_Decal
@ aiTextureMapMode_Decal
Definition: material.h:128
aiTextureFlags_UseAlpha
@ aiTextureFlags_UseAlpha
Definition: material.h:417
aiTextureType_UNKNOWN
@ aiTextureType_UNKNOWN
Definition: material.h:305
aiUVTransform::mScaling
C_STRUCT aiVector2D mScaling
Definition: material.h:500
aiTextureType_DIFFUSE
@ aiTextureType_DIFFUSE
Definition: material.h:214
aiTextureType_EMISSIVE
@ aiTextureType_EMISSIVE
Definition: material.h:229
aiTextureMapping_UV
@ aiTextureMapping_UV
Definition: material.h:157
aiTextureType_BASE_COLOR
@ aiTextureType_BASE_COLOR
Definition: material.h:292
aiTextureMapMode_Wrap
@ aiTextureMapMode_Wrap
Definition: material.h:118
aiTextureFlags
aiTextureFlags
Defines some mixed flags for a particular texture.
Definition: material.h:403
aiTextureMapping_SPHERE
@ aiTextureMapping_SPHERE
Definition: material.h:160
aiShadingMode_OrenNayar
@ aiShadingMode_OrenNayar
Definition: material.h:361
aiTextureType_LIGHTMAP
@ aiTextureType_LIGHTMAP
Definition: material.h:276
aiGetMaterialUVTransform
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.
aiTextureType_NORMALS
@ aiTextureType_NORMALS
Definition: material.h:244
aiShadingMode_NoShading
@ aiShadingMode_NoShading
Definition: material.h:378
aiTextureOp_Multiply
@ aiTextureOp_Multiply
Definition: material.h:86
aiBlendMode
aiBlendMode
Defines alpha-blend flags.
Definition: material.h:449
aiTextureMapping_CYLINDER
@ aiTextureMapping_CYLINDER
Definition: material.h:163
aiTextureType_AMBIENT
@ aiTextureType_AMBIENT
Definition: material.h:224