00001
00008 #ifndef XSI_MIUSERDATA_DEFS_H
00009 #define XSI_MIUSERDATA_DEFS_H
00010
00011 #include <shader.h>
00012
00013
00014
00015 #define XSIMR_INSTANCETRANSFORMDATA_LABEL 0x00004210
00016 #define XSIMR_INSTANCETRANSFORMDATA_VERSION 0x00000003
00017
00018 #define XSIMR_SHADOWINSTANCE_LABEL 0xf6a209ca // From random.org
00019
00020 typedef enum
00021 {
00022 E3DIF_Ignore = 0,
00023 E3DIF_Back = 1,
00024 E3DIF_Front = 2,
00025 E3DIF_Both = 3
00026 } xsimrInstanceFaceFlags;
00027
00028 #define miDONTCARE (miCBoolean)2
00029
00030 typedef struct
00031 {
00032 miCBoolean is_instance;
00033
00034 miCBoolean primary_visible;
00035
00036 miCBoolean transparent_receive;
00037 miCBoolean transparent_cast;
00038
00039 miCBoolean reflection_receive;
00040 miCBoolean reflection_cast;
00041
00042 miCBoolean refraction_receive;
00043 miCBoolean refraction_cast;
00044
00045 miCBoolean fg_receive;
00046 miCBoolean fg_cast;
00047 miCBoolean fg_visible;
00048
00049 miCBoolean gi_receive;
00050 miCBoolean gi_cast;
00051 miCBoolean gi_visible;
00052
00053 miCBoolean caustic_receive;
00054 miCBoolean caustic_cast;
00055 miCBoolean caustic_visible;
00056
00057 miCBoolean shadow_receive;
00058 miCBoolean shadow_cast;
00059
00060 xsimrInstanceFaceFlags face;
00061 } xsimrInstanceFlags;
00062
00063 typedef struct
00064 {
00065 miVector scaling;
00066 miVector translation;
00067 miQuaternion rotation;
00068 miQuaternion scale_orientation;
00069 } xsimrInstanceTransform;
00070
00071 typedef struct
00072 {
00073 miUint4 version;
00074 miCBoolean si_scaling;
00075 miCBoolean motionblur;
00076 xsimrInstanceFlags flags;
00077 xsimrInstanceTransform open_transform;
00078 xsimrInstanceTransform close_transform;
00079 } xsimrInstanceTransformData;
00080
00081
00082
00105 #define XSIMR_LIGHTDATA_LABEL 2860411
00115 typedef enum
00116 {
00117 XSIMR_LF_DIFFUSE = 1 << 0,
00118 XSIMR_LF_SPECULAR = 1 << 1
00119 } xsimrLightFlags;
00128 typedef struct
00129 {
00130 xsimrLightFlags flags;
00131 } xsimrLightData;
00135
00141 #define XSIMR_RENDERMAPDATA_LABEL 0x2C1ACA
00146
00147 #define XSIMR_PROFILECURVEDATA_LABEL 0x9FDDD497; // random.org
00148
00155 typedef enum
00156 {
00157 XSIMR_CE_CONSTANT = 1,
00158 XSIMR_CE_END_GRADIENT = 2,
00159 XSIMR_CE_CYCLE = 3,
00160 XSIMR_CE_CYCLE_RELATIVE = 4
00162 } xsimrCurveExtrapolation;
00178 typedef struct {
00179 xsimrCurveExtrapolation extrapolation_type;
00180 miInteger n_points;
00181 miVector2d points[ 1 ];
00182 } xsimrProfileCurveData;
00183
00184
00185
00186 #include <shader.h>
00187 #include <geoshader.h>
00188
00189 #define XSIMR_POINTCLOUDDATA_LABEL 0x613EC66E // random.org
00190
00191 #define XSIMR_POINTCLOUDDATA_VERSION 0x020000 // 2.0
00192
00199 typedef enum
00200 {
00201 xsimrSHAPE_POINT,
00202 xsimrSHAPE_SEGMENT,
00203 xsimrSHAPE_DISC,
00204 xsimrSHAPE_RECTANGLE,
00205 xsimrSHAPE_SPHERE,
00206 xsimrSHAPE_BOX,
00207 xsimrSHAPE_CYLINDER,
00208 xsimrSHAPE_CAPSULE,
00209 xsimrSHAPE_CONE,
00210 xsimrSHAPE_BLOB,
00211 xsimrNB_SIMPLE_SHAPES,
00213 xsimrSHAPE_INSTANCE = 128,
00214 } xsimrParticleShapeType;
00322 typedef struct
00323 {
00324 xsimrParticleShapeType type;
00325 miInteger instance_id;
00326 } xsimrParticleShape;
00327
00334 typedef enum
00335 {
00336 xsimrATTRIBUTE_BOOLEAN,
00337 xsimrATTRIBUTE_INTEGER,
00338 xsimrATTRIBUTE_SCALAR,
00339 xsimrATTRIBUTE_VECTOR2,
00340 xsimrATTRIBUTE_VECTOR3,
00341 xsimrATTRIBUTE_VECTOR4,
00342 xsimrATTRIBUTE_QUATERNION,
00343 xsimrATTRIBUTE_MATRIX33,
00344 xsimrATTRIBUTE_MATRIX44,
00345 xsimrATTRIBUTE_COLOR4,
00346 xsimrATTRIBUTE_ROTATION,
00347 xsimrATTRIBUTE_SHAPE,
00348 } xsimrAttributeType;
00387 typedef struct
00388 {
00391 miTag name;
00392
00396 xsimrAttributeType type;
00397
00407 miBoolean constant;
00408
00412 miUint size;
00413
00421 miTag offsets;
00422
00428 miTag data;
00429 } xsimrAttributeData;
00430
00431
00448 typedef struct
00449 {
00450 miUint version;
00451 miUint nb_particles;
00452 miTag positions;
00454 int i_data;
00455 int n_data;
00457 xsimrAttributeData attributes[ 1 ];
00458 } xsimrPointCloudData;
00459
00460
00461
00462
00472 #define XSIMR_POINTCLOUD_INDEX_LABEL 0x613EC66F
00473 #define XSIMR_ATTRIBUTE_SHADER_KEY "xsiATTR"
00483 typedef struct
00484 {
00485 miUint pc_index;
00486 } xsimrPointCloudIndex;
00490
00499 typedef struct
00500 {
00501 miScalar range_min;
00502 miScalar range_max;
00503 miInteger index;
00504 } xsimrTimeMapValue;
00505
00514 typedef struct
00515 {
00516 miInteger n_time_map;
00517 xsimrTimeMapValue time_map[ 1 ];
00518 } xsimrAttributeImageTimeMap;
00519
00521
00522
00523 #define XSIMR_CCLUT_GAMMA_LABEL 0x0A63EC03 // random.org
00524 #define XSIMR_CCLUT_1D_LABEL 0x0F2F2674 // random.org
00525 #define XSIMR_CCLUT_3D_LABEL 0x088F67E5 // random.org
00526
00527 typedef struct
00528 {
00529 miScalar r, g, b;
00530 } xsimrColor3;
00531
00532 typedef struct
00533 {
00534 miScalar red_gamma;
00535 miScalar green_gamma;
00536 miScalar blue_gamma;
00537 } xsimrCCLUTGamma;
00538
00539 typedef struct
00540 {
00541 miScalar from;
00542 miScalar to;
00543 } xsimrCCLUTMapTuple;
00544
00545 typedef struct
00546 {
00547 int i_tuple;
00548 int n_tuple;
00549 xsimrCCLUTMapTuple tuple[ 1 ];
00550 } xsimrCCLUTRangeMap;
00551
00552 typedef struct
00553 {
00554 xsimrCCLUTRangeMap red_range;
00555 xsimrCCLUTRangeMap green_range;
00556 xsimrCCLUTRangeMap blue_range;
00557
00558 int i_lut;
00559 int n_lut;
00560 xsimrColor3 lut[ 1 ];
00561 } xsimrCCLUT1D;
00562
00563 typedef struct
00564 {
00565 xsimrCCLUTRangeMap red_range;
00566 xsimrCCLUTRangeMap green_range;
00567 xsimrCCLUTRangeMap blue_range;
00568
00569
00570 int red_size;
00571 int green_size;
00572 int blue_size;
00573
00574 int i_lut;
00575 int n_lut;
00576 xsimrColor3 lut[ 1 ];
00577 } xsimrCCLUT3D;
00578
00579 #endif