assimp_sys/
config.rs

1use std::os::raw::{c_float, c_int, c_uint};
2
3macro_rules! define_properties {
4    ($($i:ident),+) => (
5        $(pub const $i: &'static str = stringify!($i);)+
6    )
7}
8
9pub const AI_SBBC_DEFAULT_MAX_BONES: c_int = 60;
10pub const AI_SLM_DEFAULT_MAX_TRIANGLES: c_int = 1000000;
11pub const AI_SLM_DEFAULT_MAX_VERTICES: c_int = 1000000;
12pub const AI_LMW_MAX_WEIGHTS: c_int = 0x4;
13pub const AI_DEBONE_THRESHOLD: c_float = 1.0f32;
14pub const PP_ICL_DEFAULT_PTCACHE_SIZE: c_int = 12;
15
16define_properties! {
17    // Library settings
18    GLOB_MEASURE_TIME,
19    IMPORT_NO_SKELETON_MESHES,
20    GLOB_MULTITHREADING,
21
22    // Post processing settings
23    PP_SBBC_MAX_BONES,
24    PP_CT_MAX_SMOOTHING_ANGLE,
25    PP_CT_TEXTURE_CHANNEL_INDEX,
26    PP_GSN_MAX_SMOOTHING_ANGLE,
27    IMPORT_MDL_COLORMAP,
28    PP_RRM_EXCLUDE_LIST,
29    PP_PTV_KEEP_HIERARCHY,
30    PP_PTV_NORMALIZE,
31    PP_PTV_ADD_ROOT_TRANSFORMATION,
32    PP_PTV_ROOT_TRANSFORMATION,
33    PP_FD_REMOVE,
34    PP_OG_EXCLUDE_LIST,
35    PP_SLM_TRIANGLE_LIMIT,
36    PP_SLM_VERTEX_LIMIT,
37    PP_LBW_MAX_WEIGHTS,
38    PP_DB_THRESHOLD,
39    PP_DB_ALL_OR_NONE,
40    PP_ICL_PTCACHE_SIZE,
41    PP_RVC_FLAGS,
42    PP_SBP_REMOVE,
43    PP_FID_ANIM_ACCURACY,
44    PP_TUV_EVALUATE,
45    FAVOUR_SPEED,
46
47    // Importer Settings
48    IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS,
49    IMPORT_FBX_READ_ALL_MATERIALS,
50    IMPORT_FBX_READ_MATERIALS,
51    IMPORT_FBX_READ_TEXTURES,
52    IMPORT_FBX_READ_CAMERAS,
53    IMPORT_FBX_READ_LIGHTS,
54    IMPORT_FBX_READ_ANIMATIONS,
55    IMPORT_FBX_STRICT_MODE,
56    IMPORT_FBX_PRESERVE_PIVOTS,
57    IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES,
58    IMPORT_GLOBAL_KEYFRAME,
59    IMPORT_MD3_KEYFRAME,
60    IMPORT_MD2_KEYFRAME,
61    IMPORT_MDL_KEYFRAME,
62    IMPORT_MDC_KEYFRAME,
63    IMPORT_SMD_KEYFRAME,
64    IMPORT_UNREAL_KEYFRAME,
65    IMPORT_AC_SEPARATE_BFCULL,
66    IMPORT_AC_EVAL_SUBDIVISION,
67    UNREAL_HANDLE_FLAGS,
68    IMPORT_TER_MAKE_UVS,
69    IMPORT_ASE_RECONSTRUCT_NORMALS,
70    IMPORT_MD3_HANDLE_MULTIPART,
71    IMPORT_MD3_SKIN_NAME,
72    IMPORT_MD3_SHADER_SRC,
73    IMPORT_LWO_ONE_LAYER_ONLY,
74    IMPORT_MD5_NO_ANIM_AUTOLOAD,
75    IMPORT_LWS_ANIM_START,
76    IMPORT_LWS_ANIM_END,
77    IMPORT_IRR_ANIM_FPS,
78    IMPORT_OGRE_MATERIAL_FILE,
79    IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME,
80    IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS,
81    IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS,
82    IMPORT_IFC_CUSTOM_TRIANGULATION,
83    IMPORT_COLLADA_IGNORE_UP_DIRECTION,
84    IMPORT_COLLADA_INVERT_TRANSPARENCY,
85    EXPORT_XFILE_64BIT
86}
87
88bitflags! {
89    #[repr(C)]
90    pub struct AiComponent: c_uint {
91        const AICOMPONENT_NORMALS = 0x2;
92        const AICOMPONENT_TANGENTS_AND_BITANGENTS = 0x4;
93        const AICOMPONENT_COLORS = 0x8;
94        const AICOMPONENT_TEXCOORDS = 0x10;
95        const AICOMPONENT_BONE_WEIGHTS = 0x20;
96        const AICOMPONENT_ANIMATIONS = 0x40;
97        const AICOMPONENT_TEXTURES = 0x80;
98        const AICOMPONENT_LIGHTS = 0x100;
99        const AICOMPONENT_CAMERAS = 0x200;
100        const AICOMPONENT_MESHES = 0x400;
101        const AICOMPONENT_MATERIALS = 0x800;
102    }
103}
104
105bitflags! {
106    #[repr(C)]
107    pub struct AiUVTransformFlags : c_uint {
108        const AI_UVTRAFO_SCALING = 0x1;
109        const AI_UVTRAFO_ROTATION = 0x2;
110        const AI_UVTRAFO_TRANSLATION = 0x4;
111        const AI_UVTRAFO_ALL = AI_UVTRAFO_SCALING.bits
112                             | AI_UVTRAFO_ROTATION.bits
113                             | AI_UVTRAFO_TRANSLATION.bits;
114    }
115}