1 /*
2     Copyright (c) 2008-2009 NetAllied Systems GmbH
3 
4     This file is part of COLLADAFramework.
5 
6     Licensed under the MIT Open Source License,
7     for details please see LICENSE file or the website
8     http://www.opensource.org/licenses/mit-license.php
9 */
10 
11 #ifndef __COLLADAFW_TYPES_H__
12 #define __COLLADAFW_TYPES_H__
13 
14 #include "COLLADAFWPrerequisites.h"
15 #include "COLLADAFWArrayPrimitiveType.h"
16 #include "Math/COLLADABUMathMatrix4.h"
17 
18 
19 namespace COLLADAFW
20 {
21     /** An array of unsigned int values. */
22 	typedef ArrayPrimitiveType<unsigned int> UIntValuesArray;
23 	typedef ArrayPrimitiveType<int> IntValuesArray;
24 
25 	typedef ArrayPrimitiveType<size_t> SizeTValuesArray;
26 
27 	typedef ArrayPrimitiveType<unsigned long long> ULongLongValuesArray;
28 	typedef ArrayPrimitiveType<long long> LongLongValuesArray;
29 
30 	typedef ArrayPrimitiveType<float> FloatArray;
31 	typedef ArrayPrimitiveType<double> DoubleArray;
32 
33 
34 	typedef Array<COLLADABU::Math::Matrix4> Matrix4Array;
35 
36 	//  typedef xsNCName String;
37 
38 	typedef unsigned long long ObjectId;
39 
40 	typedef unsigned long FileId;
41 
42 	typedef unsigned long MaterialId;
43 
44 	typedef unsigned long TextureMapId;
45 
46 	/** Data type to reference sampler. Used by texture.*/
47 	typedef size_t SamplerID;
48 
49 	static const SamplerID INVALID_SAMPLER_ID = -1;
50 	static const TextureMapId INVALID_MAP_ID = -1;
51 
52 	/** Enum listing all physical dimensions used in the data model.*/
53 	enum PhysicalDimension
54 	{
55 		PHYSICAL_DIMENSION_UNKNOWN,
56 		PHYSICAL_DIMENSION_TIME,
57 		PHYSICAL_DIMENSION_LENGTH,
58 		PHYSICAL_DIMENSION_ANGLE,
59 		PHYSICAL_DIMENSION_COLOR,
60 		PHYSICAL_DIMENSION_NUMBER
61 	};
62 
63 	typedef ArrayPrimitiveType<PhysicalDimension> PhysicalDimensionArray;
64 
65     // Element Type Enum
66     namespace COLLADA_TYPE
67     {
68         enum ClassId
69 		{
70             NO_TYPE = 0,
71             ANY = 1,
72             INPUTGLOBAL = 2,
73             INPUTLOCAL = 3,
74             INPUTLOCALOFFSET = 4,
75             INSTANCEWITHEXTRA = 5,
76             TARGETABLEFLOAT = 6,
77             TARGETABLEFLOAT3 = 7,
78             FX_SURFACE_FORMAT_HINT_COMMON = 8,
79             CHANNELS = 9,
80             RANGE = 10,
81             PRECISION = 11,
82             OPTION = 12,
83             FX_SURFACE_INIT_PLANAR_COMMON = 13,
84             ALL = 14,
85             FX_SURFACE_INIT_VOLUME_COMMON = 15,
86             PRIMARY = 16,
87             FX_SURFACE_INIT_CUBE_COMMON = 17,
88             ORDER = 18,
89             FACE = 19,
90             FX_SURFACE_INIT_FROM_COMMON = 20,
91             FX_SURFACE_COMMON = 21,
92             FORMAT = 22,
93             SIZE = 23,
94             VIEWPORT_RATIO = 24,
95             MIP_LEVELS = 25,
96             MIPMAP_GENERATE = 26,
97             FX_SAMPLER1D_COMMON = 27,
98             SOURCE = 28,
99             WRAP_S = 29,
100             MINFILTER = 30,
101             MAGFILTER = 31,
102             MIPFILTER = 32,
103             BORDER_COLOR = 33,
104             MIPMAP_MAXLEVEL = 34,
105             MIPMAP_BIAS = 35,
106             FX_SAMPLER2D_COMMON = 36,
107             WRAP_T = 37,
108             FX_SAMPLER3D_COMMON = 38,
109             WRAP_P = 39,
110             FX_SAMPLERCUBE_COMMON = 40,
111             FX_SAMPLERRECT_COMMON = 41,
112             FX_SAMPLERDEPTH_COMMON = 42,
113             FX_COLORTARGET_COMMON = 43,
114             FX_DEPTHTARGET_COMMON = 44,
115             FX_STENCILTARGET_COMMON = 45,
116             FX_CLEARCOLOR_COMMON = 46,
117             FX_CLEARDEPTH_COMMON = 47,
118             FX_CLEARSTENCIL_COMMON = 48,
119             FX_ANNOTATE_COMMON = 49,
120             FX_INCLUDE_COMMON = 50,
121             FX_NEWPARAM_COMMON = 51,
122             SEMANTIC = 52,
123             MODIFIER = 53,
124             FX_CODE_PROFILE = 54,
125             GL_SAMPLER1D = 55,
126             GL_SAMPLER2D = 56,
127             GL_SAMPLER3D = 57,
128             GL_SAMPLERCUBE = 58,
129             GL_SAMPLERRECT = 59,
130             GL_SAMPLERDEPTH = 60,
131             GLSL_NEWARRAY_TYPE = 61,
132             GLSL_SETARRAY_TYPE = 62,
133             GLSL_SURFACE_TYPE = 63,
134             GENERATOR = 64,
135             NAME = 65,
136             GLSL_NEWPARAM = 66,
137             GLSL_SETPARAM_SIMPLE = 67,
138             GLSL_SETPARAM = 68,
139             COMMON_FLOAT_OR_PARAM_TYPE = 69,
140             FLOAT = 70,
141             PARAM = 71,
142             COMMON_COLOR_OR_TEXTURE_TYPE = 72,
143             COLOR = 73,
144             TEXTURE = 74,
145             COMMON_TRANSPARENT_TYPE = 75,
146             COMMON_NEWPARAM_TYPE = 76,
147             FLOAT2 = 77,
148             FLOAT3 = 78,
149             FLOAT4 = 79,
150             CG_SAMPLER1D = 80,
151             CG_SAMPLER2D = 81,
152             CG_SAMPLER3D = 82,
153             CG_SAMPLERCUBE = 83,
154             CG_SAMPLERRECT = 84,
155             CG_SAMPLERDEPTH = 85,
156             CG_CONNECT_PARAM = 86,
157             CG_NEWARRAY_TYPE = 87,
158             CG_SETARRAY_TYPE = 88,
159             CG_SETUSER_TYPE = 89,
160             CG_SURFACE_TYPE = 90,
161             CG_NEWPARAM = 91,
162             CG_SETPARAM_SIMPLE = 92,
163             CG_SETPARAM = 93,
164             GLES_TEXTURE_CONSTANT_TYPE = 94,
165             GLES_TEXENV_COMMAND_TYPE = 95,
166             GLES_TEXCOMBINER_ARGUMENTRGB_TYPE = 96,
167             GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE = 97,
168             GLES_TEXCOMBINER_COMMANDRGB_TYPE = 98,
169             GLES_TEXCOMBINER_COMMANDALPHA_TYPE = 99,
170             GLES_TEXCOMBINER_COMMAND_TYPE = 100,
171             GLES_TEXTURE_PIPELINE = 101,
172             GLES_TEXTURE_UNIT = 102,
173             SURFACE = 103,
174             SAMPLER_STATE = 104,
175             TEXCOORD = 105,
176             GLES_SAMPLER_STATE = 106,
177             GLES_NEWPARAM = 107,
178             FX_SURFACE_INIT_COMMON = 108,
179             INIT_AS_NULL = 109,
180             INIT_AS_TARGET = 110,
181             FX_ANNOTATE_TYPE_COMMON = 111,
182             BOOL = 112,
183             BOOL2 = 113,
184             BOOL3 = 114,
185             BOOL4 = 115,
186             INT = 116,
187             INT2 = 117,
188             INT3 = 118,
189             INT4 = 119,
190             FLOAT2X2 = 120,
191             FLOAT3X3 = 121,
192             FLOAT4X4 = 122,
193             STRING = 123,
194             FX_BASIC_TYPE_COMMON = 124,
195             FLOAT1X1 = 125,
196             FLOAT1X2 = 126,
197             FLOAT1X3 = 127,
198             FLOAT1X4 = 128,
199             FLOAT2X1 = 129,
200             FLOAT2X3 = 130,
201             FLOAT2X4 = 131,
202             FLOAT3X1 = 132,
203             FLOAT3X2 = 133,
204             FLOAT3X4 = 134,
205             FLOAT4X1 = 135,
206             FLOAT4X2 = 136,
207             FLOAT4X3 = 137,
208             ENUM = 138,
209             GL_PIPELINE_SETTINGS = 139,
210             ALPHA_FUNC = 140,
211             FUNC = 141,
212             VALUE = 142,
213             BLEND_FUNC = 143,
214             SRC = 144,
215             DEST = 145,
216             BLEND_FUNC_SEPARATE = 146,
217             SRC_RGB = 147,
218             DEST_RGB = 148,
219             SRC_ALPHA = 149,
220             DEST_ALPHA = 150,
221             BLEND_EQUATION = 151,
222             BLEND_EQUATION_SEPARATE = 152,
223             RGB = 153,
224             ALPHA = 154,
225             COLOR_MATERIAL = 155,
226             MODE = 156,
227             CULL_FACE = 157,
228             DEPTH_FUNC = 158,
229             FOG_MODE = 159,
230             FOG_COORD_SRC = 160,
231             FRONT_FACE = 161,
232             LIGHT_MODEL_COLOR_CONTROL = 162,
233             LOGIC_OP = 163,
234             POLYGON_MODE = 164,
235             SHADE_MODEL = 165,
236             STENCIL_FUNC = 166,
237             REF = 167,
238             MASK = 168,
239             STENCIL_OP = 169,
240             FAIL = 170,
241             ZFAIL = 171,
242             ZPASS = 172,
243             STENCIL_FUNC_SEPARATE = 173,
244             FRONT = 174,
245             BACK = 175,
246             STENCIL_OP_SEPARATE = 176,
247             STENCIL_MASK_SEPARATE = 177,
248             LIGHT_ENABLE = 178,
249             LIGHT_AMBIENT = 179,
250             LIGHT_DIFFUSE = 180,
251             LIGHT_SPECULAR = 181,
252             LIGHT_POSITION = 182,
253             LIGHT_CONSTANT_ATTENUATION = 183,
254             LIGHT_LINEAR_ATTENUATION = 184,
255             LIGHT_QUADRATIC_ATTENUATION = 185,
256             LIGHT_SPOT_CUTOFF = 186,
257             LIGHT_SPOT_DIRECTION = 187,
258             LIGHT_SPOT_EXPONENT = 188,
259             TEXTURE1D = 189,
260             TEXTURE2D = 190,
261             TEXTURE3D = 191,
262             TEXTURECUBE = 192,
263             TEXTURERECT = 193,
264             TEXTUREDEPTH = 194,
265             TEXTURE1D_ENABLE = 195,
266             TEXTURE2D_ENABLE = 196,
267             TEXTURE3D_ENABLE = 197,
268             TEXTURECUBE_ENABLE = 198,
269             TEXTURERECT_ENABLE = 199,
270             TEXTUREDEPTH_ENABLE = 200,
271             TEXTURE_ENV_COLOR = 201,
272             TEXTURE_ENV_MODE = 202,
273             CLIP_PLANE = 203,
274             CLIP_PLANE_ENABLE = 204,
275             BLEND_COLOR = 205,
276             CLEAR_COLOR = 206,
277             CLEAR_STENCIL = 207,
278             CLEAR_DEPTH = 208,
279             COLOR_MASK = 209,
280             DEPTH_BOUNDS = 210,
281             DEPTH_MASK = 211,
282             DEPTH_RANGE = 212,
283             FOG_DENSITY = 213,
284             FOG_START = 214,
285             FOG_END = 215,
286             FOG_COLOR = 216,
287             LIGHT_MODEL_AMBIENT = 217,
288             LIGHTING_ENABLE = 218,
289             LINE_STIPPLE = 219,
290             LINE_WIDTH = 220,
291             MATERIAL_AMBIENT = 221,
292             MATERIAL_DIFFUSE = 222,
293             MATERIAL_EMISSION = 223,
294             MATERIAL_SHININESS = 224,
295             MATERIAL_SPECULAR = 225,
296             MODEL_VIEW_MATRIX = 226,
297             POINT_DISTANCE_ATTENUATION = 227,
298             POINT_FADE_THRESHOLD_SIZE = 228,
299             POINT_SIZE = 229,
300             POINT_SIZE_MIN = 230,
301             POINT_SIZE_MAX = 231,
302             POLYGON_OFFSET = 232,
303             PROJECTION_MATRIX = 233,
304             SCISSOR = 234,
305             STENCIL_MASK = 235,
306             ALPHA_TEST_ENABLE = 236,
307             AUTO_NORMAL_ENABLE = 237,
308             BLEND_ENABLE = 238,
309             COLOR_LOGIC_OP_ENABLE = 239,
310             COLOR_MATERIAL_ENABLE = 240,
311             CULL_FACE_ENABLE = 241,
312             DEPTH_BOUNDS_ENABLE = 242,
313             DEPTH_CLAMP_ENABLE = 243,
314             DEPTH_TEST_ENABLE = 244,
315             DITHER_ENABLE = 245,
316             FOG_ENABLE = 246,
317             LIGHT_MODEL_LOCAL_VIEWER_ENABLE = 247,
318             LIGHT_MODEL_TWO_SIDE_ENABLE = 248,
319             LINE_SMOOTH_ENABLE = 249,
320             LINE_STIPPLE_ENABLE = 250,
321             LOGIC_OP_ENABLE = 251,
322             MULTISAMPLE_ENABLE = 252,
323             NORMALIZE_ENABLE = 253,
324             POINT_SMOOTH_ENABLE = 254,
325             POLYGON_OFFSET_FILL_ENABLE = 255,
326             POLYGON_OFFSET_LINE_ENABLE = 256,
327             POLYGON_OFFSET_POINT_ENABLE = 257,
328             POLYGON_SMOOTH_ENABLE = 258,
329             POLYGON_STIPPLE_ENABLE = 259,
330             RESCALE_NORMAL_ENABLE = 260,
331             SAMPLE_ALPHA_TO_COVERAGE_ENABLE = 261,
332             SAMPLE_ALPHA_TO_ONE_ENABLE = 262,
333             SAMPLE_COVERAGE_ENABLE = 263,
334             SCISSOR_TEST_ENABLE = 264,
335             STENCIL_TEST_ENABLE = 265,
336             GLSL_PARAM_TYPE = 266,
337             CG_PARAM_TYPE = 267,
338             BOOL1 = 268,
339             BOOL1X1 = 269,
340             BOOL1X2 = 270,
341             BOOL1X3 = 271,
342             BOOL1X4 = 272,
343             BOOL2X1 = 273,
344             BOOL2X2 = 274,
345             BOOL2X3 = 275,
346             BOOL2X4 = 276,
347             BOOL3X1 = 277,
348             BOOL3X2 = 278,
349             BOOL3X3 = 279,
350             BOOL3X4 = 280,
351             BOOL4X1 = 281,
352             BOOL4X2 = 282,
353             BOOL4X3 = 283,
354             BOOL4X4 = 284,
355             FLOAT1 = 285,
356             INT1 = 286,
357             INT1X1 = 287,
358             INT1X2 = 288,
359             INT1X3 = 289,
360             INT1X4 = 290,
361             INT2X1 = 291,
362             INT2X2 = 292,
363             INT2X3 = 293,
364             INT2X4 = 294,
365             INT3X1 = 295,
366             INT3X2 = 296,
367             INT3X3 = 297,
368             INT3X4 = 298,
369             INT4X1 = 299,
370             INT4X2 = 300,
371             INT4X3 = 301,
372             INT4X4 = 302,
373             HALF = 303,
374             HALF1 = 304,
375             HALF2 = 305,
376             HALF3 = 306,
377             HALF4 = 307,
378             HALF1X1 = 308,
379             HALF1X2 = 309,
380             HALF1X3 = 310,
381             HALF1X4 = 311,
382             HALF2X1 = 312,
383             HALF2X2 = 313,
384             HALF2X3 = 314,
385             HALF2X4 = 315,
386             HALF3X1 = 316,
387             HALF3X2 = 317,
388             HALF3X3 = 318,
389             HALF3X4 = 319,
390             HALF4X1 = 320,
391             HALF4X2 = 321,
392             HALF4X3 = 322,
393             HALF4X4 = 323,
394             FIXED = 324,
395             FIXED1 = 325,
396             FIXED2 = 326,
397             FIXED3 = 327,
398             FIXED4 = 328,
399             FIXED1X1 = 329,
400             FIXED1X2 = 330,
401             FIXED1X3 = 331,
402             FIXED1X4 = 332,
403             FIXED2X1 = 333,
404             FIXED2X2 = 334,
405             FIXED2X3 = 335,
406             FIXED2X4 = 336,
407             FIXED3X1 = 337,
408             FIXED3X2 = 338,
409             FIXED3X3 = 339,
410             FIXED3X4 = 340,
411             FIXED4X1 = 341,
412             FIXED4X2 = 342,
413             FIXED4X3 = 343,
414             FIXED4X4 = 344,
415             GLES_PIPELINE_SETTINGS = 345,
416             TEXTURE_PIPELINE = 346,
417             LIGHT_LINEAR_ATTENUTATION = 347,
418             TEXTURE_PIPELINE_ENABLE = 348,
419             GLES_BASIC_TYPE_COMMON = 349,
420             COLLADA = 350,
421             SCENE = 351,
422             IDREF_ARRAY = 352,
423             NAME_ARRAY = 353,
424             BOOL_ARRAY = 354,
425             FLOAT_ARRAY = 355,
426             INT_ARRAY = 356,
427             ACCESSOR = 357,
428             TECHNIQUE_COMMON = 358,
429             GEOMETRY = 359,
430             MESH = 360,
431             SPLINE = 361,
432             CONTROL_VERTICES = 362,
433             P = 363,
434             LINES = 364,
435             LINESTRIPS = 365,
436             POLYGONS = 366,
437             PH = 367,
438             H = 368,
439             POLYLIST = 369,
440             VCOUNT = 370,
441             TRIANGLES = 371,
442             TRIFANS = 372,
443             TRISTRIPS = 373,
444             VERTICES = 374,
445             LOOKAT = 375,
446             MATRIX = 376,
447             ROTATE = 377,
448             SCALE = 378,
449             SKEW = 379,
450             TRANSLATE = 380,
451             IMAGE = 381,
452             DATA = 382,
453             INIT_FROM = 383,
454             LIGHT = 384,
455             AMBIENT = 385,
456             DIRECTIONAL = 386,
457             POINT = 387,
458             SPOT = 388,
459             MATERIAL = 389,
460             CAMERA = 390,
461             OPTICS = 391,
462             ORTHOGRAPHIC = 392,
463             PERSPECTIVE = 393,
464             IMAGER = 394,
465             ANIMATION = 395,
466             ANIMATION_CLIP = 396,
467             CHANNEL = 397,
468             SAMPLER = 398,
469             CONTROLLER = 399,
470             SKIN = 400,
471             BIND_SHAPE_MATRIX = 401,
472             JOINTS = 402,
473             VERTEX_WEIGHTS = 403,
474             V = 404,
475             MORPH = 405,
476             TARGETS = 406,
477             ASSET = 407,
478             CONTRIBUTOR = 408,
479             AUTHOR = 409,
480             AUTHORING_TOOL = 410,
481             COMMENTS = 411,
482             COPYRIGHT = 412,
483             SOURCE_DATA = 413,
484             CREATED = 414,
485             KEYWORDS = 415,
486             MODIFIED = 416,
487             REVISION = 417,
488             SUBJECT = 418,
489             TITLE = 419,
490             UNIT = 420,
491             UP_AXIS = 421,
492             EXTRA = 422,
493             TECHNIQUE = 423,
494             NODE = 424,
495             VISUAL_SCENE = 425,
496             EVALUATE_SCENE = 426,
497             RENDER = 427,
498             LAYER = 428,
499             BIND_MATERIAL = 429,
500             INSTANCE_CAMERA = 430,
501             INSTANCE_CONTROLLER = 431,
502             SKELETON = 432,
503             INSTANCE_EFFECT = 433,
504             TECHNIQUE_HINT = 434,
505             SETPARAM = 435,
506             INSTANCE_FORCE_FIELD = 436,
507             INSTANCE_GEOMETRY = 437,
508             INSTANCE_LIGHT = 438,
509             INSTANCE_MATERIAL = 439,
510             BIND = 440,
511             BIND_VERTEX_INPUT = 441,
512             INSTANCE_NODE = 442,
513             INSTANCE_PHYSICS_MATERIAL = 443,
514             INSTANCE_PHYSICS_MODEL = 444,
515             INSTANCE_RIGID_BODY = 445,
516             ANGULAR_VELOCITY = 446,
517             VELOCITY = 447,
518             DYNAMIC = 448,
519             MASS_FRAME = 449,
520             SHAPE = 450,
521             HOLLOW = 451,
522             INSTANCE_RIGID_CONSTRAINT = 452,
523             LIBRARY_ANIMATIONS = 453,
524             LIBRARY_ANIMATION_CLIPS = 454,
525             LIBRARY_CAMERAS = 455,
526             LIBRARY_CONTROLLERS = 456,
527             LIBRARY_GEOMETRIES = 457,
528             LIBRARY_EFFECTS = 458,
529             LIBRARY_FORCE_FIELDS = 459,
530             LIBRARY_IMAGES = 460,
531             LIBRARY_LIGHTS = 461,
532             LIBRARY_MATERIALS = 462,
533             LIBRARY_NODES = 463,
534             LIBRARY_PHYSICS_MATERIALS = 464,
535             LIBRARY_PHYSICS_MODELS = 465,
536             LIBRARY_PHYSICS_SCENES = 466,
537             LIBRARY_VISUAL_SCENES = 467,
538             FX_PROFILE_ABSTRACT = 468,
539             EFFECT = 469,
540             GL_HOOK_ABSTRACT = 470,
541             PROFILE_GLSL = 471,
542             PASS = 472,
543             DRAW = 473,
544             SHADER = 474,
545             COMPILER_TARGET = 475,
546             COMPILER_OPTIONS = 476,
547             PROFILE_COMMON = 477,
548             CONSTANT = 478,
549             LAMBERT = 479,
550             PHONG = 480,
551             BLINN = 481,
552             PROFILE_CG = 482,
553             PROFILE_GLES = 483,
554             COLOR_TARGET = 484,
555             DEPTH_TARGET = 485,
556             STENCIL_TARGET = 486,
557             COLOR_CLEAR = 487,
558             DEPTH_CLEAR = 488,
559             STENCIL_CLEAR = 489,
560             BOX = 490,
561             HALF_EXTENTS = 491,
562             PLANE = 492,
563             EQUATION = 493,
564             SPHERE = 494,
565             RADIUS = 495,
566             ELLIPSOID = 496,
567             CYLINDER = 497,
568             HEIGHT = 498,
569             TAPERED_CYLINDER = 499,
570             RADIUS1 = 500,
571             RADIUS2 = 501,
572             CAPSULE = 502,
573             TAPERED_CAPSULE = 503,
574             CONVEX_MESH = 504,
575             FORCE_FIELD = 505,
576             PHYSICS_MATERIAL = 506,
577             PHYSICS_SCENE = 507,
578             RIGID_BODY = 508,
579             RIGID_CONSTRAINT = 509,
580             REF_ATTACHMENT = 510,
581             ATTACHMENT = 511,
582             ENABLED = 512,
583             INTERPENETRATE = 513,
584             LIMITS = 514,
585             SWING_CONE_AND_TWIST = 515,
586             LINEAR = 516,
587             SPRING = 517,
588             ANGULAR = 518,
589             PHYSICS_MODEL = 519,
590 
591             PRIMITIVE_ELEMENT = 520,
592 
593             INSTANCE_VISUAL_SCENE = 521,
594             INSTANCE_SCENE_GRAPH = 522,
595 
596 			ANIMATIONLIST = 1000,
597 			SKIN_DATA = 1001,
598 
599 			FORMULA = 1002,
600 			FORMULAS = 1003,
601 
602 			JOINT = 1004,
603 			JOINTPRIMITIVE = 1005,
604 
605 			KINEMATICS_MODEL = 1006,
606 			KINEMATICS_CONTROLLER = 1007,
607 			INSTANCE_KINEMATICS_SCENE = 1008
608 
609 			}
610             ;
611 
612 
613 
614     }
615 
616 	typedef COLLADA_TYPE::ClassId ClassId;
617 
618 	/** Holding effect maps parameters loaded from <extra>. */
619 	struct TextureSamplerAndCoordsId
620 	{
TextureSamplerAndCoordsIdTextureSamplerAndCoordsId621 		TextureSamplerAndCoordsId() : samplerId( INVALID_SAMPLER_ID ), textureMapId( INVALID_MAP_ID ) {}
TextureSamplerAndCoordsIdTextureSamplerAndCoordsId622 		TextureSamplerAndCoordsId( const TextureSamplerAndCoordsId& pre ) : samplerId( pre.samplerId ), textureMapId( pre.textureMapId ) {}
~TextureSamplerAndCoordsIdTextureSamplerAndCoordsId623 		virtual ~TextureSamplerAndCoordsId() {}
624 
625 		SamplerID samplerId;
626 		TextureMapId textureMapId;
627 	};
628 	struct TextureAttributes : public TextureSamplerAndCoordsId
629 	{
TextureAttributesTextureAttributes630 		TextureAttributes() : TextureSamplerAndCoordsId(), textureSampler(), texCoord() {}
TextureAttributesTextureAttributes631 		TextureAttributes(const TextureAttributes& pre) : TextureSamplerAndCoordsId(pre), textureSampler( pre.textureSampler ), texCoord( pre.texCoord ) {}
632 		String textureSampler;
633 		String texCoord;
634 
cloneTextureAttributes635 		TextureAttributes* clone() const { return new TextureAttributes(*this); }
636 	};
637 
638 }
639 
640 #endif // __COLLADAFW_TYPES_H__
641