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