Collada Dom 1.4
Used by the geometry converter tool

Change-Id: Ifec30e54a5d041f82e9dfa293421e1c4335585fb
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..e604387
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,248 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH:= $(call my-dir)
+#src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp \
+#src/dae/daeZAEUncompressHandler.cpp \
+
+common_SRC_FILES := \
+    src/dae/dae.cpp \
+    src/dae/daeArray.cpp \
+    src/dae/daeAtomicType.cpp \
+    src/dae/daeDatabase.cpp \
+    src/dae/daeDocument.cpp \
+    src/dae/daeDom.cpp \
+    src/dae/daeElement.cpp \
+    src/dae/daeError.cpp \
+    src/dae/daeErrorHandler.cpp \
+    src/dae/daeIDRef.cpp \
+    src/dae/daeIOPluginCommon.cpp \
+    src/dae/daeMemorySystem.cpp \
+    src/dae/daeMetaAny.cpp \
+    src/dae/daeMetaAttribute.cpp \
+    src/dae/daeMetaCMPolicy.cpp \
+    src/dae/daeMetaChoice.cpp \
+    src/dae/daeMetaElement.cpp \
+    src/dae/daeMetaElementAttribute.cpp \
+    src/dae/daeMetaGroup.cpp \
+    src/dae/daeMetaSequence.cpp \
+    src/dae/daeRawResolver.cpp \
+    src/dae/daeRefCountedObj.cpp \
+    src/dae/daeSIDResolver.cpp \
+    src/dae/daeStandardURIResolver.cpp \
+    src/dae/daeStringRef.cpp \
+    src/dae/daeStringTable.cpp \
+    src/dae/daeTinyXMLPlugin.cpp \
+    src/dae/daeURI.cpp \
+    src/dae/daeUtils.cpp \
+    src/dae/domAny.cpp \
+    src/modules/stdErrPlugin/stdErrPlugin.cpp \
+    src/modules/STLDatabase/daeSTLDatabase.cpp \
+    src/1.4/dom/domAccessor.cpp \
+    src/1.4/dom/domAnimation.cpp \
+    src/1.4/dom/domAnimation_clip.cpp \
+    src/1.4/dom/domAsset.cpp \
+    src/1.4/dom/domBind_material.cpp \
+    src/1.4/dom/domBool_array.cpp \
+    src/1.4/dom/domBox.cpp \
+    src/1.4/dom/domCOLLADA.cpp \
+    src/1.4/dom/domCamera.cpp \
+    src/1.4/dom/domCapsule.cpp \
+    src/1.4/dom/domCg_connect_param.cpp \
+    src/1.4/dom/domCg_newarray_type.cpp \
+    src/1.4/dom/domCg_newparam.cpp \
+    src/1.4/dom/domCg_param_type.cpp \
+    src/1.4/dom/domCg_sampler1D.cpp \
+    src/1.4/dom/domCg_sampler2D.cpp \
+    src/1.4/dom/domCg_sampler3D.cpp \
+    src/1.4/dom/domCg_samplerCUBE.cpp \
+    src/1.4/dom/domCg_samplerDEPTH.cpp \
+    src/1.4/dom/domCg_samplerRECT.cpp \
+    src/1.4/dom/domCg_setarray_type.cpp \
+    src/1.4/dom/domCg_setparam.cpp \
+    src/1.4/dom/domCg_setparam_simple.cpp \
+    src/1.4/dom/domCg_setuser_type.cpp \
+    src/1.4/dom/domCg_surface_type.cpp \
+    src/1.4/dom/domChannel.cpp \
+    src/1.4/dom/domCommon_color_or_texture_type.cpp \
+    src/1.4/dom/domCommon_float_or_param_type.cpp \
+    src/1.4/dom/domCommon_newparam_type.cpp \
+    src/1.4/dom/domCommon_transparent_type.cpp \
+    src/1.4/dom/domConstants.cpp \
+    src/1.4/dom/domController.cpp \
+    src/1.4/dom/domConvex_mesh.cpp \
+    src/1.4/dom/domCylinder.cpp \
+    src/1.4/dom/domEffect.cpp \
+    src/1.4/dom/domEllipsoid.cpp \
+    src/1.4/dom/domExtra.cpp \
+    src/1.4/dom/domFloat_array.cpp \
+    src/1.4/dom/domForce_field.cpp \
+    src/1.4/dom/domFx_annotate_common.cpp \
+    src/1.4/dom/domFx_annotate_type_common.cpp \
+    src/1.4/dom/domFx_basic_type_common.cpp \
+    src/1.4/dom/domFx_clearcolor_common.cpp \
+    src/1.4/dom/domFx_cleardepth_common.cpp \
+    src/1.4/dom/domFx_clearstencil_common.cpp \
+    src/1.4/dom/domFx_code_profile.cpp \
+    src/1.4/dom/domFx_colortarget_common.cpp \
+    src/1.4/dom/domFx_depthtarget_common.cpp \
+    src/1.4/dom/domFx_include_common.cpp \
+    src/1.4/dom/domFx_newparam_common.cpp \
+    src/1.4/dom/domFx_profile_abstract.cpp \
+    src/1.4/dom/domFx_sampler1D_common.cpp \
+    src/1.4/dom/domFx_sampler2D_common.cpp \
+    src/1.4/dom/domFx_sampler3D_common.cpp \
+    src/1.4/dom/domFx_samplerCUBE_common.cpp \
+    src/1.4/dom/domFx_samplerDEPTH_common.cpp \
+    src/1.4/dom/domFx_samplerRECT_common.cpp \
+    src/1.4/dom/domFx_stenciltarget_common.cpp \
+    src/1.4/dom/domFx_surface_common.cpp \
+    src/1.4/dom/domFx_surface_format_hint_common.cpp \
+    src/1.4/dom/domFx_surface_init_common.cpp \
+    src/1.4/dom/domFx_surface_init_cube_common.cpp \
+    src/1.4/dom/domFx_surface_init_from_common.cpp \
+    src/1.4/dom/domFx_surface_init_planar_common.cpp \
+    src/1.4/dom/domFx_surface_init_volume_common.cpp \
+    src/1.4/dom/domGeometry.cpp \
+    src/1.4/dom/domGl_hook_abstract.cpp \
+    src/1.4/dom/domGl_pipeline_settings.cpp \
+    src/1.4/dom/domGl_sampler1D.cpp \
+    src/1.4/dom/domGl_sampler2D.cpp \
+    src/1.4/dom/domGl_sampler3D.cpp \
+    src/1.4/dom/domGl_samplerCUBE.cpp \
+    src/1.4/dom/domGl_samplerDEPTH.cpp \
+    src/1.4/dom/domGl_samplerRECT.cpp \
+    src/1.4/dom/domGles_basic_type_common.cpp \
+    src/1.4/dom/domGles_newparam.cpp \
+    src/1.4/dom/domGles_pipeline_settings.cpp \
+    src/1.4/dom/domGles_sampler_state.cpp \
+    src/1.4/dom/domGles_texcombiner_argumentAlpha_type.cpp \
+    src/1.4/dom/domGles_texcombiner_argumentRGB_type.cpp \
+    src/1.4/dom/domGles_texcombiner_commandAlpha_type.cpp \
+    src/1.4/dom/domGles_texcombiner_commandRGB_type.cpp \
+    src/1.4/dom/domGles_texcombiner_command_type.cpp \
+    src/1.4/dom/domGles_texenv_command_type.cpp \
+    src/1.4/dom/domGles_texture_constant_type.cpp \
+    src/1.4/dom/domGles_texture_pipeline.cpp \
+    src/1.4/dom/domGles_texture_unit.cpp \
+    src/1.4/dom/domGlsl_newarray_type.cpp \
+    src/1.4/dom/domGlsl_newparam.cpp \
+    src/1.4/dom/domGlsl_param_type.cpp \
+    src/1.4/dom/domGlsl_setarray_type.cpp \
+    src/1.4/dom/domGlsl_setparam.cpp \
+    src/1.4/dom/domGlsl_setparam_simple.cpp \
+    src/1.4/dom/domGlsl_surface_type.cpp \
+    src/1.4/dom/domIDREF_array.cpp \
+    src/1.4/dom/domImage.cpp \
+    src/1.4/dom/domInputGlobal.cpp \
+    src/1.4/dom/domInputLocal.cpp \
+    src/1.4/dom/domInputLocalOffset.cpp \
+    src/1.4/dom/domInstanceWithExtra.cpp \
+    src/1.4/dom/domInstance_camera.cpp \
+    src/1.4/dom/domInstance_controller.cpp \
+    src/1.4/dom/domInstance_effect.cpp \
+    src/1.4/dom/domInstance_force_field.cpp \
+    src/1.4/dom/domInstance_geometry.cpp \
+    src/1.4/dom/domInstance_light.cpp \
+    src/1.4/dom/domInstance_material.cpp \
+    src/1.4/dom/domInstance_node.cpp \
+    src/1.4/dom/domInstance_physics_material.cpp \
+    src/1.4/dom/domInstance_physics_model.cpp \
+    src/1.4/dom/domInstance_rigid_body.cpp \
+    src/1.4/dom/domInstance_rigid_constraint.cpp \
+    src/1.4/dom/domInt_array.cpp \
+    src/1.4/dom/domLibrary_animation_clips.cpp \
+    src/1.4/dom/domLibrary_animations.cpp \
+    src/1.4/dom/domLibrary_cameras.cpp \
+    src/1.4/dom/domLibrary_controllers.cpp \
+    src/1.4/dom/domLibrary_effects.cpp \
+    src/1.4/dom/domLibrary_force_fields.cpp \
+    src/1.4/dom/domLibrary_geometries.cpp \
+    src/1.4/dom/domLibrary_images.cpp \
+    src/1.4/dom/domLibrary_lights.cpp \
+    src/1.4/dom/domLibrary_materials.cpp \
+    src/1.4/dom/domLibrary_nodes.cpp \
+    src/1.4/dom/domLibrary_physics_materials.cpp \
+    src/1.4/dom/domLibrary_physics_models.cpp \
+    src/1.4/dom/domLibrary_physics_scenes.cpp \
+    src/1.4/dom/domLibrary_visual_scenes.cpp \
+    src/1.4/dom/domLight.cpp \
+    src/1.4/dom/domLines.cpp \
+    src/1.4/dom/domLinestrips.cpp \
+    src/1.4/dom/domLookat.cpp \
+    src/1.4/dom/domMaterial.cpp \
+    src/1.4/dom/domMatrix.cpp \
+    src/1.4/dom/domMesh.cpp \
+    src/1.4/dom/domMorph.cpp \
+    src/1.4/dom/domName_array.cpp \
+    src/1.4/dom/domNode.cpp \
+    src/1.4/dom/domP.cpp \
+    src/1.4/dom/domParam.cpp \
+    src/1.4/dom/domPhysics_material.cpp \
+    src/1.4/dom/domPhysics_model.cpp \
+    src/1.4/dom/domPhysics_scene.cpp \
+    src/1.4/dom/domPlane.cpp \
+    src/1.4/dom/domPolygons.cpp \
+    src/1.4/dom/domPolylist.cpp \
+    src/1.4/dom/domProfile_CG.cpp \
+    src/1.4/dom/domProfile_COMMON.cpp \
+    src/1.4/dom/domProfile_GLES.cpp \
+    src/1.4/dom/domProfile_GLSL.cpp \
+    src/1.4/dom/domRigid_body.cpp \
+    src/1.4/dom/domRigid_constraint.cpp \
+    src/1.4/dom/domRotate.cpp \
+    src/1.4/dom/domSampler.cpp \
+    src/1.4/dom/domScale.cpp \
+    src/1.4/dom/domSkew.cpp \
+    src/1.4/dom/domSkin.cpp \
+    src/1.4/dom/domSource.cpp \
+    src/1.4/dom/domSphere.cpp \
+    src/1.4/dom/domSpline.cpp \
+    src/1.4/dom/domTapered_capsule.cpp \
+    src/1.4/dom/domTapered_cylinder.cpp \
+    src/1.4/dom/domTargetableFloat.cpp \
+    src/1.4/dom/domTargetableFloat3.cpp \
+    src/1.4/dom/domTechnique.cpp \
+    src/1.4/dom/domTranslate.cpp \
+    src/1.4/dom/domTriangles.cpp \
+    src/1.4/dom/domTrifans.cpp \
+    src/1.4/dom/domTristrips.cpp \
+    src/1.4/dom/domTypes.cpp \
+    src/1.4/dom/domVertices.cpp \
+    src/1.4/dom/domVisual_scene.cpp
+
+pcre_intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libpcre,HOST,)/pcre
+pcrecpp_intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libpcrecpp,HOST,)/pcrecpp
+
+common_C_INCLUDES += \
+    $(LOCAL_PATH)/include \
+    $(LOCAL_PATH)/include/1.4 \
+    external/tinyxml \
+    external/pcre \
+    $(pcre_intermediates)/include \
+    $(pcrecpp_intermediates)/include
+
+# For the host
+# ========================================================
+include $(CLEAR_VARS)
+LOCAL_PRELINK_MODULE := false
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS += -DNO_BOOST -DDOM_INCLUDE_TINYXML -DNO_ZAE
+LOCAL_CFLAGS += -fPIC
+
+LOCAL_SRC_FILES := $(common_SRC_FILES)
+LOCAL_C_INCLUDES += $(common_C_INCLUDES)
+LOCAL_STATIC_LIBRARIES := libtinyxml
+LOCAL_MODULE:= colladadom
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/include/1.4/dom/domAccessor.h b/include/1.4/dom/domAccessor.h
new file mode 100755
index 0000000..a08622e
--- /dev/null
+++ b/include/1.4/dom/domAccessor.h
@@ -0,0 +1,154 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domAccessor_h__
+#define __domAccessor_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domParam.h>
+class DAE;
+
+/**
+ * The accessor element declares an access pattern to one of the array elements:
+ * float_array,  int_array, Name_array, bool_array, and IDREF_array. The accessor
+ * element describes access  to arrays that are organized in either an interleaved
+ * or non-interleaved manner, depending  on the offset and stride attributes.
+ */
+class domAccessor : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ACCESSOR; }
+	static daeInt ID() { return 609; }
+	virtual daeInt typeID() const { return ID(); }
+protected:  // Attributes
+/**
+ *  The count attribute indicates the number of times the array is accessed.
+ * Required attribute. 
+ */
+	domUint attrCount;
+/**
+ *  The offset attribute indicates the index of the first value to be read
+ * from the array.  The default value is 0. Optional attribute. 
+ */
+	domUint attrOffset;
+/**
+ *  The source attribute indicates the location of the array to access using
+ * a URL expression. Required attribute. 
+ */
+	xsAnyURI attrSource;
+/**
+ *  The stride attribute indicates number of values to be considered a unit
+ * during each access to  the array. The default value is 1, indicating that
+ * a single value is accessed. Optional attribute. 
+ */
+	domUint attrStride;
+
+protected:  // Element
+/**
+ *  The accessor element may have any number of param elements.  @see domParam
+ */
+	domParam_Array elemParam_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the count attribute.
+	 * @return Returns a domUint of the count attribute.
+	 */
+	domUint getCount() const { return attrCount; }
+	/**
+	 * Sets the count attribute.
+	 * @param atCount The new value for the count attribute.
+	 */
+	void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[0] = true; }
+
+	/**
+	 * Gets the offset attribute.
+	 * @return Returns a domUint of the offset attribute.
+	 */
+	domUint getOffset() const { return attrOffset; }
+	/**
+	 * Sets the offset attribute.
+	 * @param atOffset The new value for the offset attribute.
+	 */
+	void setOffset( domUint atOffset ) { attrOffset = atOffset; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a xsAnyURI reference of the source attribute.
+	 */
+	xsAnyURI &getSource() { return attrSource; }
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a constant xsAnyURI reference of the source attribute.
+	 */
+	const xsAnyURI &getSource() const { return attrSource; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[2] = true; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[2] = true; }
+
+	/**
+	 * Gets the stride attribute.
+	 * @return Returns a domUint of the stride attribute.
+	 */
+	domUint getStride() const { return attrStride; }
+	/**
+	 * Sets the stride attribute.
+	 * @param atStride The new value for the stride attribute.
+	 */
+	void setStride( domUint atStride ) { attrStride = atStride; _validAttributeArray[3] = true; }
+
+	/**
+	 * Gets the param element array.
+	 * @return Returns a reference to the array of param elements.
+	 */
+	domParam_Array &getParam_array() { return elemParam_array; }
+	/**
+	 * Gets the param element array.
+	 * @return Returns a constant reference to the array of param elements.
+	 */
+	const domParam_Array &getParam_array() const { return elemParam_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domAccessor(DAE& dae) : daeElement(dae), attrCount(), attrOffset(), attrSource(dae, *this), attrStride(), elemParam_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domAccessor() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domAccessor &operator=( const domAccessor &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domAnimation.h b/include/1.4/dom/domAnimation.h
new file mode 100755
index 0000000..5d25b7f
--- /dev/null
+++ b/include/1.4/dom/domAnimation.h
@@ -0,0 +1,212 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domAnimation_h__
+#define __domAnimation_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domAsset.h>
+#include <dom/domSource.h>
+#include <dom/domSampler.h>
+#include <dom/domChannel.h>
+#include <dom/domAnimation.h>
+#include <dom/domExtra.h>
+class DAE;
+
+/**
+ * The animation element categorizes the declaration of animation information.
+ * The animation  hierarchy contains elements that describe the animation’s
+ * key-frame data and sampler functions,  ordered in such a way to group together
+ * animations that should be executed together.
+ */
+class domAnimation : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANIMATION; }
+	static daeInt ID() { return 651; }
+	virtual daeInt typeID() const { return ID(); }
+protected:  // Attributes
+/**
+ *  The id attribute is a text string containing the unique identifier of
+ * this element. This value  must be unique within the instance document.
+ * Optional attribute. 
+ */
+	xsID attrId;
+/**
+ *  The name attribute is the text string name of this element. Optional attribute.
+ */
+	xsNCName attrName;
+
+protected:  // Elements
+/**
+ *  The animation element may contain an asset element.  @see domAsset
+ */
+	domAssetRef elemAsset;
+/**
+ *  The animation element may contain any number of source elements.  @see
+ * domSource
+ */
+	domSource_Array elemSource_array;
+/**
+ *  The animation element may contain any number of sampler elements.  @see
+ * domSampler
+ */
+	domSampler_Array elemSampler_array;
+/**
+ *  The animation element may contain any number of channel elements.  @see
+ * domChannel
+ */
+	domChannel_Array elemChannel_array;
+/**
+ *  The animation may be hierarchical and may contain any number of other
+ * animation elements.  @see domAnimation
+ */
+	domAnimation_Array elemAnimation_array;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the id attribute.
+	 * @return Returns a xsID of the id attribute.
+	 */
+	xsID getId() const { return attrId; }
+	/**
+	 * Sets the id attribute.
+	 * @param atId The new value for the id attribute.
+	 */
+	void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 
+		if( _document != NULL ) _document->changeElementID( this, attrId );
+	}
+
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a xsNCName of the name attribute.
+	 */
+	xsNCName getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the asset element.
+	 * @return a daeSmartRef to the asset element.
+	 */
+	const domAssetRef getAsset() const { return elemAsset; }
+	/**
+	 * Gets the source element array.
+	 * @return Returns a reference to the array of source elements.
+	 */
+	domSource_Array &getSource_array() { return elemSource_array; }
+	/**
+	 * Gets the source element array.
+	 * @return Returns a constant reference to the array of source elements.
+	 */
+	const domSource_Array &getSource_array() const { return elemSource_array; }
+	/**
+	 * Gets the sampler element array.
+	 * @return Returns a reference to the array of sampler elements.
+	 */
+	domSampler_Array &getSampler_array() { return elemSampler_array; }
+	/**
+	 * Gets the sampler element array.
+	 * @return Returns a constant reference to the array of sampler elements.
+	 */
+	const domSampler_Array &getSampler_array() const { return elemSampler_array; }
+	/**
+	 * Gets the channel element array.
+	 * @return Returns a reference to the array of channel elements.
+	 */
+	domChannel_Array &getChannel_array() { return elemChannel_array; }
+	/**
+	 * Gets the channel element array.
+	 * @return Returns a constant reference to the array of channel elements.
+	 */
+	const domChannel_Array &getChannel_array() const { return elemChannel_array; }
+	/**
+	 * Gets the animation element array.
+	 * @return Returns a reference to the array of animation elements.
+	 */
+	domAnimation_Array &getAnimation_array() { return elemAnimation_array; }
+	/**
+	 * Gets the animation element array.
+	 * @return Returns a constant reference to the array of animation elements.
+	 */
+	const domAnimation_Array &getAnimation_array() const { return elemAnimation_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domAnimation(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemSource_array(), elemSampler_array(), elemChannel_array(), elemAnimation_array(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domAnimation() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domAnimation &operator=( const domAnimation &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domAnimation_clip.h b/include/1.4/dom/domAnimation_clip.h
new file mode 100755
index 0000000..d3fb83a
--- /dev/null
+++ b/include/1.4/dom/domAnimation_clip.h
@@ -0,0 +1,174 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domAnimation_clip_h__
+#define __domAnimation_clip_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domAsset.h>
+#include <dom/domExtra.h>
+#include <dom/domInstanceWithExtra.h>
+class DAE;
+
+/**
+ * The animation_clip element defines a section of the animation curves to
+ * be used together as  an animation clip.
+ */
+class domAnimation_clip : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANIMATION_CLIP; }
+	static daeInt ID() { return 652; }
+	virtual daeInt typeID() const { return ID(); }
+protected:  // Attributes
+/**
+ *  The id attribute is a text string containing the unique identifier of
+ * this element.  This value must be unique within the instance document.
+ * Optional attribute. 
+ */
+	xsID attrId;
+/**
+ *  The name attribute is the text string name of this element. Optional attribute.
+ */
+	xsNCName attrName;
+/**
+ *  The start attribute is the time in seconds of the beginning of the clip.
+ * This time is  the same as that used in the key-frame data and is used to
+ * determine which set of  key-frames will be included in the clip.  The start
+ * time does not specify when the clip  will be played.  If the time falls
+ * between two keyframes of a referenced animation, an  interpolated value
+ * should be used.  The default value is 0.0.  Optional attribute. 
+ */
+	xsDouble attrStart;
+/**
+ *  The end attribute is the time in seconds of the end of the clip.  This
+ * is used in the  same way as the start time.  If end is not specified, the
+ * value is taken to be the end  time of the longest animation.  Optional
+ * attribute. 
+ */
+	xsDouble attrEnd;
+
+protected:  // Elements
+/**
+ *  The animation_clip element may contain an asset element.  @see domAsset
+ */
+	domAssetRef elemAsset;
+/**
+ * The animation_clip must instance at least one animation element. @see domInstance_animation
+ */
+	domInstanceWithExtra_Array elemInstance_animation_array;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the id attribute.
+	 * @return Returns a xsID of the id attribute.
+	 */
+	xsID getId() const { return attrId; }
+	/**
+	 * Sets the id attribute.
+	 * @param atId The new value for the id attribute.
+	 */
+	void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 
+		if( _document != NULL ) _document->changeElementID( this, attrId );
+	}
+
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a xsNCName of the name attribute.
+	 */
+	xsNCName getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the start attribute.
+	 * @return Returns a xsDouble of the start attribute.
+	 */
+	xsDouble getStart() const { return attrStart; }
+	/**
+	 * Sets the start attribute.
+	 * @param atStart The new value for the start attribute.
+	 */
+	void setStart( xsDouble atStart ) { attrStart = atStart; _validAttributeArray[2] = true; }
+
+	/**
+	 * Gets the end attribute.
+	 * @return Returns a xsDouble of the end attribute.
+	 */
+	xsDouble getEnd() const { return attrEnd; }
+	/**
+	 * Sets the end attribute.
+	 * @param atEnd The new value for the end attribute.
+	 */
+	void setEnd( xsDouble atEnd ) { attrEnd = atEnd; _validAttributeArray[3] = true; }
+
+	/**
+	 * Gets the asset element.
+	 * @return a daeSmartRef to the asset element.
+	 */
+	const domAssetRef getAsset() const { return elemAsset; }
+	/**
+	 * Gets the instance_animation element array.
+	 * @return Returns a reference to the array of instance_animation elements.
+	 */
+	domInstanceWithExtra_Array &getInstance_animation_array() { return elemInstance_animation_array; }
+	/**
+	 * Gets the instance_animation element array.
+	 * @return Returns a constant reference to the array of instance_animation elements.
+	 */
+	const domInstanceWithExtra_Array &getInstance_animation_array() const { return elemInstance_animation_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domAnimation_clip(DAE& dae) : daeElement(dae), attrId(), attrName(), attrStart(), attrEnd(), elemAsset(), elemInstance_animation_array(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domAnimation_clip() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domAnimation_clip &operator=( const domAnimation_clip &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domAsset.h b/include/1.4/dom/domAsset.h
new file mode 100755
index 0000000..c525c56
--- /dev/null
+++ b/include/1.4/dom/domAsset.h
@@ -0,0 +1,1101 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domAsset_h__
+#define __domAsset_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+class DAE;
+
+/**
+ * The asset element defines asset management information regarding its parent
+ * element.
+ */
+class domAsset : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ASSET; }
+	static daeInt ID() { return 664; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domContributor;
+
+	typedef daeSmartRef<domContributor> domContributorRef;
+	typedef daeTArray<domContributorRef> domContributor_Array;
+
+/**
+ * The contributor element defines authoring information for asset management
+ */
+	class domContributor : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONTRIBUTOR; }
+		static daeInt ID() { return 665; }
+		virtual daeInt typeID() const { return ID(); }
+	public:
+		class domAuthor;
+
+		typedef daeSmartRef<domAuthor> domAuthorRef;
+		typedef daeTArray<domAuthorRef> domAuthor_Array;
+
+/**
+ * The author element contains a string with the author's name. There may
+ * be only one author element.
+ */
+		class domAuthor : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AUTHOR; }
+			static daeInt ID() { return 666; }
+			virtual daeInt typeID() const { return ID(); }
+
+		protected:  // Value
+			/**
+			 * The xsString value of the text data of this element. 
+			 */
+			xsString _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsString of the value.
+			 */
+			xsString getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domAuthor(DAE& dae) : daeElement(dae), _value() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domAuthor() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domAuthor &operator=( const domAuthor &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+		class domAuthoring_tool;
+
+		typedef daeSmartRef<domAuthoring_tool> domAuthoring_toolRef;
+		typedef daeTArray<domAuthoring_toolRef> domAuthoring_tool_Array;
+
+/**
+ * The authoring_tool element contains a string with the authoring tool's
+ * name. There may be only one authoring_tool element.
+ */
+		class domAuthoring_tool : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::AUTHORING_TOOL; }
+			static daeInt ID() { return 667; }
+			virtual daeInt typeID() const { return ID(); }
+
+		protected:  // Value
+			/**
+			 * The xsString value of the text data of this element. 
+			 */
+			xsString _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsString of the value.
+			 */
+			xsString getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domAuthoring_tool(DAE& dae) : daeElement(dae), _value() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domAuthoring_tool() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domAuthoring_tool &operator=( const domAuthoring_tool &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+		class domComments;
+
+		typedef daeSmartRef<domComments> domCommentsRef;
+		typedef daeTArray<domCommentsRef> domComments_Array;
+
+/**
+ * The comments element contains a string with comments from this contributor.
+ * There may be only one comments element.
+ */
+		class domComments : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMENTS; }
+			static daeInt ID() { return 668; }
+			virtual daeInt typeID() const { return ID(); }
+
+		protected:  // Value
+			/**
+			 * The xsString value of the text data of this element. 
+			 */
+			xsString _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsString of the value.
+			 */
+			xsString getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domComments(DAE& dae) : daeElement(dae), _value() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domComments() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domComments &operator=( const domComments &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+		class domCopyright;
+
+		typedef daeSmartRef<domCopyright> domCopyrightRef;
+		typedef daeTArray<domCopyrightRef> domCopyright_Array;
+
+/**
+ * The copyright element contains a string with copyright information. There
+ * may be only one copyright element.
+ */
+		class domCopyright : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COPYRIGHT; }
+			static daeInt ID() { return 669; }
+			virtual daeInt typeID() const { return ID(); }
+
+		protected:  // Value
+			/**
+			 * The xsString value of the text data of this element. 
+			 */
+			xsString _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsString of the value.
+			 */
+			xsString getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domCopyright(DAE& dae) : daeElement(dae), _value() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domCopyright() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domCopyright &operator=( const domCopyright &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+		class domSource_data;
+
+		typedef daeSmartRef<domSource_data> domSource_dataRef;
+		typedef daeTArray<domSource_dataRef> domSource_data_Array;
+
+/**
+ * The source_data element contains a URI reference to the source data used
+ * for this asset. There may be only one source_data element.
+ */
+		class domSource_data : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCE_DATA; }
+			static daeInt ID() { return 670; }
+			virtual daeInt typeID() const { return ID(); }
+
+		protected:  // Value
+			/**
+			 * The xsAnyURI value of the text data of this element. 
+			 */
+			xsAnyURI _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsAnyURI of the value.
+			 */
+			xsAnyURI &getValue() { return _value; }
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a constant xsAnyURI of the value.
+			 */
+			const xsAnyURI &getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( const xsAnyURI &val ) { _value = val; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsString val ) { _value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domSource_data(DAE& dae) : daeElement(dae), _value(dae, *this) {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domSource_data() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domSource_data &operator=( const domSource_data &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+
+
+	protected:  // Elements
+/**
+ * The author element contains a string with the author's name. There may
+ * be only one author element. @see domAuthor
+ */
+		domAuthorRef elemAuthor;
+/**
+ * The authoring_tool element contains a string with the authoring tool's
+ * name. There may be only one authoring_tool element. @see domAuthoring_tool
+ */
+		domAuthoring_toolRef elemAuthoring_tool;
+/**
+ * The comments element contains a string with comments from this contributor.
+ * There may be only one comments element. @see domComments
+ */
+		domCommentsRef elemComments;
+/**
+ * The copyright element contains a string with copyright information. There
+ * may be only one copyright element. @see domCopyright
+ */
+		domCopyrightRef elemCopyright;
+/**
+ * The source_data element contains a URI reference to the source data used
+ * for this asset. There may be only one source_data element. @see domSource_data
+ */
+		domSource_dataRef elemSource_data;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the author element.
+		 * @return a daeSmartRef to the author element.
+		 */
+		const domAuthorRef getAuthor() const { return elemAuthor; }
+		/**
+		 * Gets the authoring_tool element.
+		 * @return a daeSmartRef to the authoring_tool element.
+		 */
+		const domAuthoring_toolRef getAuthoring_tool() const { return elemAuthoring_tool; }
+		/**
+		 * Gets the comments element.
+		 * @return a daeSmartRef to the comments element.
+		 */
+		const domCommentsRef getComments() const { return elemComments; }
+		/**
+		 * Gets the copyright element.
+		 * @return a daeSmartRef to the copyright element.
+		 */
+		const domCopyrightRef getCopyright() const { return elemCopyright; }
+		/**
+		 * Gets the source_data element.
+		 * @return a daeSmartRef to the source_data element.
+		 */
+		const domSource_dataRef getSource_data() const { return elemSource_data; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domContributor(DAE& dae) : daeElement(dae), elemAuthor(), elemAuthoring_tool(), elemComments(), elemCopyright(), elemSource_data() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domContributor() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domContributor &operator=( const domContributor &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domCreated;
+
+	typedef daeSmartRef<domCreated> domCreatedRef;
+	typedef daeTArray<domCreatedRef> domCreated_Array;
+
+/**
+ * The created element contains the date and time that the parent element
+ * was created and is  represented in an ISO 8601 format.  The created element
+ * may appear zero or one time.
+ */
+	class domCreated : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CREATED; }
+		static daeInt ID() { return 671; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsDateTime value of the text data of this element. 
+		 */
+		xsDateTime _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsDateTime of the value.
+		 */
+		xsDateTime getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsDateTime val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domCreated(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domCreated() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domCreated &operator=( const domCreated &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domKeywords;
+
+	typedef daeSmartRef<domKeywords> domKeywordsRef;
+	typedef daeTArray<domKeywordsRef> domKeywords_Array;
+
+/**
+ * The keywords element contains a list of words used as search criteria for
+ * the parent element.  The keywords element may appear zero or more times.
+ */
+	class domKeywords : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::KEYWORDS; }
+		static daeInt ID() { return 672; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsString value of the text data of this element. 
+		 */
+		xsString _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsString of the value.
+		 */
+		xsString getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domKeywords(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domKeywords() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domKeywords &operator=( const domKeywords &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domModified;
+
+	typedef daeSmartRef<domModified> domModifiedRef;
+	typedef daeTArray<domModifiedRef> domModified_Array;
+
+/**
+ * The modified element contains the date and time that the parent element
+ * was last modified and  represented in an ISO 8601 format. The modified
+ * element may appear zero or one time.
+ */
+	class domModified : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIED; }
+		static daeInt ID() { return 673; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsDateTime value of the text data of this element. 
+		 */
+		xsDateTime _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsDateTime of the value.
+		 */
+		xsDateTime getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsDateTime val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domModified(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domModified() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domModified &operator=( const domModified &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domRevision;
+
+	typedef daeSmartRef<domRevision> domRevisionRef;
+	typedef daeTArray<domRevisionRef> domRevision_Array;
+
+/**
+ * The revision element contains the revision information for the parent element.
+ * The revision  element may appear zero or one time.
+ */
+	class domRevision : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REVISION; }
+		static daeInt ID() { return 674; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsString value of the text data of this element. 
+		 */
+		xsString _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsString of the value.
+		 */
+		xsString getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domRevision(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domRevision() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domRevision &operator=( const domRevision &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domSubject;
+
+	typedef daeSmartRef<domSubject> domSubjectRef;
+	typedef daeTArray<domSubjectRef> domSubject_Array;
+
+/**
+ * The subject element contains a description of the topical subject of the
+ * parent element. The  subject element may appear zero or one time.
+ */
+	class domSubject : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SUBJECT; }
+		static daeInt ID() { return 675; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsString value of the text data of this element. 
+		 */
+		xsString _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsString of the value.
+		 */
+		xsString getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domSubject(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domSubject() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domSubject &operator=( const domSubject &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domTitle;
+
+	typedef daeSmartRef<domTitle> domTitleRef;
+	typedef daeTArray<domTitleRef> domTitle_Array;
+
+/**
+ * The title element contains the title information for the parent element.
+ * The title element may  appear zero or one time.
+ */
+	class domTitle : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TITLE; }
+		static daeInt ID() { return 676; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsString value of the text data of this element. 
+		 */
+		xsString _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsString of the value.
+		 */
+		xsString getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsString val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domTitle(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domTitle() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domTitle &operator=( const domTitle &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domUnit;
+
+	typedef daeSmartRef<domUnit> domUnitRef;
+	typedef daeTArray<domUnitRef> domUnit_Array;
+
+/**
+ * The unit element contains descriptive information about unit of measure.
+ * It has attributes for  the name of the unit and the measurement with respect
+ * to the meter. The unit element may appear  zero or one time.
+ */
+	class domUnit : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::UNIT; }
+		static daeInt ID() { return 677; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attributes
+/**
+ *  The meter attribute specifies the measurement with respect to the meter.
+ * The default  value for the meter attribute is “1.0”. 
+ */
+		domFloat attrMeter;
+/**
+ *  The name attribute specifies the name of the unit. The default value for
+ * the name  attribute is “meter”. 
+ */
+		xsNMTOKEN attrName;
+
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the meter attribute.
+		 * @return Returns a domFloat of the meter attribute.
+		 */
+		domFloat getMeter() const { return attrMeter; }
+		/**
+		 * Sets the meter attribute.
+		 * @param atMeter The new value for the meter attribute.
+		 */
+		void setMeter( domFloat atMeter ) { attrMeter = atMeter; _validAttributeArray[0] = true; }
+
+		/**
+		 * Gets the name attribute.
+		 * @return Returns a xsNMTOKEN of the name attribute.
+		 */
+		xsNMTOKEN getName() const { return attrName; }
+		/**
+		 * Sets the name attribute.
+		 * @param atName The new value for the name attribute.
+		 */
+		void setName( xsNMTOKEN atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domUnit(DAE& dae) : daeElement(dae), attrMeter(), attrName() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domUnit() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domUnit &operator=( const domUnit &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domUp_axis;
+
+	typedef daeSmartRef<domUp_axis> domUp_axisRef;
+	typedef daeTArray<domUp_axisRef> domUp_axis_Array;
+
+/**
+ * The up_axis element contains descriptive information about coordinate system
+ * of the geometric  data. All coordinates are right-handed by definition.
+ * This element specifies which axis is  considered up. The default is the
+ * Y-axis. The up_axis element may appear zero or one time.
+ */
+	class domUp_axis : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::UP_AXIS; }
+		static daeInt ID() { return 678; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domUpAxisType value of the text data of this element. 
+		 */
+		domUpAxisType _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domUpAxisType of the value.
+		 */
+		domUpAxisType getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domUpAxisType val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domUp_axis(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domUp_axis() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domUp_axis &operator=( const domUp_axis &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+/**
+ * The contributor element defines authoring information for asset management
+ * @see domContributor
+ */
+	domContributor_Array elemContributor_array;
+/**
+ * The created element contains the date and time that the parent element
+ * was created and is  represented in an ISO 8601 format.  The created element
+ * may appear zero or one time. @see domCreated
+ */
+	domCreatedRef elemCreated;
+/**
+ * The keywords element contains a list of words used as search criteria for
+ * the parent element.  The keywords element may appear zero or more times.
+ * @see domKeywords
+ */
+	domKeywordsRef elemKeywords;
+/**
+ * The modified element contains the date and time that the parent element
+ * was last modified and  represented in an ISO 8601 format. The modified
+ * element may appear zero or one time. @see domModified
+ */
+	domModifiedRef elemModified;
+/**
+ * The revision element contains the revision information for the parent element.
+ * The revision  element may appear zero or one time. @see domRevision
+ */
+	domRevisionRef elemRevision;
+/**
+ * The subject element contains a description of the topical subject of the
+ * parent element. The  subject element may appear zero or one time. @see
+ * domSubject
+ */
+	domSubjectRef elemSubject;
+/**
+ * The title element contains the title information for the parent element.
+ * The title element may  appear zero or one time. @see domTitle
+ */
+	domTitleRef elemTitle;
+/**
+ * The unit element contains descriptive information about unit of measure.
+ * It has attributes for  the name of the unit and the measurement with respect
+ * to the meter. The unit element may appear  zero or one time. @see domUnit
+ */
+	domUnitRef elemUnit;
+/**
+ * The up_axis element contains descriptive information about coordinate system
+ * of the geometric  data. All coordinates are right-handed by definition.
+ * This element specifies which axis is  considered up. The default is the
+ * Y-axis. The up_axis element may appear zero or one time. @see domUp_axis
+ */
+	domUp_axisRef elemUp_axis;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the contributor element array.
+	 * @return Returns a reference to the array of contributor elements.
+	 */
+	domContributor_Array &getContributor_array() { return elemContributor_array; }
+	/**
+	 * Gets the contributor element array.
+	 * @return Returns a constant reference to the array of contributor elements.
+	 */
+	const domContributor_Array &getContributor_array() const { return elemContributor_array; }
+	/**
+	 * Gets the created element.
+	 * @return a daeSmartRef to the created element.
+	 */
+	const domCreatedRef getCreated() const { return elemCreated; }
+	/**
+	 * Gets the keywords element.
+	 * @return a daeSmartRef to the keywords element.
+	 */
+	const domKeywordsRef getKeywords() const { return elemKeywords; }
+	/**
+	 * Gets the modified element.
+	 * @return a daeSmartRef to the modified element.
+	 */
+	const domModifiedRef getModified() const { return elemModified; }
+	/**
+	 * Gets the revision element.
+	 * @return a daeSmartRef to the revision element.
+	 */
+	const domRevisionRef getRevision() const { return elemRevision; }
+	/**
+	 * Gets the subject element.
+	 * @return a daeSmartRef to the subject element.
+	 */
+	const domSubjectRef getSubject() const { return elemSubject; }
+	/**
+	 * Gets the title element.
+	 * @return a daeSmartRef to the title element.
+	 */
+	const domTitleRef getTitle() const { return elemTitle; }
+	/**
+	 * Gets the unit element.
+	 * @return a daeSmartRef to the unit element.
+	 */
+	const domUnitRef getUnit() const { return elemUnit; }
+	/**
+	 * Gets the up_axis element.
+	 * @return a daeSmartRef to the up_axis element.
+	 */
+	const domUp_axisRef getUp_axis() const { return elemUp_axis; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domAsset(DAE& dae) : daeElement(dae), elemContributor_array(), elemCreated(), elemKeywords(), elemModified(), elemRevision(), elemSubject(), elemTitle(), elemUnit(), elemUp_axis() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domAsset() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domAsset &operator=( const domAsset &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domBind_material.h b/include/1.4/dom/domBind_material.h
new file mode 100755
index 0000000..98f353f
--- /dev/null
+++ b/include/1.4/dom/domBind_material.h
@@ -0,0 +1,185 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domBind_material_h__
+#define __domBind_material_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domParam.h>
+#include <dom/domTechnique.h>
+#include <dom/domExtra.h>
+#include <dom/domInstance_material.h>
+class DAE;
+
+/**
+ * Bind a specific material to a piece of geometry, binding varying and uniform
+ * parameters at the  same time.
+ */
+class domBind_material : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_MATERIAL; }
+	static daeInt ID() { return 686; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domTechnique_common;
+
+	typedef daeSmartRef<domTechnique_common> domTechnique_commonRef;
+	typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array;
+
+/**
+ * The technique_common element specifies the bind_material information for
+ * the common  profile which all COLLADA implementations need to support.
+ */
+	class domTechnique_common : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; }
+		static daeInt ID() { return 687; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Element
+/**
+ *  The instance_material element specifies the information needed to bind
+ * a geometry to a material. This element must appear at least once.  @see
+ * domInstance_material
+ */
+		domInstance_material_Array elemInstance_material_array;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the instance_material element array.
+		 * @return Returns a reference to the array of instance_material elements.
+		 */
+		domInstance_material_Array &getInstance_material_array() { return elemInstance_material_array; }
+		/**
+		 * Gets the instance_material element array.
+		 * @return Returns a constant reference to the array of instance_material elements.
+		 */
+		const domInstance_material_Array &getInstance_material_array() const { return elemInstance_material_array; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domTechnique_common(DAE& dae) : daeElement(dae), elemInstance_material_array() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domTechnique_common() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+/**
+ *  The bind_material element may contain any number of param elements.  @see
+ * domParam
+ */
+	domParam_Array elemParam_array;
+/**
+ * The technique_common element specifies the bind_material information for
+ * the common  profile which all COLLADA implementations need to support.
+ * @see domTechnique_common
+ */
+	domTechnique_commonRef elemTechnique_common;
+/**
+ *  This element may contain any number of non-common profile techniques.
+ * @see domTechnique
+ */
+	domTechnique_Array elemTechnique_array;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the param element array.
+	 * @return Returns a reference to the array of param elements.
+	 */
+	domParam_Array &getParam_array() { return elemParam_array; }
+	/**
+	 * Gets the param element array.
+	 * @return Returns a constant reference to the array of param elements.
+	 */
+	const domParam_Array &getParam_array() const { return elemParam_array; }
+	/**
+	 * Gets the technique_common element.
+	 * @return a daeSmartRef to the technique_common element.
+	 */
+	const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; }
+	/**
+	 * Gets the technique element array.
+	 * @return Returns a reference to the array of technique elements.
+	 */
+	domTechnique_Array &getTechnique_array() { return elemTechnique_array; }
+	/**
+	 * Gets the technique element array.
+	 * @return Returns a constant reference to the array of technique elements.
+	 */
+	const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domBind_material(DAE& dae) : daeElement(dae), elemParam_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domBind_material() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domBind_material &operator=( const domBind_material &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domBool_array.h b/include/1.4/dom/domBool_array.h
new file mode 100755
index 0000000..a710d6c
--- /dev/null
+++ b/include/1.4/dom/domBool_array.h
@@ -0,0 +1,132 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domBool_array_h__
+#define __domBool_array_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+class DAE;
+
+/**
+ * The bool_array element declares the storage for a homogenous array of boolean
+ * values.
+ */
+class domBool_array : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL_ARRAY; }
+	static daeInt ID() { return 606; }
+	virtual daeInt typeID() const { return ID(); }
+protected:  // Attributes
+/**
+ *  The id attribute is a text string containing the unique identifier of
+ * this element.  This value must be unique within the instance document.
+ * Optional attribute. 
+ */
+	xsID attrId;
+/**
+ *  The name attribute is the text string name of this element. Optional attribute.
+ */
+	xsNCName attrName;
+/**
+ *  The count attribute indicates the number of values in the array. Required
+ * attribute. 
+ */
+	domUint attrCount;
+
+protected:  // Value
+	/**
+	 * The domListOfBools value of the text data of this element. 
+	 */
+	domListOfBools _value;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the id attribute.
+	 * @return Returns a xsID of the id attribute.
+	 */
+	xsID getId() const { return attrId; }
+	/**
+	 * Sets the id attribute.
+	 * @param atId The new value for the id attribute.
+	 */
+	void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 
+		if( _document != NULL ) _document->changeElementID( this, attrId );
+	}
+
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a xsNCName of the name attribute.
+	 */
+	xsNCName getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the count attribute.
+	 * @return Returns a domUint of the count attribute.
+	 */
+	domUint getCount() const { return attrCount; }
+	/**
+	 * Sets the count attribute.
+	 * @param atCount The new value for the count attribute.
+	 */
+	void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[2] = true; }
+
+	/**
+	 * Gets the _value array.
+	 * @return Returns a domListOfBools reference of the _value array.
+	 */
+	domListOfBools &getValue() { return _value; }
+	/**
+	 * Gets the _value array.
+	 * @return Returns a constant domListOfBools reference of the _value array.
+	 */
+	const domListOfBools &getValue() const { return _value; }
+	/**
+	 * Sets the _value array.
+	 * @param val The new value for the _value array.
+	 */
+	void setValue( const domListOfBools &val ) { _value = val; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domBool_array(DAE& dae) : daeElement(dae), attrId(), attrName(), attrCount(), _value() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domBool_array() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domBool_array &operator=( const domBool_array &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domBox.h b/include/1.4/dom/domBox.h
new file mode 100755
index 0000000..dddf24a
--- /dev/null
+++ b/include/1.4/dom/domBox.h
@@ -0,0 +1,152 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domBox_h__
+#define __domBox_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domExtra.h>
+class DAE;
+
+/**
+ * An axis-aligned, centered box primitive.
+ */
+class domBox : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOX; }
+	static daeInt ID() { return 767; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domHalf_extents;
+
+	typedef daeSmartRef<domHalf_extents> domHalf_extentsRef;
+	typedef daeTArray<domHalf_extentsRef> domHalf_extents_Array;
+
+/**
+ * 3 float values that represent the extents of the box
+ */
+	class domHalf_extents : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF_EXTENTS; }
+		static daeInt ID() { return 768; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domFloat3 value of the text data of this element. 
+		 */
+		domFloat3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domFloat3 reference of the _value array.
+		 */
+		domFloat3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domFloat3 reference of the _value array.
+		 */
+		const domFloat3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domFloat3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf_extents(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf_extents() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf_extents &operator=( const domHalf_extents &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+/**
+ * 3 float values that represent the extents of the box @see domHalf_extents
+ */
+	domHalf_extentsRef elemHalf_extents;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the half_extents element.
+	 * @return a daeSmartRef to the half_extents element.
+	 */
+	const domHalf_extentsRef getHalf_extents() const { return elemHalf_extents; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domBox(DAE& dae) : daeElement(dae), elemHalf_extents(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domBox() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domBox &operator=( const domBox &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCOLLADA.h b/include/1.4/dom/domCOLLADA.h
new file mode 100755
index 0000000..b94a2e0
--- /dev/null
+++ b/include/1.4/dom/domCOLLADA.h
@@ -0,0 +1,522 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCOLLADA_h__
+#define __domCOLLADA_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domAsset.h>
+#include <dom/domLibrary_animations.h>
+#include <dom/domLibrary_animation_clips.h>
+#include <dom/domLibrary_cameras.h>
+#include <dom/domLibrary_controllers.h>
+#include <dom/domLibrary_geometries.h>
+#include <dom/domLibrary_effects.h>
+#include <dom/domLibrary_force_fields.h>
+#include <dom/domLibrary_images.h>
+#include <dom/domLibrary_lights.h>
+#include <dom/domLibrary_materials.h>
+#include <dom/domLibrary_nodes.h>
+#include <dom/domLibrary_physics_materials.h>
+#include <dom/domLibrary_physics_models.h>
+#include <dom/domLibrary_physics_scenes.h>
+#include <dom/domLibrary_visual_scenes.h>
+#include <dom/domExtra.h>
+#include <dom/domInstanceWithExtra.h>
+class DAE;
+
+/**
+ * The COLLADA element declares the root of the document that comprises some
+ * of the content  in the COLLADA schema.
+ */
+class domCOLLADA : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLLADA; }
+	static daeInt ID() { return 602; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domScene;
+
+	typedef daeSmartRef<domScene> domSceneRef;
+	typedef daeTArray<domSceneRef> domScene_Array;
+
+/**
+ * The scene embodies the entire set of information that can be visualized
+ * from the  contents of a COLLADA resource. The scene element declares the
+ * base of the scene  hierarchy or scene graph. The scene contains elements
+ * that comprise much of the  visual and transformational information content
+ * as created by the authoring tools.
+ */
+	class domScene : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SCENE; }
+		static daeInt ID() { return 603; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Elements
+/**
+ * The instance_physics_scene element declares the instantiation of a COLLADA
+ * physics_scene resource. The instance_physics_scene element may appear any
+ * number of times. @see domInstance_physics_scene
+ */
+		domInstanceWithExtra_Array elemInstance_physics_scene_array;
+/**
+ * The instance_visual_scene element declares the instantiation of a COLLADA
+ * visual_scene resource. The instance_visual_scene element may only appear
+ * once. @see domInstance_visual_scene
+ */
+		domInstanceWithExtraRef elemInstance_visual_scene;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+		domExtra_Array elemExtra_array;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the instance_physics_scene element array.
+		 * @return Returns a reference to the array of instance_physics_scene elements.
+		 */
+		domInstanceWithExtra_Array &getInstance_physics_scene_array() { return elemInstance_physics_scene_array; }
+		/**
+		 * Gets the instance_physics_scene element array.
+		 * @return Returns a constant reference to the array of instance_physics_scene elements.
+		 */
+		const domInstanceWithExtra_Array &getInstance_physics_scene_array() const { return elemInstance_physics_scene_array; }
+		/**
+		 * Gets the instance_visual_scene element.
+		 * @return a daeSmartRef to the instance_visual_scene element.
+		 */
+		const domInstanceWithExtraRef getInstance_visual_scene() const { return elemInstance_visual_scene; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a reference to the array of extra elements.
+		 */
+		domExtra_Array &getExtra_array() { return elemExtra_array; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a constant reference to the array of extra elements.
+		 */
+		const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domScene(DAE& dae) : daeElement(dae), elemInstance_physics_scene_array(), elemInstance_visual_scene(), elemExtra_array() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domScene() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domScene &operator=( const domScene &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+protected:  // Attributes
+	/**
+	 * This element may specify its own xmlns.
+	 */
+	xsAnyURI attrXmlns;
+/**
+ *  The version attribute is the COLLADA schema revision with which the instance
+ * document  conforms. Required Attribute. 
+ */
+	domVersionType attrVersion;
+/**
+ *  The xml:base attribute allows you to define the base URI for this COLLADA
+ * document. See http://www.w3.org/TR/xmlbase/ for more information. 
+ */
+	xsAnyURI attrXml_base;
+
+protected:  // Elements
+/**
+ *  The COLLADA element must contain an asset element.  @see domAsset
+ */
+	domAssetRef elemAsset;
+/**
+ *  The COLLADA element may contain any number of library_animations elements.
+ * @see domLibrary_animations
+ */
+	domLibrary_animations_Array elemLibrary_animations_array;
+/**
+ *  The COLLADA element may contain any number of library_animation_clips
+ * elements.  @see domLibrary_animation_clips
+ */
+	domLibrary_animation_clips_Array elemLibrary_animation_clips_array;
+/**
+ *  The COLLADA element may contain any number of library_cameras elements.
+ * @see domLibrary_cameras
+ */
+	domLibrary_cameras_Array elemLibrary_cameras_array;
+/**
+ *  The COLLADA element may contain any number of library_controllerss elements.
+ * @see domLibrary_controllers
+ */
+	domLibrary_controllers_Array elemLibrary_controllers_array;
+/**
+ *  The COLLADA element may contain any number of library_geometriess elements.
+ * @see domLibrary_geometries
+ */
+	domLibrary_geometries_Array elemLibrary_geometries_array;
+/**
+ *  The COLLADA element may contain any number of library_effects elements.
+ * @see domLibrary_effects
+ */
+	domLibrary_effects_Array elemLibrary_effects_array;
+/**
+ *  The COLLADA element may contain any number of library_force_fields elements.
+ * @see domLibrary_force_fields
+ */
+	domLibrary_force_fields_Array elemLibrary_force_fields_array;
+/**
+ *  The COLLADA element may contain any number of library_images elements.
+ * @see domLibrary_images
+ */
+	domLibrary_images_Array elemLibrary_images_array;
+/**
+ *  The COLLADA element may contain any number of library_lights elements.
+ * @see domLibrary_lights
+ */
+	domLibrary_lights_Array elemLibrary_lights_array;
+/**
+ *  The COLLADA element may contain any number of library_materials elements.
+ * @see domLibrary_materials
+ */
+	domLibrary_materials_Array elemLibrary_materials_array;
+/**
+ *  The COLLADA element may contain any number of library_nodes elements.
+ * @see domLibrary_nodes
+ */
+	domLibrary_nodes_Array elemLibrary_nodes_array;
+/**
+ *  The COLLADA element may contain any number of library_materials elements.
+ * @see domLibrary_physics_materials
+ */
+	domLibrary_physics_materials_Array elemLibrary_physics_materials_array;
+/**
+ *  The COLLADA element may contain any number of library_physics_models elements.
+ * @see domLibrary_physics_models
+ */
+	domLibrary_physics_models_Array elemLibrary_physics_models_array;
+/**
+ *  The COLLADA element may contain any number of library_physics_scenes elements.
+ * @see domLibrary_physics_scenes
+ */
+	domLibrary_physics_scenes_Array elemLibrary_physics_scenes_array;
+/**
+ *  The COLLADA element may contain any number of library_visual_scenes elements.
+ * @see domLibrary_visual_scenes
+ */
+	domLibrary_visual_scenes_Array elemLibrary_visual_scenes_array;
+/**
+ * The scene embodies the entire set of information that can be visualized
+ * from the  contents of a COLLADA resource. The scene element declares the
+ * base of the scene  hierarchy or scene graph. The scene contains elements
+ * that comprise much of the  visual and transformational information content
+ * as created by the authoring tools. @see domScene
+ */
+	domSceneRef elemScene;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the xmlns attribute.
+	 * @return Returns a xsAnyURI reference of the xmlns attribute.
+	 */
+	xsAnyURI &getXmlns() { return attrXmlns; }
+	/**
+	 * Gets the xmlns attribute.
+	 * @return Returns a constant xsAnyURI reference of the xmlns attribute.
+	 */
+	const xsAnyURI &getXmlns() const { return attrXmlns; }
+	/**
+	 * Sets the xmlns attribute.
+	 * @param xmlns The new value for the xmlns attribute.
+	 */
+	void setXmlns( const xsAnyURI &xmlns ) { attrXmlns = xmlns;
+	 _validAttributeArray[0] = true; }
+
+	/**
+	 * Gets the version attribute.
+	 * @return Returns a domVersionType of the version attribute.
+	 */
+	domVersionType getVersion() const { return attrVersion; }
+	/**
+	 * Sets the version attribute.
+	 * @param atVersion The new value for the version attribute.
+	 */
+	void setVersion( domVersionType atVersion ) { attrVersion = atVersion; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the xml_base attribute.
+	 * @return Returns a xsAnyURI reference of the xml_base attribute.
+	 */
+	xsAnyURI &getXml_base() { return attrXml_base; }
+	/**
+	 * Gets the xml_base attribute.
+	 * @return Returns a constant xsAnyURI reference of the xml_base attribute.
+	 */
+	const xsAnyURI &getXml_base() const { return attrXml_base; }
+	/**
+	 * Sets the xml_base attribute.
+	 * @param atXml_base The new value for the xml_base attribute.
+	 */
+	void setXml_base( const xsAnyURI &atXml_base ) { attrXml_base = atXml_base; _validAttributeArray[2] = true; }
+	/**
+	 * Sets the xml_base attribute.
+	 * @param atXml_base The new value for the xml_base attribute.
+	 */
+	void setXml_base( xsString atXml_base ) { attrXml_base = atXml_base; _validAttributeArray[2] = true; }
+
+	/**
+	 * Gets the asset element.
+	 * @return a daeSmartRef to the asset element.
+	 */
+	const domAssetRef getAsset() const { return elemAsset; }
+	/**
+	 * Gets the library_animations element array.
+	 * @return Returns a reference to the array of library_animations elements.
+	 */
+	domLibrary_animations_Array &getLibrary_animations_array() { return elemLibrary_animations_array; }
+	/**
+	 * Gets the library_animations element array.
+	 * @return Returns a constant reference to the array of library_animations elements.
+	 */
+	const domLibrary_animations_Array &getLibrary_animations_array() const { return elemLibrary_animations_array; }
+	/**
+	 * Gets the library_animation_clips element array.
+	 * @return Returns a reference to the array of library_animation_clips elements.
+	 */
+	domLibrary_animation_clips_Array &getLibrary_animation_clips_array() { return elemLibrary_animation_clips_array; }
+	/**
+	 * Gets the library_animation_clips element array.
+	 * @return Returns a constant reference to the array of library_animation_clips elements.
+	 */
+	const domLibrary_animation_clips_Array &getLibrary_animation_clips_array() const { return elemLibrary_animation_clips_array; }
+	/**
+	 * Gets the library_cameras element array.
+	 * @return Returns a reference to the array of library_cameras elements.
+	 */
+	domLibrary_cameras_Array &getLibrary_cameras_array() { return elemLibrary_cameras_array; }
+	/**
+	 * Gets the library_cameras element array.
+	 * @return Returns a constant reference to the array of library_cameras elements.
+	 */
+	const domLibrary_cameras_Array &getLibrary_cameras_array() const { return elemLibrary_cameras_array; }
+	/**
+	 * Gets the library_controllers element array.
+	 * @return Returns a reference to the array of library_controllers elements.
+	 */
+	domLibrary_controllers_Array &getLibrary_controllers_array() { return elemLibrary_controllers_array; }
+	/**
+	 * Gets the library_controllers element array.
+	 * @return Returns a constant reference to the array of library_controllers elements.
+	 */
+	const domLibrary_controllers_Array &getLibrary_controllers_array() const { return elemLibrary_controllers_array; }
+	/**
+	 * Gets the library_geometries element array.
+	 * @return Returns a reference to the array of library_geometries elements.
+	 */
+	domLibrary_geometries_Array &getLibrary_geometries_array() { return elemLibrary_geometries_array; }
+	/**
+	 * Gets the library_geometries element array.
+	 * @return Returns a constant reference to the array of library_geometries elements.
+	 */
+	const domLibrary_geometries_Array &getLibrary_geometries_array() const { return elemLibrary_geometries_array; }
+	/**
+	 * Gets the library_effects element array.
+	 * @return Returns a reference to the array of library_effects elements.
+	 */
+	domLibrary_effects_Array &getLibrary_effects_array() { return elemLibrary_effects_array; }
+	/**
+	 * Gets the library_effects element array.
+	 * @return Returns a constant reference to the array of library_effects elements.
+	 */
+	const domLibrary_effects_Array &getLibrary_effects_array() const { return elemLibrary_effects_array; }
+	/**
+	 * Gets the library_force_fields element array.
+	 * @return Returns a reference to the array of library_force_fields elements.
+	 */
+	domLibrary_force_fields_Array &getLibrary_force_fields_array() { return elemLibrary_force_fields_array; }
+	/**
+	 * Gets the library_force_fields element array.
+	 * @return Returns a constant reference to the array of library_force_fields elements.
+	 */
+	const domLibrary_force_fields_Array &getLibrary_force_fields_array() const { return elemLibrary_force_fields_array; }
+	/**
+	 * Gets the library_images element array.
+	 * @return Returns a reference to the array of library_images elements.
+	 */
+	domLibrary_images_Array &getLibrary_images_array() { return elemLibrary_images_array; }
+	/**
+	 * Gets the library_images element array.
+	 * @return Returns a constant reference to the array of library_images elements.
+	 */
+	const domLibrary_images_Array &getLibrary_images_array() const { return elemLibrary_images_array; }
+	/**
+	 * Gets the library_lights element array.
+	 * @return Returns a reference to the array of library_lights elements.
+	 */
+	domLibrary_lights_Array &getLibrary_lights_array() { return elemLibrary_lights_array; }
+	/**
+	 * Gets the library_lights element array.
+	 * @return Returns a constant reference to the array of library_lights elements.
+	 */
+	const domLibrary_lights_Array &getLibrary_lights_array() const { return elemLibrary_lights_array; }
+	/**
+	 * Gets the library_materials element array.
+	 * @return Returns a reference to the array of library_materials elements.
+	 */
+	domLibrary_materials_Array &getLibrary_materials_array() { return elemLibrary_materials_array; }
+	/**
+	 * Gets the library_materials element array.
+	 * @return Returns a constant reference to the array of library_materials elements.
+	 */
+	const domLibrary_materials_Array &getLibrary_materials_array() const { return elemLibrary_materials_array; }
+	/**
+	 * Gets the library_nodes element array.
+	 * @return Returns a reference to the array of library_nodes elements.
+	 */
+	domLibrary_nodes_Array &getLibrary_nodes_array() { return elemLibrary_nodes_array; }
+	/**
+	 * Gets the library_nodes element array.
+	 * @return Returns a constant reference to the array of library_nodes elements.
+	 */
+	const domLibrary_nodes_Array &getLibrary_nodes_array() const { return elemLibrary_nodes_array; }
+	/**
+	 * Gets the library_physics_materials element array.
+	 * @return Returns a reference to the array of library_physics_materials elements.
+	 */
+	domLibrary_physics_materials_Array &getLibrary_physics_materials_array() { return elemLibrary_physics_materials_array; }
+	/**
+	 * Gets the library_physics_materials element array.
+	 * @return Returns a constant reference to the array of library_physics_materials elements.
+	 */
+	const domLibrary_physics_materials_Array &getLibrary_physics_materials_array() const { return elemLibrary_physics_materials_array; }
+	/**
+	 * Gets the library_physics_models element array.
+	 * @return Returns a reference to the array of library_physics_models elements.
+	 */
+	domLibrary_physics_models_Array &getLibrary_physics_models_array() { return elemLibrary_physics_models_array; }
+	/**
+	 * Gets the library_physics_models element array.
+	 * @return Returns a constant reference to the array of library_physics_models elements.
+	 */
+	const domLibrary_physics_models_Array &getLibrary_physics_models_array() const { return elemLibrary_physics_models_array; }
+	/**
+	 * Gets the library_physics_scenes element array.
+	 * @return Returns a reference to the array of library_physics_scenes elements.
+	 */
+	domLibrary_physics_scenes_Array &getLibrary_physics_scenes_array() { return elemLibrary_physics_scenes_array; }
+	/**
+	 * Gets the library_physics_scenes element array.
+	 * @return Returns a constant reference to the array of library_physics_scenes elements.
+	 */
+	const domLibrary_physics_scenes_Array &getLibrary_physics_scenes_array() const { return elemLibrary_physics_scenes_array; }
+	/**
+	 * Gets the library_visual_scenes element array.
+	 * @return Returns a reference to the array of library_visual_scenes elements.
+	 */
+	domLibrary_visual_scenes_Array &getLibrary_visual_scenes_array() { return elemLibrary_visual_scenes_array; }
+	/**
+	 * Gets the library_visual_scenes element array.
+	 * @return Returns a constant reference to the array of library_visual_scenes elements.
+	 */
+	const domLibrary_visual_scenes_Array &getLibrary_visual_scenes_array() const { return elemLibrary_visual_scenes_array; }
+	/**
+	 * Gets the scene element.
+	 * @return a daeSmartRef to the scene element.
+	 */
+	const domSceneRef getScene() const { return elemScene; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCOLLADA(DAE& dae) : daeElement(dae), attrXmlns(dae, *this), attrVersion(), attrXml_base(dae, *this), elemAsset(), elemLibrary_animations_array(), elemLibrary_animation_clips_array(), elemLibrary_cameras_array(), elemLibrary_controllers_array(), elemLibrary_geometries_array(), elemLibrary_effects_array(), elemLibrary_force_fields_array(), elemLibrary_images_array(), elemLibrary_lights_array(), elemLibrary_materials_array(), elemLibrary_nodes_array(), elemLibrary_physics_materials_array(), elemLibrary_physics_models_array(), elemLibrary_physics_scenes_array(), elemLibrary_visual_scenes_array(), elemScene(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCOLLADA() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCOLLADA &operator=( const domCOLLADA &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCamera.h b/include/1.4/dom/domCamera.h
new file mode 100755
index 0000000..18f19ec
--- /dev/null
+++ b/include/1.4/dom/domCamera.h
@@ -0,0 +1,653 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCamera_h__
+#define __domCamera_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domAsset.h>
+#include <dom/domExtra.h>
+#include <dom/domTechnique.h>
+#include <dom/domTargetableFloat.h>
+class DAE;
+
+/**
+ * The camera element declares a view into the scene hierarchy or scene graph.
+ * The camera contains  elements that describe the camera’s optics and imager.
+ */
+class domCamera : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CAMERA; }
+	static daeInt ID() { return 645; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domOptics;
+
+	typedef daeSmartRef<domOptics> domOpticsRef;
+	typedef daeTArray<domOpticsRef> domOptics_Array;
+
+/**
+ * Optics represents the apparatus on a camera that projects the image onto
+ * the image sensor.
+ */
+	class domOptics : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::OPTICS; }
+		static daeInt ID() { return 646; }
+		virtual daeInt typeID() const { return ID(); }
+	public:
+		class domTechnique_common;
+
+		typedef daeSmartRef<domTechnique_common> domTechnique_commonRef;
+		typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array;
+
+/**
+ * The technique_common element specifies the optics information for the common
+ * profile  which all COLLADA implementations need to support.
+ */
+		class domTechnique_common : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; }
+			static daeInt ID() { return 647; }
+			virtual daeInt typeID() const { return ID(); }
+		public:
+			class domOrthographic;
+
+			typedef daeSmartRef<domOrthographic> domOrthographicRef;
+			typedef daeTArray<domOrthographicRef> domOrthographic_Array;
+
+/**
+ * The orthographic element describes the field of view of an orthographic
+ * camera.
+ */
+			class domOrthographic : public daeElement
+			{
+			public:
+				virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ORTHOGRAPHIC; }
+				static daeInt ID() { return 648; }
+				virtual daeInt typeID() const { return ID(); }
+
+			protected:  // Elements
+/**
+ * The xmag element contains a floating point number describing the horizontal
+ * magnification of the view. @see domXmag
+ */
+				domTargetableFloatRef elemXmag;
+/**
+ * The ymag element contains a floating point number describing the vertical
+ * magnification of the view.  It can also have a sid. @see domYmag
+ */
+				domTargetableFloatRef elemYmag;
+/**
+ * The aspect_ratio element contains a floating point number describing the
+ * aspect ratio of  the field of view. If the aspect_ratio element is not
+ * present the aspect ratio is to be  calculated from the xmag or ymag elements
+ * and the current viewport. @see domAspect_ratio
+ */
+				domTargetableFloatRef elemAspect_ratio;
+/**
+ * The znear element contains a floating point number that describes the distance
+ * to the near  clipping plane. The znear element must occur exactly once.
+ * @see domZnear
+ */
+				domTargetableFloatRef elemZnear;
+/**
+ * The zfar element contains a floating point number that describes the distance
+ * to the far  clipping plane. The zfar element must occur exactly once. @see
+ * domZfar
+ */
+				domTargetableFloatRef elemZfar;
+				/**
+				 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+				 */
+				daeElementRefArray _contents;
+				/**
+				 * Used to preserve order in elements that have a complex content model.
+				 */
+				daeUIntArray       _contentsOrder;
+
+				/**
+				 * Used to store information needed for some content model objects.
+				 */
+				daeTArray< daeCharArray * > _CMData;
+
+
+			public:	//Accessors and Mutators
+				/**
+				 * Gets the xmag element.
+				 * @return a daeSmartRef to the xmag element.
+				 */
+				const domTargetableFloatRef getXmag() const { return elemXmag; }
+				/**
+				 * Gets the ymag element.
+				 * @return a daeSmartRef to the ymag element.
+				 */
+				const domTargetableFloatRef getYmag() const { return elemYmag; }
+				/**
+				 * Gets the aspect_ratio element.
+				 * @return a daeSmartRef to the aspect_ratio element.
+				 */
+				const domTargetableFloatRef getAspect_ratio() const { return elemAspect_ratio; }
+				/**
+				 * Gets the znear element.
+				 * @return a daeSmartRef to the znear element.
+				 */
+				const domTargetableFloatRef getZnear() const { return elemZnear; }
+				/**
+				 * Gets the zfar element.
+				 * @return a daeSmartRef to the zfar element.
+				 */
+				const domTargetableFloatRef getZfar() const { return elemZfar; }
+				/**
+				 * Gets the _contents array.
+				 * @return Returns a reference to the _contents element array.
+				 */
+				daeElementRefArray &getContents() { return _contents; }
+				/**
+				 * Gets the _contents array.
+				 * @return Returns a constant reference to the _contents element array.
+				 */
+				const daeElementRefArray &getContents() const { return _contents; }
+
+			protected:
+				/**
+				 * Constructor
+				 */
+				domOrthographic(DAE& dae) : daeElement(dae), elemXmag(), elemYmag(), elemAspect_ratio(), elemZnear(), elemZfar() {}
+				/**
+				 * Destructor
+				 */
+				virtual ~domOrthographic() { daeElement::deleteCMDataArray(_CMData); }
+				/**
+				 * Overloaded assignment operator
+				 */
+				virtual domOrthographic &operator=( const domOrthographic &cpy ) { (void)cpy; return *this; }
+
+			public: // STATIC METHODS
+				/**
+				 * Creates an instance of this class and returns a daeElementRef referencing it.
+				 * @return a daeElementRef referencing an instance of this object.
+				 */
+				static DLLSPEC daeElementRef create(DAE& dae);
+				/**
+				 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+				 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+				 * @return A daeMetaElement describing this COLLADA element.
+				 */
+				static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+			};
+
+			class domPerspective;
+
+			typedef daeSmartRef<domPerspective> domPerspectiveRef;
+			typedef daeTArray<domPerspectiveRef> domPerspective_Array;
+
+/**
+ * The perspective element describes the optics of a perspective camera.
+ */
+			class domPerspective : public daeElement
+			{
+			public:
+				virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PERSPECTIVE; }
+				static daeInt ID() { return 649; }
+				virtual daeInt typeID() const { return ID(); }
+
+			protected:  // Elements
+/**
+ * The xfov element contains a floating point number describing the horizontal
+ * field of view in degrees. @see domXfov
+ */
+				domTargetableFloatRef elemXfov;
+/**
+ * The yfov element contains a floating point number describing the verticle
+ * field of view in degrees. @see domYfov
+ */
+				domTargetableFloatRef elemYfov;
+/**
+ * The aspect_ratio element contains a floating point number describing the
+ * aspect ratio of the field  of view. If the aspect_ratio element is not
+ * present the aspect ratio is to be calculated from the  xfov or yfov elements
+ * and the current viewport. @see domAspect_ratio
+ */
+				domTargetableFloatRef elemAspect_ratio;
+/**
+ * The znear element contains a floating point number that describes the distance
+ * to the near  clipping plane. The znear element must occur exactly once.
+ * @see domZnear
+ */
+				domTargetableFloatRef elemZnear;
+/**
+ * The zfar element contains a floating point number that describes the distance
+ * to the far  clipping plane. The zfar element must occur exactly once. @see
+ * domZfar
+ */
+				domTargetableFloatRef elemZfar;
+				/**
+				 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+				 */
+				daeElementRefArray _contents;
+				/**
+				 * Used to preserve order in elements that have a complex content model.
+				 */
+				daeUIntArray       _contentsOrder;
+
+				/**
+				 * Used to store information needed for some content model objects.
+				 */
+				daeTArray< daeCharArray * > _CMData;
+
+
+			public:	//Accessors and Mutators
+				/**
+				 * Gets the xfov element.
+				 * @return a daeSmartRef to the xfov element.
+				 */
+				const domTargetableFloatRef getXfov() const { return elemXfov; }
+				/**
+				 * Gets the yfov element.
+				 * @return a daeSmartRef to the yfov element.
+				 */
+				const domTargetableFloatRef getYfov() const { return elemYfov; }
+				/**
+				 * Gets the aspect_ratio element.
+				 * @return a daeSmartRef to the aspect_ratio element.
+				 */
+				const domTargetableFloatRef getAspect_ratio() const { return elemAspect_ratio; }
+				/**
+				 * Gets the znear element.
+				 * @return a daeSmartRef to the znear element.
+				 */
+				const domTargetableFloatRef getZnear() const { return elemZnear; }
+				/**
+				 * Gets the zfar element.
+				 * @return a daeSmartRef to the zfar element.
+				 */
+				const domTargetableFloatRef getZfar() const { return elemZfar; }
+				/**
+				 * Gets the _contents array.
+				 * @return Returns a reference to the _contents element array.
+				 */
+				daeElementRefArray &getContents() { return _contents; }
+				/**
+				 * Gets the _contents array.
+				 * @return Returns a constant reference to the _contents element array.
+				 */
+				const daeElementRefArray &getContents() const { return _contents; }
+
+			protected:
+				/**
+				 * Constructor
+				 */
+				domPerspective(DAE& dae) : daeElement(dae), elemXfov(), elemYfov(), elemAspect_ratio(), elemZnear(), elemZfar() {}
+				/**
+				 * Destructor
+				 */
+				virtual ~domPerspective() { daeElement::deleteCMDataArray(_CMData); }
+				/**
+				 * Overloaded assignment operator
+				 */
+				virtual domPerspective &operator=( const domPerspective &cpy ) { (void)cpy; return *this; }
+
+			public: // STATIC METHODS
+				/**
+				 * Creates an instance of this class and returns a daeElementRef referencing it.
+				 * @return a daeElementRef referencing an instance of this object.
+				 */
+				static DLLSPEC daeElementRef create(DAE& dae);
+				/**
+				 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+				 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+				 * @return A daeMetaElement describing this COLLADA element.
+				 */
+				static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+			};
+
+
+
+		protected:  // Elements
+/**
+ * The orthographic element describes the field of view of an orthographic
+ * camera. @see domOrthographic
+ */
+			domOrthographicRef elemOrthographic;
+/**
+ * The perspective element describes the optics of a perspective camera. @see
+ * domPerspective
+ */
+			domPerspectiveRef elemPerspective;
+			/**
+			 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+			 */
+			daeElementRefArray _contents;
+			/**
+			 * Used to preserve order in elements that have a complex content model.
+			 */
+			daeUIntArray       _contentsOrder;
+
+			/**
+			 * Used to store information needed for some content model objects.
+			 */
+			daeTArray< daeCharArray * > _CMData;
+
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the orthographic element.
+			 * @return a daeSmartRef to the orthographic element.
+			 */
+			const domOrthographicRef getOrthographic() const { return elemOrthographic; }
+			/**
+			 * Gets the perspective element.
+			 * @return a daeSmartRef to the perspective element.
+			 */
+			const domPerspectiveRef getPerspective() const { return elemPerspective; }
+			/**
+			 * Gets the _contents array.
+			 * @return Returns a reference to the _contents element array.
+			 */
+			daeElementRefArray &getContents() { return _contents; }
+			/**
+			 * Gets the _contents array.
+			 * @return Returns a constant reference to the _contents element array.
+			 */
+			const daeElementRefArray &getContents() const { return _contents; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domTechnique_common(DAE& dae) : daeElement(dae), elemOrthographic(), elemPerspective() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); }
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+
+
+	protected:  // Elements
+/**
+ * The technique_common element specifies the optics information for the common
+ * profile  which all COLLADA implementations need to support. @see domTechnique_common
+ */
+		domTechnique_commonRef elemTechnique_common;
+/**
+ *  This element may contain any number of non-common profile techniques.
+ * @see domTechnique
+ */
+		domTechnique_Array elemTechnique_array;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+		domExtra_Array elemExtra_array;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the technique_common element.
+		 * @return a daeSmartRef to the technique_common element.
+		 */
+		const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; }
+		/**
+		 * Gets the technique element array.
+		 * @return Returns a reference to the array of technique elements.
+		 */
+		domTechnique_Array &getTechnique_array() { return elemTechnique_array; }
+		/**
+		 * Gets the technique element array.
+		 * @return Returns a constant reference to the array of technique elements.
+		 */
+		const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a reference to the array of extra elements.
+		 */
+		domExtra_Array &getExtra_array() { return elemExtra_array; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a constant reference to the array of extra elements.
+		 */
+		const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domOptics(DAE& dae) : daeElement(dae), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domOptics() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domOptics &operator=( const domOptics &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domImager;
+
+	typedef daeSmartRef<domImager> domImagerRef;
+	typedef daeTArray<domImagerRef> domImager_Array;
+
+/**
+ * Imagers represent the image sensor of a camera (for example film or CCD).
+ */
+	class domImager : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::IMAGER; }
+		static daeInt ID() { return 650; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Elements
+/**
+ *  This element may contain any number of non-common profile techniques.
+ * There is no common technique for imager.  @see domTechnique
+ */
+		domTechnique_Array elemTechnique_array;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+		domExtra_Array elemExtra_array;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the technique element array.
+		 * @return Returns a reference to the array of technique elements.
+		 */
+		domTechnique_Array &getTechnique_array() { return elemTechnique_array; }
+		/**
+		 * Gets the technique element array.
+		 * @return Returns a constant reference to the array of technique elements.
+		 */
+		const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a reference to the array of extra elements.
+		 */
+		domExtra_Array &getExtra_array() { return elemExtra_array; }
+		/**
+		 * Gets the extra element array.
+		 * @return Returns a constant reference to the array of extra elements.
+		 */
+		const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domImager(DAE& dae) : daeElement(dae), elemTechnique_array(), elemExtra_array() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domImager() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domImager &operator=( const domImager &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+protected:  // Attributes
+/**
+ *  The id attribute is a text string containing the unique identifier of
+ * this element. This value  must be unique within the instance document.
+ * Optional attribute. 
+ */
+	xsID attrId;
+/**
+ *  The name attribute is the text string name of this element. Optional attribute.
+ */
+	xsNCName attrName;
+
+protected:  // Elements
+/**
+ *  The camera element may contain an asset element.  @see domAsset
+ */
+	domAssetRef elemAsset;
+/**
+ * Optics represents the apparatus on a camera that projects the image onto
+ * the image sensor. @see domOptics
+ */
+	domOpticsRef elemOptics;
+/**
+ * Imagers represent the image sensor of a camera (for example film or CCD).
+ * @see domImager
+ */
+	domImagerRef elemImager;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the id attribute.
+	 * @return Returns a xsID of the id attribute.
+	 */
+	xsID getId() const { return attrId; }
+	/**
+	 * Sets the id attribute.
+	 * @param atId The new value for the id attribute.
+	 */
+	void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 
+		if( _document != NULL ) _document->changeElementID( this, attrId );
+	}
+
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a xsNCName of the name attribute.
+	 */
+	xsNCName getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
+
+	/**
+	 * Gets the asset element.
+	 * @return a daeSmartRef to the asset element.
+	 */
+	const domAssetRef getAsset() const { return elemAsset; }
+	/**
+	 * Gets the optics element.
+	 * @return a daeSmartRef to the optics element.
+	 */
+	const domOpticsRef getOptics() const { return elemOptics; }
+	/**
+	 * Gets the imager element.
+	 * @return a daeSmartRef to the imager element.
+	 */
+	const domImagerRef getImager() const { return elemImager; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCamera(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemOptics(), elemImager(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCamera() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCamera &operator=( const domCamera &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCapsule.h b/include/1.4/dom/domCapsule.h
new file mode 100755
index 0000000..622edb4
--- /dev/null
+++ b/include/1.4/dom/domCapsule.h
@@ -0,0 +1,225 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCapsule_h__
+#define __domCapsule_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domExtra.h>
+class DAE;
+
+/**
+ * A capsule primitive that is centered on and aligned with the local Y axis.
+ */
+class domCapsule : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CAPSULE; }
+	static daeInt ID() { return 782; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domHeight;
+
+	typedef daeSmartRef<domHeight> domHeightRef;
+	typedef daeTArray<domHeightRef> domHeight_Array;
+
+/**
+ * A float value that represents the length of the line segment connecting
+ * the centers  of the capping hemispheres.
+ */
+	class domHeight : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HEIGHT; }
+		static daeInt ID() { return 783; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domFloat value of the text data of this element. 
+		 */
+		domFloat _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domFloat of the value.
+		 */
+		domFloat getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domFloat val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHeight(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHeight() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHeight &operator=( const domHeight &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domRadius;
+
+	typedef daeSmartRef<domRadius> domRadiusRef;
+	typedef daeTArray<domRadiusRef> domRadius_Array;
+
+/**
+ * Two float values that represent the radii of the capsule (it may be elliptical)
+ */
+	class domRadius : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RADIUS; }
+		static daeInt ID() { return 784; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domFloat2 value of the text data of this element. 
+		 */
+		domFloat2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domFloat2 reference of the _value array.
+		 */
+		domFloat2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domFloat2 reference of the _value array.
+		 */
+		const domFloat2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domFloat2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domRadius(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domRadius() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domRadius &operator=( const domRadius &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+/**
+ * A float value that represents the length of the line segment connecting
+ * the centers  of the capping hemispheres. @see domHeight
+ */
+	domHeightRef elemHeight;
+/**
+ * Two float values that represent the radii of the capsule (it may be elliptical)
+ * @see domRadius
+ */
+	domRadiusRef elemRadius;
+/**
+ *  The extra element may appear any number of times.  @see domExtra
+ */
+	domExtra_Array elemExtra_array;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the height element.
+	 * @return a daeSmartRef to the height element.
+	 */
+	const domHeightRef getHeight() const { return elemHeight; }
+	/**
+	 * Gets the radius element.
+	 * @return a daeSmartRef to the radius element.
+	 */
+	const domRadiusRef getRadius() const { return elemRadius; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a reference to the array of extra elements.
+	 */
+	domExtra_Array &getExtra_array() { return elemExtra_array; }
+	/**
+	 * Gets the extra element array.
+	 * @return Returns a constant reference to the array of extra elements.
+	 */
+	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCapsule(DAE& dae) : daeElement(dae), elemHeight(), elemRadius(), elemExtra_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCapsule() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCapsule &operator=( const domCapsule &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_connect_param.h b/include/1.4/dom/domCg_connect_param.h
new file mode 100755
index 0000000..2ee530f
--- /dev/null
+++ b/include/1.4/dom/domCg_connect_param.h
@@ -0,0 +1,105 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_connect_param_h__
+#define __domCg_connect_param_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+class DAE;
+
+/**
+ * Creates a symbolic connection between two previously defined parameters.
+ */
+class domCg_connect_param_complexType 
+{
+protected:  // Attribute
+	domCg_identifier attrRef;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_connect_param_complexType(DAE& dae, daeElement* elt) : attrRef() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_connect_param_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_connect_param_complexType &operator=( const domCg_connect_param_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_connect_param_complexType.
+ */
+class domCg_connect_param : public daeElement, public domCg_connect_param_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_CONNECT_PARAM; }
+	static daeInt ID() { return 133; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_connect_param(DAE& dae) : daeElement(dae), domCg_connect_param_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_connect_param() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_connect_param &operator=( const domCg_connect_param &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_newarray_type.h b/include/1.4/dom/domCg_newarray_type.h
new file mode 100755
index 0000000..2de88d8
--- /dev/null
+++ b/include/1.4/dom/domCg_newarray_type.h
@@ -0,0 +1,189 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_newarray_type_h__
+#define __domCg_newarray_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domCg_newarray_type.h>
+#include <dom/domCg_setuser_type.h>
+#include <dom/domCg_connect_param.h>
+class DAE;
+
+/**
+ * Creates a parameter of a one-dimensional array type.
+ */
+class domCg_newarray_type_complexType 
+{
+protected:  // Attribute
+/**
+ *  The length attribute specifies the length of the array. 
+ */
+	xsPositiveInteger attrLength;
+
+protected:  // Elements
+	domCg_param_type_Array elemCg_param_type_array;
+/**
+ * Nested array elements allow you to create multidemensional arrays. @see
+ * domArray
+ */
+	domCg_newarray_type_Array elemArray_array;
+/**
+ * The usertype element allows you to create arrays of usertypes. @see domUsertype
+ */
+	domCg_setuser_type_Array elemUsertype_array;
+	domCg_connect_param_Array elemConnect_param_array;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the length attribute.
+	 * @return Returns a xsPositiveInteger of the length attribute.
+	 */
+	xsPositiveInteger getLength() const { return attrLength; }
+	/**
+	 * Sets the length attribute.
+	 * @param atLength The new value for the length attribute.
+	 */
+	void setLength( xsPositiveInteger atLength ) { attrLength = atLength; }
+
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a reference to the array of cg_param_type elements.
+	 */
+	domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; }
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a constant reference to the array of cg_param_type elements.
+	 */
+	const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a reference to the array of array elements.
+	 */
+	domCg_newarray_type_Array &getArray_array() { return elemArray_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a constant reference to the array of array elements.
+	 */
+	const domCg_newarray_type_Array &getArray_array() const { return elemArray_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a reference to the array of usertype elements.
+	 */
+	domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a constant reference to the array of usertype elements.
+	 */
+	const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; }
+	/**
+	 * Gets the connect_param element array.
+	 * @return Returns a reference to the array of connect_param elements.
+	 */
+	domCg_connect_param_Array &getConnect_param_array() { return elemConnect_param_array; }
+	/**
+	 * Gets the connect_param element array.
+	 * @return Returns a constant reference to the array of connect_param elements.
+	 */
+	const domCg_connect_param_Array &getConnect_param_array() const { return elemConnect_param_array; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_newarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array(), elemConnect_param_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_newarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_newarray_type_complexType &operator=( const domCg_newarray_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_newarray_type_complexType.
+ */
+class domCg_newarray_type : public daeElement, public domCg_newarray_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_NEWARRAY_TYPE; }
+	static daeInt ID() { return 134; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the length attribute.
+	 * @return Returns a xsPositiveInteger of the length attribute.
+	 */
+	xsPositiveInteger getLength() const { return attrLength; }
+	/**
+	 * Sets the length attribute.
+	 * @param atLength The new value for the length attribute.
+	 */
+	void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_newarray_type(DAE& dae) : daeElement(dae), domCg_newarray_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_newarray_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_newarray_type &operator=( const domCg_newarray_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_newparam.h b/include/1.4/dom/domCg_newparam.h
new file mode 100755
index 0000000..9412cc5
--- /dev/null
+++ b/include/1.4/dom/domCg_newparam.h
@@ -0,0 +1,313 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_newparam_h__
+#define __domCg_newparam_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domFx_annotate_common.h>
+#include <dom/domCg_setuser_type.h>
+#include <dom/domCg_newarray_type.h>
+class DAE;
+
+/**
+ * Create a new, named param object in the CG Runtime, assign it a type, an
+ * initial value, and additional attributes at declaration time.
+ */
+class domCg_newparam_complexType 
+{
+public:
+	class domSemantic;
+
+	typedef daeSmartRef<domSemantic> domSemanticRef;
+	typedef daeTArray<domSemanticRef> domSemantic_Array;
+
+/**
+ * The semantic element allows you to specify a semantic for this new param.
+ */
+	class domSemantic : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; }
+		static daeInt ID() { return 140; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsNCName value of the text data of this element. 
+		 */
+		xsNCName _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsNCName of the value.
+		 */
+		xsNCName getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domSemantic(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domSemantic() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domModifier;
+
+	typedef daeSmartRef<domModifier> domModifierRef;
+	typedef daeTArray<domModifierRef> domModifier_Array;
+
+/**
+ * The modifier element allows you to specify a modifier for this new param.
+ */
+	class domModifier : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MODIFIER; }
+		static daeInt ID() { return 141; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domFx_modifier_enum_common value of the text data of this element. 
+		 */
+		domFx_modifier_enum_common _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domFx_modifier_enum_common of the value.
+		 */
+		domFx_modifier_enum_common getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domFx_modifier_enum_common val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domModifier(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domModifier() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domModifier &operator=( const domModifier &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+protected:  // Attribute
+	domCg_identifier attrSid;
+
+protected:  // Elements
+/**
+ * The annotate element allows you to specify an annotation for this new param.
+ * @see domAnnotate
+ */
+	domFx_annotate_common_Array elemAnnotate_array;
+/**
+ * The semantic element allows you to specify a semantic for this new param.
+ * @see domSemantic
+ */
+	domSemanticRef elemSemantic;
+/**
+ * The modifier element allows you to specify a modifier for this new param.
+ * @see domModifier
+ */
+	domModifierRef elemModifier;
+	domCg_param_typeRef elemCg_param_type;
+	domCg_setuser_typeRef elemUsertype;
+	domCg_newarray_typeRef elemArray;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the sid attribute.
+	 * @return Returns a domCg_identifier of the sid attribute.
+	 */
+	domCg_identifier getSid() const { return attrSid; }
+	/**
+	 * Sets the sid attribute.
+	 * @param atSid The new value for the sid attribute.
+	 */
+	void setSid( domCg_identifier atSid ) { attrSid = atSid; }
+
+	/**
+	 * Gets the annotate element array.
+	 * @return Returns a reference to the array of annotate elements.
+	 */
+	domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; }
+	/**
+	 * Gets the annotate element array.
+	 * @return Returns a constant reference to the array of annotate elements.
+	 */
+	const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; }
+	/**
+	 * Gets the semantic element.
+	 * @return a daeSmartRef to the semantic element.
+	 */
+	const domSemanticRef getSemantic() const { return elemSemantic; }
+	/**
+	 * Gets the modifier element.
+	 * @return a daeSmartRef to the modifier element.
+	 */
+	const domModifierRef getModifier() const { return elemModifier; }
+	/**
+	 * Gets the cg_param_type element.
+	 * @return a daeSmartRef to the cg_param_type element.
+	 */
+	const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; }
+	/**
+	 * Gets the usertype element.
+	 * @return a daeSmartRef to the usertype element.
+	 */
+	const domCg_setuser_typeRef getUsertype() const { return elemUsertype; }
+	/**
+	 * Gets the array element.
+	 * @return a daeSmartRef to the array element.
+	 */
+	const domCg_newarray_typeRef getArray() const { return elemArray; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_newparam_complexType(DAE& dae, daeElement* elt) : attrSid(), elemAnnotate_array(), elemSemantic(), elemModifier(), elemCg_param_type(), elemUsertype(), elemArray() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_newparam_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_newparam_complexType &operator=( const domCg_newparam_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_newparam_complexType.
+ */
+class domCg_newparam : public daeElement, public domCg_newparam_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_NEWPARAM; }
+	static daeInt ID() { return 142; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the sid attribute.
+	 * @return Returns a domCg_identifier of the sid attribute.
+	 */
+	domCg_identifier getSid() const { return attrSid; }
+	/**
+	 * Sets the sid attribute.
+	 * @param atSid The new value for the sid attribute.
+	 */
+	void setSid( domCg_identifier atSid ) { attrSid = atSid; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_newparam(DAE& dae) : daeElement(dae), domCg_newparam_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_newparam() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_newparam &operator=( const domCg_newparam &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_param_type.h b/include/1.4/dom/domCg_param_type.h
new file mode 100755
index 0000000..d1d29d2
--- /dev/null
+++ b/include/1.4/dom/domCg_param_type.h
@@ -0,0 +1,7459 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_param_type_h__
+#define __domCg_param_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_surface_type.h>
+#include <dom/domCg_sampler1D.h>
+#include <dom/domCg_sampler2D.h>
+#include <dom/domCg_sampler3D.h>
+#include <dom/domCg_samplerRECT.h>
+#include <dom/domCg_samplerCUBE.h>
+#include <dom/domCg_samplerDEPTH.h>
+class DAE;
+
+/**
+ * A group that specifies the allowable types for CG profile parameters.
+ */
+class domCg_param_type : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_PARAM_TYPE; }
+	static daeInt ID() { return 380; }
+	virtual daeInt typeID() const { return ID(); }
+public:
+	class domBool;
+
+	typedef daeSmartRef<domBool> domBoolRef;
+	typedef daeTArray<domBoolRef> domBool_Array;
+
+	class domBool : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL; }
+		static daeInt ID() { return 381; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool value of the text data of this element. 
+		 */
+		domCg_bool _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_bool of the value.
+		 */
+		domCg_bool getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_bool val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool &operator=( const domBool &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool1;
+
+	typedef daeSmartRef<domBool1> domBool1Ref;
+	typedef daeTArray<domBool1Ref> domBool1_Array;
+
+	class domBool1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1; }
+		static daeInt ID() { return 382; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool1 value of the text data of this element. 
+		 */
+		domCg_bool1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_bool1 of the value.
+		 */
+		domCg_bool1 getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_bool1 val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool1 &operator=( const domBool1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool2;
+
+	typedef daeSmartRef<domBool2> domBool2Ref;
+	typedef daeTArray<domBool2Ref> domBool2_Array;
+
+	class domBool2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2; }
+		static daeInt ID() { return 383; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool2 value of the text data of this element. 
+		 */
+		domCg_bool2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool2 reference of the _value array.
+		 */
+		domCg_bool2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool2 reference of the _value array.
+		 */
+		const domCg_bool2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool2 &operator=( const domBool2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool3;
+
+	typedef daeSmartRef<domBool3> domBool3Ref;
+	typedef daeTArray<domBool3Ref> domBool3_Array;
+
+	class domBool3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3; }
+		static daeInt ID() { return 384; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool3 value of the text data of this element. 
+		 */
+		domCg_bool3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool3 reference of the _value array.
+		 */
+		domCg_bool3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool3 reference of the _value array.
+		 */
+		const domCg_bool3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool3 &operator=( const domBool3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool4;
+
+	typedef daeSmartRef<domBool4> domBool4Ref;
+	typedef daeTArray<domBool4Ref> domBool4_Array;
+
+	class domBool4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4; }
+		static daeInt ID() { return 385; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool4 value of the text data of this element. 
+		 */
+		domCg_bool4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool4 reference of the _value array.
+		 */
+		domCg_bool4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool4 reference of the _value array.
+		 */
+		const domCg_bool4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool4 &operator=( const domBool4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool1x1;
+
+	typedef daeSmartRef<domBool1x1> domBool1x1Ref;
+	typedef daeTArray<domBool1x1Ref> domBool1x1_Array;
+
+	class domBool1x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X1; }
+		static daeInt ID() { return 386; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool1x1 value of the text data of this element. 
+		 */
+		domCg_bool1x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool1x1 reference of the _value array.
+		 */
+		domCg_bool1x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool1x1 reference of the _value array.
+		 */
+		const domCg_bool1x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool1x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool1x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool1x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool1x1 &operator=( const domBool1x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool1x2;
+
+	typedef daeSmartRef<domBool1x2> domBool1x2Ref;
+	typedef daeTArray<domBool1x2Ref> domBool1x2_Array;
+
+	class domBool1x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X2; }
+		static daeInt ID() { return 387; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool1x2 value of the text data of this element. 
+		 */
+		domCg_bool1x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool1x2 reference of the _value array.
+		 */
+		domCg_bool1x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool1x2 reference of the _value array.
+		 */
+		const domCg_bool1x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool1x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool1x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool1x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool1x2 &operator=( const domBool1x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool1x3;
+
+	typedef daeSmartRef<domBool1x3> domBool1x3Ref;
+	typedef daeTArray<domBool1x3Ref> domBool1x3_Array;
+
+	class domBool1x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X3; }
+		static daeInt ID() { return 388; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool1x3 value of the text data of this element. 
+		 */
+		domCg_bool1x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool1x3 reference of the _value array.
+		 */
+		domCg_bool1x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool1x3 reference of the _value array.
+		 */
+		const domCg_bool1x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool1x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool1x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool1x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool1x3 &operator=( const domBool1x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool1x4;
+
+	typedef daeSmartRef<domBool1x4> domBool1x4Ref;
+	typedef daeTArray<domBool1x4Ref> domBool1x4_Array;
+
+	class domBool1x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL1X4; }
+		static daeInt ID() { return 389; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool1x4 value of the text data of this element. 
+		 */
+		domCg_bool1x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool1x4 reference of the _value array.
+		 */
+		domCg_bool1x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool1x4 reference of the _value array.
+		 */
+		const domCg_bool1x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool1x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool1x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool1x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool1x4 &operator=( const domBool1x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool2x1;
+
+	typedef daeSmartRef<domBool2x1> domBool2x1Ref;
+	typedef daeTArray<domBool2x1Ref> domBool2x1_Array;
+
+	class domBool2x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X1; }
+		static daeInt ID() { return 390; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool2x1 value of the text data of this element. 
+		 */
+		domCg_bool2x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool2x1 reference of the _value array.
+		 */
+		domCg_bool2x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool2x1 reference of the _value array.
+		 */
+		const domCg_bool2x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool2x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool2x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool2x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool2x1 &operator=( const domBool2x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool2x2;
+
+	typedef daeSmartRef<domBool2x2> domBool2x2Ref;
+	typedef daeTArray<domBool2x2Ref> domBool2x2_Array;
+
+	class domBool2x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X2; }
+		static daeInt ID() { return 391; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool2x2 value of the text data of this element. 
+		 */
+		domCg_bool2x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool2x2 reference of the _value array.
+		 */
+		domCg_bool2x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool2x2 reference of the _value array.
+		 */
+		const domCg_bool2x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool2x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool2x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool2x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool2x2 &operator=( const domBool2x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool2x3;
+
+	typedef daeSmartRef<domBool2x3> domBool2x3Ref;
+	typedef daeTArray<domBool2x3Ref> domBool2x3_Array;
+
+	class domBool2x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X3; }
+		static daeInt ID() { return 392; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool2x3 value of the text data of this element. 
+		 */
+		domCg_bool2x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool2x3 reference of the _value array.
+		 */
+		domCg_bool2x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool2x3 reference of the _value array.
+		 */
+		const domCg_bool2x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool2x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool2x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool2x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool2x3 &operator=( const domBool2x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool2x4;
+
+	typedef daeSmartRef<domBool2x4> domBool2x4Ref;
+	typedef daeTArray<domBool2x4Ref> domBool2x4_Array;
+
+	class domBool2x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL2X4; }
+		static daeInt ID() { return 393; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool2x4 value of the text data of this element. 
+		 */
+		domCg_bool2x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool2x4 reference of the _value array.
+		 */
+		domCg_bool2x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool2x4 reference of the _value array.
+		 */
+		const domCg_bool2x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool2x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool2x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool2x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool2x4 &operator=( const domBool2x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool3x1;
+
+	typedef daeSmartRef<domBool3x1> domBool3x1Ref;
+	typedef daeTArray<domBool3x1Ref> domBool3x1_Array;
+
+	class domBool3x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X1; }
+		static daeInt ID() { return 394; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool3x1 value of the text data of this element. 
+		 */
+		domCg_bool3x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool3x1 reference of the _value array.
+		 */
+		domCg_bool3x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool3x1 reference of the _value array.
+		 */
+		const domCg_bool3x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool3x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool3x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool3x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool3x1 &operator=( const domBool3x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool3x2;
+
+	typedef daeSmartRef<domBool3x2> domBool3x2Ref;
+	typedef daeTArray<domBool3x2Ref> domBool3x2_Array;
+
+	class domBool3x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X2; }
+		static daeInt ID() { return 395; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool3x2 value of the text data of this element. 
+		 */
+		domCg_bool3x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool3x2 reference of the _value array.
+		 */
+		domCg_bool3x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool3x2 reference of the _value array.
+		 */
+		const domCg_bool3x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool3x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool3x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool3x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool3x2 &operator=( const domBool3x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool3x3;
+
+	typedef daeSmartRef<domBool3x3> domBool3x3Ref;
+	typedef daeTArray<domBool3x3Ref> domBool3x3_Array;
+
+	class domBool3x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X3; }
+		static daeInt ID() { return 396; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool3x3 value of the text data of this element. 
+		 */
+		domCg_bool3x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool3x3 reference of the _value array.
+		 */
+		domCg_bool3x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool3x3 reference of the _value array.
+		 */
+		const domCg_bool3x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool3x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool3x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool3x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool3x3 &operator=( const domBool3x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool3x4;
+
+	typedef daeSmartRef<domBool3x4> domBool3x4Ref;
+	typedef daeTArray<domBool3x4Ref> domBool3x4_Array;
+
+	class domBool3x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL3X4; }
+		static daeInt ID() { return 397; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool3x4 value of the text data of this element. 
+		 */
+		domCg_bool3x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool3x4 reference of the _value array.
+		 */
+		domCg_bool3x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool3x4 reference of the _value array.
+		 */
+		const domCg_bool3x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool3x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool3x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool3x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool3x4 &operator=( const domBool3x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool4x1;
+
+	typedef daeSmartRef<domBool4x1> domBool4x1Ref;
+	typedef daeTArray<domBool4x1Ref> domBool4x1_Array;
+
+	class domBool4x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X1; }
+		static daeInt ID() { return 398; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool4x1 value of the text data of this element. 
+		 */
+		domCg_bool4x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool4x1 reference of the _value array.
+		 */
+		domCg_bool4x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool4x1 reference of the _value array.
+		 */
+		const domCg_bool4x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool4x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool4x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool4x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool4x1 &operator=( const domBool4x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool4x2;
+
+	typedef daeSmartRef<domBool4x2> domBool4x2Ref;
+	typedef daeTArray<domBool4x2Ref> domBool4x2_Array;
+
+	class domBool4x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X2; }
+		static daeInt ID() { return 399; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool4x2 value of the text data of this element. 
+		 */
+		domCg_bool4x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool4x2 reference of the _value array.
+		 */
+		domCg_bool4x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool4x2 reference of the _value array.
+		 */
+		const domCg_bool4x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool4x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool4x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool4x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool4x2 &operator=( const domBool4x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool4x3;
+
+	typedef daeSmartRef<domBool4x3> domBool4x3Ref;
+	typedef daeTArray<domBool4x3Ref> domBool4x3_Array;
+
+	class domBool4x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X3; }
+		static daeInt ID() { return 400; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool4x3 value of the text data of this element. 
+		 */
+		domCg_bool4x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool4x3 reference of the _value array.
+		 */
+		domCg_bool4x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool4x3 reference of the _value array.
+		 */
+		const domCg_bool4x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool4x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool4x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool4x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool4x3 &operator=( const domBool4x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domBool4x4;
+
+	typedef daeSmartRef<domBool4x4> domBool4x4Ref;
+	typedef daeTArray<domBool4x4Ref> domBool4x4_Array;
+
+	class domBool4x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BOOL4X4; }
+		static daeInt ID() { return 401; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_bool4x4 value of the text data of this element. 
+		 */
+		domCg_bool4x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_bool4x4 reference of the _value array.
+		 */
+		domCg_bool4x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_bool4x4 reference of the _value array.
+		 */
+		const domCg_bool4x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_bool4x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domBool4x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domBool4x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domBool4x4 &operator=( const domBool4x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat;
+
+	typedef daeSmartRef<domFloat> domFloatRef;
+	typedef daeTArray<domFloatRef> domFloat_Array;
+
+	class domFloat : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; }
+		static daeInt ID() { return 402; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float value of the text data of this element. 
+		 */
+		domCg_float _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_float of the value.
+		 */
+		domCg_float getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_float val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat1;
+
+	typedef daeSmartRef<domFloat1> domFloat1Ref;
+	typedef daeTArray<domFloat1Ref> domFloat1_Array;
+
+	class domFloat1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1; }
+		static daeInt ID() { return 403; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float1 value of the text data of this element. 
+		 */
+		domCg_float1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_float1 of the value.
+		 */
+		domCg_float1 getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_float1 val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat1 &operator=( const domFloat1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2;
+
+	typedef daeSmartRef<domFloat2> domFloat2Ref;
+	typedef daeTArray<domFloat2Ref> domFloat2_Array;
+
+	class domFloat2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; }
+		static daeInt ID() { return 404; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float2 value of the text data of this element. 
+		 */
+		domCg_float2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float2 reference of the _value array.
+		 */
+		domCg_float2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float2 reference of the _value array.
+		 */
+		const domCg_float2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3;
+
+	typedef daeSmartRef<domFloat3> domFloat3Ref;
+	typedef daeTArray<domFloat3Ref> domFloat3_Array;
+
+	class domFloat3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; }
+		static daeInt ID() { return 405; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float3 value of the text data of this element. 
+		 */
+		domCg_float3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float3 reference of the _value array.
+		 */
+		domCg_float3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float3 reference of the _value array.
+		 */
+		const domCg_float3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4;
+
+	typedef daeSmartRef<domFloat4> domFloat4Ref;
+	typedef daeTArray<domFloat4Ref> domFloat4_Array;
+
+	class domFloat4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; }
+		static daeInt ID() { return 406; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float4 value of the text data of this element. 
+		 */
+		domCg_float4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float4 reference of the _value array.
+		 */
+		domCg_float4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float4 reference of the _value array.
+		 */
+		const domCg_float4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat1x1;
+
+	typedef daeSmartRef<domFloat1x1> domFloat1x1Ref;
+	typedef daeTArray<domFloat1x1Ref> domFloat1x1_Array;
+
+	class domFloat1x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X1; }
+		static daeInt ID() { return 407; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float1x1 value of the text data of this element. 
+		 */
+		domCg_float1x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float1x1 reference of the _value array.
+		 */
+		domCg_float1x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float1x1 reference of the _value array.
+		 */
+		const domCg_float1x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float1x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat1x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat1x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat1x1 &operator=( const domFloat1x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat1x2;
+
+	typedef daeSmartRef<domFloat1x2> domFloat1x2Ref;
+	typedef daeTArray<domFloat1x2Ref> domFloat1x2_Array;
+
+	class domFloat1x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X2; }
+		static daeInt ID() { return 408; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float1x2 value of the text data of this element. 
+		 */
+		domCg_float1x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float1x2 reference of the _value array.
+		 */
+		domCg_float1x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float1x2 reference of the _value array.
+		 */
+		const domCg_float1x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float1x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat1x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat1x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat1x2 &operator=( const domFloat1x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat1x3;
+
+	typedef daeSmartRef<domFloat1x3> domFloat1x3Ref;
+	typedef daeTArray<domFloat1x3Ref> domFloat1x3_Array;
+
+	class domFloat1x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X3; }
+		static daeInt ID() { return 409; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float1x3 value of the text data of this element. 
+		 */
+		domCg_float1x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float1x3 reference of the _value array.
+		 */
+		domCg_float1x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float1x3 reference of the _value array.
+		 */
+		const domCg_float1x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float1x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat1x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat1x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat1x3 &operator=( const domFloat1x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat1x4;
+
+	typedef daeSmartRef<domFloat1x4> domFloat1x4Ref;
+	typedef daeTArray<domFloat1x4Ref> domFloat1x4_Array;
+
+	class domFloat1x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT1X4; }
+		static daeInt ID() { return 410; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float1x4 value of the text data of this element. 
+		 */
+		domCg_float1x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float1x4 reference of the _value array.
+		 */
+		domCg_float1x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float1x4 reference of the _value array.
+		 */
+		const domCg_float1x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float1x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat1x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat1x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat1x4 &operator=( const domFloat1x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2x1;
+
+	typedef daeSmartRef<domFloat2x1> domFloat2x1Ref;
+	typedef daeTArray<domFloat2x1Ref> domFloat2x1_Array;
+
+	class domFloat2x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X1; }
+		static daeInt ID() { return 411; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float2x1 value of the text data of this element. 
+		 */
+		domCg_float2x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float2x1 reference of the _value array.
+		 */
+		domCg_float2x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float2x1 reference of the _value array.
+		 */
+		const domCg_float2x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float2x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2x1 &operator=( const domFloat2x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2x2;
+
+	typedef daeSmartRef<domFloat2x2> domFloat2x2Ref;
+	typedef daeTArray<domFloat2x2Ref> domFloat2x2_Array;
+
+	class domFloat2x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X2; }
+		static daeInt ID() { return 412; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float2x2 value of the text data of this element. 
+		 */
+		domCg_float2x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float2x2 reference of the _value array.
+		 */
+		domCg_float2x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float2x2 reference of the _value array.
+		 */
+		const domCg_float2x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float2x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2x2 &operator=( const domFloat2x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2x3;
+
+	typedef daeSmartRef<domFloat2x3> domFloat2x3Ref;
+	typedef daeTArray<domFloat2x3Ref> domFloat2x3_Array;
+
+	class domFloat2x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X3; }
+		static daeInt ID() { return 413; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float2x3 value of the text data of this element. 
+		 */
+		domCg_float2x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float2x3 reference of the _value array.
+		 */
+		domCg_float2x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float2x3 reference of the _value array.
+		 */
+		const domCg_float2x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float2x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2x3 &operator=( const domFloat2x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2x4;
+
+	typedef daeSmartRef<domFloat2x4> domFloat2x4Ref;
+	typedef daeTArray<domFloat2x4Ref> domFloat2x4_Array;
+
+	class domFloat2x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2X4; }
+		static daeInt ID() { return 414; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float2x4 value of the text data of this element. 
+		 */
+		domCg_float2x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float2x4 reference of the _value array.
+		 */
+		domCg_float2x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float2x4 reference of the _value array.
+		 */
+		const domCg_float2x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float2x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2x4 &operator=( const domFloat2x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3x1;
+
+	typedef daeSmartRef<domFloat3x1> domFloat3x1Ref;
+	typedef daeTArray<domFloat3x1Ref> domFloat3x1_Array;
+
+	class domFloat3x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X1; }
+		static daeInt ID() { return 415; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float3x1 value of the text data of this element. 
+		 */
+		domCg_float3x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float3x1 reference of the _value array.
+		 */
+		domCg_float3x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float3x1 reference of the _value array.
+		 */
+		const domCg_float3x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float3x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3x1 &operator=( const domFloat3x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3x2;
+
+	typedef daeSmartRef<domFloat3x2> domFloat3x2Ref;
+	typedef daeTArray<domFloat3x2Ref> domFloat3x2_Array;
+
+	class domFloat3x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X2; }
+		static daeInt ID() { return 416; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float3x2 value of the text data of this element. 
+		 */
+		domCg_float3x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float3x2 reference of the _value array.
+		 */
+		domCg_float3x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float3x2 reference of the _value array.
+		 */
+		const domCg_float3x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float3x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3x2 &operator=( const domFloat3x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3x3;
+
+	typedef daeSmartRef<domFloat3x3> domFloat3x3Ref;
+	typedef daeTArray<domFloat3x3Ref> domFloat3x3_Array;
+
+	class domFloat3x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X3; }
+		static daeInt ID() { return 417; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float3x3 value of the text data of this element. 
+		 */
+		domCg_float3x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float3x3 reference of the _value array.
+		 */
+		domCg_float3x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float3x3 reference of the _value array.
+		 */
+		const domCg_float3x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float3x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3x3 &operator=( const domFloat3x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3x4;
+
+	typedef daeSmartRef<domFloat3x4> domFloat3x4Ref;
+	typedef daeTArray<domFloat3x4Ref> domFloat3x4_Array;
+
+	class domFloat3x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3X4; }
+		static daeInt ID() { return 418; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float3x4 value of the text data of this element. 
+		 */
+		domCg_float3x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float3x4 reference of the _value array.
+		 */
+		domCg_float3x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float3x4 reference of the _value array.
+		 */
+		const domCg_float3x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float3x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3x4 &operator=( const domFloat3x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4x1;
+
+	typedef daeSmartRef<domFloat4x1> domFloat4x1Ref;
+	typedef daeTArray<domFloat4x1Ref> domFloat4x1_Array;
+
+	class domFloat4x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X1; }
+		static daeInt ID() { return 419; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float4x1 value of the text data of this element. 
+		 */
+		domCg_float4x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float4x1 reference of the _value array.
+		 */
+		domCg_float4x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float4x1 reference of the _value array.
+		 */
+		const domCg_float4x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float4x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4x1 &operator=( const domFloat4x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4x2;
+
+	typedef daeSmartRef<domFloat4x2> domFloat4x2Ref;
+	typedef daeTArray<domFloat4x2Ref> domFloat4x2_Array;
+
+	class domFloat4x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X2; }
+		static daeInt ID() { return 420; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float4x2 value of the text data of this element. 
+		 */
+		domCg_float4x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float4x2 reference of the _value array.
+		 */
+		domCg_float4x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float4x2 reference of the _value array.
+		 */
+		const domCg_float4x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float4x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4x2 &operator=( const domFloat4x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4x3;
+
+	typedef daeSmartRef<domFloat4x3> domFloat4x3Ref;
+	typedef daeTArray<domFloat4x3Ref> domFloat4x3_Array;
+
+	class domFloat4x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X3; }
+		static daeInt ID() { return 421; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float4x3 value of the text data of this element. 
+		 */
+		domCg_float4x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float4x3 reference of the _value array.
+		 */
+		domCg_float4x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float4x3 reference of the _value array.
+		 */
+		const domCg_float4x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float4x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4x3 &operator=( const domFloat4x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4x4;
+
+	typedef daeSmartRef<domFloat4x4> domFloat4x4Ref;
+	typedef daeTArray<domFloat4x4Ref> domFloat4x4_Array;
+
+	class domFloat4x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4X4; }
+		static daeInt ID() { return 422; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_float4x4 value of the text data of this element. 
+		 */
+		domCg_float4x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_float4x4 reference of the _value array.
+		 */
+		domCg_float4x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_float4x4 reference of the _value array.
+		 */
+		const domCg_float4x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_float4x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4x4 &operator=( const domFloat4x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt;
+
+	typedef daeSmartRef<domInt> domIntRef;
+	typedef daeTArray<domIntRef> domInt_Array;
+
+	class domInt : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT; }
+		static daeInt ID() { return 423; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int value of the text data of this element. 
+		 */
+		domCg_int _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_int of the value.
+		 */
+		domCg_int getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_int val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt &operator=( const domInt &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt1;
+
+	typedef daeSmartRef<domInt1> domInt1Ref;
+	typedef daeTArray<domInt1Ref> domInt1_Array;
+
+	class domInt1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1; }
+		static daeInt ID() { return 424; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int1 value of the text data of this element. 
+		 */
+		domCg_int1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_int1 of the value.
+		 */
+		domCg_int1 getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_int1 val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt1 &operator=( const domInt1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt2;
+
+	typedef daeSmartRef<domInt2> domInt2Ref;
+	typedef daeTArray<domInt2Ref> domInt2_Array;
+
+	class domInt2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2; }
+		static daeInt ID() { return 425; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int2 value of the text data of this element. 
+		 */
+		domCg_int2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int2 reference of the _value array.
+		 */
+		domCg_int2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int2 reference of the _value array.
+		 */
+		const domCg_int2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt2 &operator=( const domInt2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt3;
+
+	typedef daeSmartRef<domInt3> domInt3Ref;
+	typedef daeTArray<domInt3Ref> domInt3_Array;
+
+	class domInt3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3; }
+		static daeInt ID() { return 426; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int3 value of the text data of this element. 
+		 */
+		domCg_int3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int3 reference of the _value array.
+		 */
+		domCg_int3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int3 reference of the _value array.
+		 */
+		const domCg_int3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt3 &operator=( const domInt3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt4;
+
+	typedef daeSmartRef<domInt4> domInt4Ref;
+	typedef daeTArray<domInt4Ref> domInt4_Array;
+
+	class domInt4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4; }
+		static daeInt ID() { return 427; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int4 value of the text data of this element. 
+		 */
+		domCg_int4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int4 reference of the _value array.
+		 */
+		domCg_int4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int4 reference of the _value array.
+		 */
+		const domCg_int4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt4 &operator=( const domInt4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt1x1;
+
+	typedef daeSmartRef<domInt1x1> domInt1x1Ref;
+	typedef daeTArray<domInt1x1Ref> domInt1x1_Array;
+
+	class domInt1x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X1; }
+		static daeInt ID() { return 428; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int1x1 value of the text data of this element. 
+		 */
+		domCg_int1x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int1x1 reference of the _value array.
+		 */
+		domCg_int1x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int1x1 reference of the _value array.
+		 */
+		const domCg_int1x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int1x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt1x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt1x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt1x1 &operator=( const domInt1x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt1x2;
+
+	typedef daeSmartRef<domInt1x2> domInt1x2Ref;
+	typedef daeTArray<domInt1x2Ref> domInt1x2_Array;
+
+	class domInt1x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X2; }
+		static daeInt ID() { return 429; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int1x2 value of the text data of this element. 
+		 */
+		domCg_int1x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int1x2 reference of the _value array.
+		 */
+		domCg_int1x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int1x2 reference of the _value array.
+		 */
+		const domCg_int1x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int1x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt1x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt1x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt1x2 &operator=( const domInt1x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt1x3;
+
+	typedef daeSmartRef<domInt1x3> domInt1x3Ref;
+	typedef daeTArray<domInt1x3Ref> domInt1x3_Array;
+
+	class domInt1x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X3; }
+		static daeInt ID() { return 430; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int1x3 value of the text data of this element. 
+		 */
+		domCg_int1x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int1x3 reference of the _value array.
+		 */
+		domCg_int1x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int1x3 reference of the _value array.
+		 */
+		const domCg_int1x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int1x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt1x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt1x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt1x3 &operator=( const domInt1x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt1x4;
+
+	typedef daeSmartRef<domInt1x4> domInt1x4Ref;
+	typedef daeTArray<domInt1x4Ref> domInt1x4_Array;
+
+	class domInt1x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT1X4; }
+		static daeInt ID() { return 431; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int1x4 value of the text data of this element. 
+		 */
+		domCg_int1x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int1x4 reference of the _value array.
+		 */
+		domCg_int1x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int1x4 reference of the _value array.
+		 */
+		const domCg_int1x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int1x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt1x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt1x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt1x4 &operator=( const domInt1x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt2x1;
+
+	typedef daeSmartRef<domInt2x1> domInt2x1Ref;
+	typedef daeTArray<domInt2x1Ref> domInt2x1_Array;
+
+	class domInt2x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X1; }
+		static daeInt ID() { return 432; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int2x1 value of the text data of this element. 
+		 */
+		domCg_int2x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int2x1 reference of the _value array.
+		 */
+		domCg_int2x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int2x1 reference of the _value array.
+		 */
+		const domCg_int2x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int2x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt2x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt2x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt2x1 &operator=( const domInt2x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt2x2;
+
+	typedef daeSmartRef<domInt2x2> domInt2x2Ref;
+	typedef daeTArray<domInt2x2Ref> domInt2x2_Array;
+
+	class domInt2x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X2; }
+		static daeInt ID() { return 433; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int2x2 value of the text data of this element. 
+		 */
+		domCg_int2x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int2x2 reference of the _value array.
+		 */
+		domCg_int2x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int2x2 reference of the _value array.
+		 */
+		const domCg_int2x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int2x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt2x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt2x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt2x2 &operator=( const domInt2x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt2x3;
+
+	typedef daeSmartRef<domInt2x3> domInt2x3Ref;
+	typedef daeTArray<domInt2x3Ref> domInt2x3_Array;
+
+	class domInt2x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X3; }
+		static daeInt ID() { return 434; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int2x3 value of the text data of this element. 
+		 */
+		domCg_int2x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int2x3 reference of the _value array.
+		 */
+		domCg_int2x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int2x3 reference of the _value array.
+		 */
+		const domCg_int2x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int2x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt2x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt2x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt2x3 &operator=( const domInt2x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt2x4;
+
+	typedef daeSmartRef<domInt2x4> domInt2x4Ref;
+	typedef daeTArray<domInt2x4Ref> domInt2x4_Array;
+
+	class domInt2x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT2X4; }
+		static daeInt ID() { return 435; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int2x4 value of the text data of this element. 
+		 */
+		domCg_int2x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int2x4 reference of the _value array.
+		 */
+		domCg_int2x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int2x4 reference of the _value array.
+		 */
+		const domCg_int2x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int2x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt2x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt2x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt2x4 &operator=( const domInt2x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt3x1;
+
+	typedef daeSmartRef<domInt3x1> domInt3x1Ref;
+	typedef daeTArray<domInt3x1Ref> domInt3x1_Array;
+
+	class domInt3x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X1; }
+		static daeInt ID() { return 436; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int3x1 value of the text data of this element. 
+		 */
+		domCg_int3x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int3x1 reference of the _value array.
+		 */
+		domCg_int3x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int3x1 reference of the _value array.
+		 */
+		const domCg_int3x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int3x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt3x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt3x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt3x1 &operator=( const domInt3x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt3x2;
+
+	typedef daeSmartRef<domInt3x2> domInt3x2Ref;
+	typedef daeTArray<domInt3x2Ref> domInt3x2_Array;
+
+	class domInt3x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X2; }
+		static daeInt ID() { return 437; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int3x2 value of the text data of this element. 
+		 */
+		domCg_int3x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int3x2 reference of the _value array.
+		 */
+		domCg_int3x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int3x2 reference of the _value array.
+		 */
+		const domCg_int3x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int3x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt3x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt3x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt3x2 &operator=( const domInt3x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt3x3;
+
+	typedef daeSmartRef<domInt3x3> domInt3x3Ref;
+	typedef daeTArray<domInt3x3Ref> domInt3x3_Array;
+
+	class domInt3x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X3; }
+		static daeInt ID() { return 438; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int3x3 value of the text data of this element. 
+		 */
+		domCg_int3x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int3x3 reference of the _value array.
+		 */
+		domCg_int3x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int3x3 reference of the _value array.
+		 */
+		const domCg_int3x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int3x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt3x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt3x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt3x3 &operator=( const domInt3x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt3x4;
+
+	typedef daeSmartRef<domInt3x4> domInt3x4Ref;
+	typedef daeTArray<domInt3x4Ref> domInt3x4_Array;
+
+	class domInt3x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT3X4; }
+		static daeInt ID() { return 439; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int3x4 value of the text data of this element. 
+		 */
+		domCg_int3x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int3x4 reference of the _value array.
+		 */
+		domCg_int3x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int3x4 reference of the _value array.
+		 */
+		const domCg_int3x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int3x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt3x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt3x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt3x4 &operator=( const domInt3x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt4x1;
+
+	typedef daeSmartRef<domInt4x1> domInt4x1Ref;
+	typedef daeTArray<domInt4x1Ref> domInt4x1_Array;
+
+	class domInt4x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X1; }
+		static daeInt ID() { return 440; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int4x1 value of the text data of this element. 
+		 */
+		domCg_int4x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int4x1 reference of the _value array.
+		 */
+		domCg_int4x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int4x1 reference of the _value array.
+		 */
+		const domCg_int4x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int4x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt4x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt4x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt4x1 &operator=( const domInt4x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt4x2;
+
+	typedef daeSmartRef<domInt4x2> domInt4x2Ref;
+	typedef daeTArray<domInt4x2Ref> domInt4x2_Array;
+
+	class domInt4x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X2; }
+		static daeInt ID() { return 441; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int4x2 value of the text data of this element. 
+		 */
+		domCg_int4x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int4x2 reference of the _value array.
+		 */
+		domCg_int4x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int4x2 reference of the _value array.
+		 */
+		const domCg_int4x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int4x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt4x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt4x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt4x2 &operator=( const domInt4x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt4x3;
+
+	typedef daeSmartRef<domInt4x3> domInt4x3Ref;
+	typedef daeTArray<domInt4x3Ref> domInt4x3_Array;
+
+	class domInt4x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X3; }
+		static daeInt ID() { return 442; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int4x3 value of the text data of this element. 
+		 */
+		domCg_int4x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int4x3 reference of the _value array.
+		 */
+		domCg_int4x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int4x3 reference of the _value array.
+		 */
+		const domCg_int4x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int4x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt4x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt4x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt4x3 &operator=( const domInt4x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domInt4x4;
+
+	typedef daeSmartRef<domInt4x4> domInt4x4Ref;
+	typedef daeTArray<domInt4x4Ref> domInt4x4_Array;
+
+	class domInt4x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INT4X4; }
+		static daeInt ID() { return 443; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_int4x4 value of the text data of this element. 
+		 */
+		domCg_int4x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_int4x4 reference of the _value array.
+		 */
+		domCg_int4x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_int4x4 reference of the _value array.
+		 */
+		const domCg_int4x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_int4x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domInt4x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domInt4x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domInt4x4 &operator=( const domInt4x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf;
+
+	typedef daeSmartRef<domHalf> domHalfRef;
+	typedef daeTArray<domHalfRef> domHalf_Array;
+
+	class domHalf : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF; }
+		static daeInt ID() { return 444; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half value of the text data of this element. 
+		 */
+		domCg_half _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_half of the value.
+		 */
+		domCg_half getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_half val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf &operator=( const domHalf &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf1;
+
+	typedef daeSmartRef<domHalf1> domHalf1Ref;
+	typedef daeTArray<domHalf1Ref> domHalf1_Array;
+
+	class domHalf1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1; }
+		static daeInt ID() { return 445; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half1 value of the text data of this element. 
+		 */
+		domCg_half1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_half1 of the value.
+		 */
+		domCg_half1 getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_half1 val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf1 &operator=( const domHalf1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf2;
+
+	typedef daeSmartRef<domHalf2> domHalf2Ref;
+	typedef daeTArray<domHalf2Ref> domHalf2_Array;
+
+	class domHalf2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2; }
+		static daeInt ID() { return 446; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half2 value of the text data of this element. 
+		 */
+		domCg_half2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half2 reference of the _value array.
+		 */
+		domCg_half2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half2 reference of the _value array.
+		 */
+		const domCg_half2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf2 &operator=( const domHalf2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf3;
+
+	typedef daeSmartRef<domHalf3> domHalf3Ref;
+	typedef daeTArray<domHalf3Ref> domHalf3_Array;
+
+	class domHalf3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3; }
+		static daeInt ID() { return 447; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half3 value of the text data of this element. 
+		 */
+		domCg_half3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half3 reference of the _value array.
+		 */
+		domCg_half3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half3 reference of the _value array.
+		 */
+		const domCg_half3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf3 &operator=( const domHalf3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf4;
+
+	typedef daeSmartRef<domHalf4> domHalf4Ref;
+	typedef daeTArray<domHalf4Ref> domHalf4_Array;
+
+	class domHalf4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4; }
+		static daeInt ID() { return 448; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half4 value of the text data of this element. 
+		 */
+		domCg_half4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half4 reference of the _value array.
+		 */
+		domCg_half4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half4 reference of the _value array.
+		 */
+		const domCg_half4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf4 &operator=( const domHalf4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf1x1;
+
+	typedef daeSmartRef<domHalf1x1> domHalf1x1Ref;
+	typedef daeTArray<domHalf1x1Ref> domHalf1x1_Array;
+
+	class domHalf1x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X1; }
+		static daeInt ID() { return 449; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half1x1 value of the text data of this element. 
+		 */
+		domCg_half1x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half1x1 reference of the _value array.
+		 */
+		domCg_half1x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half1x1 reference of the _value array.
+		 */
+		const domCg_half1x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half1x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf1x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf1x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf1x1 &operator=( const domHalf1x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf1x2;
+
+	typedef daeSmartRef<domHalf1x2> domHalf1x2Ref;
+	typedef daeTArray<domHalf1x2Ref> domHalf1x2_Array;
+
+	class domHalf1x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X2; }
+		static daeInt ID() { return 450; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half1x2 value of the text data of this element. 
+		 */
+		domCg_half1x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half1x2 reference of the _value array.
+		 */
+		domCg_half1x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half1x2 reference of the _value array.
+		 */
+		const domCg_half1x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half1x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf1x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf1x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf1x2 &operator=( const domHalf1x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf1x3;
+
+	typedef daeSmartRef<domHalf1x3> domHalf1x3Ref;
+	typedef daeTArray<domHalf1x3Ref> domHalf1x3_Array;
+
+	class domHalf1x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X3; }
+		static daeInt ID() { return 451; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half1x3 value of the text data of this element. 
+		 */
+		domCg_half1x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half1x3 reference of the _value array.
+		 */
+		domCg_half1x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half1x3 reference of the _value array.
+		 */
+		const domCg_half1x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half1x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf1x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf1x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf1x3 &operator=( const domHalf1x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf1x4;
+
+	typedef daeSmartRef<domHalf1x4> domHalf1x4Ref;
+	typedef daeTArray<domHalf1x4Ref> domHalf1x4_Array;
+
+	class domHalf1x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF1X4; }
+		static daeInt ID() { return 452; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half1x4 value of the text data of this element. 
+		 */
+		domCg_half1x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half1x4 reference of the _value array.
+		 */
+		domCg_half1x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half1x4 reference of the _value array.
+		 */
+		const domCg_half1x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half1x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf1x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf1x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf1x4 &operator=( const domHalf1x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf2x1;
+
+	typedef daeSmartRef<domHalf2x1> domHalf2x1Ref;
+	typedef daeTArray<domHalf2x1Ref> domHalf2x1_Array;
+
+	class domHalf2x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X1; }
+		static daeInt ID() { return 453; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half2x1 value of the text data of this element. 
+		 */
+		domCg_half2x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half2x1 reference of the _value array.
+		 */
+		domCg_half2x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half2x1 reference of the _value array.
+		 */
+		const domCg_half2x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half2x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf2x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf2x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf2x1 &operator=( const domHalf2x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf2x2;
+
+	typedef daeSmartRef<domHalf2x2> domHalf2x2Ref;
+	typedef daeTArray<domHalf2x2Ref> domHalf2x2_Array;
+
+	class domHalf2x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X2; }
+		static daeInt ID() { return 454; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half2x2 value of the text data of this element. 
+		 */
+		domCg_half2x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half2x2 reference of the _value array.
+		 */
+		domCg_half2x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half2x2 reference of the _value array.
+		 */
+		const domCg_half2x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half2x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf2x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf2x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf2x2 &operator=( const domHalf2x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf2x3;
+
+	typedef daeSmartRef<domHalf2x3> domHalf2x3Ref;
+	typedef daeTArray<domHalf2x3Ref> domHalf2x3_Array;
+
+	class domHalf2x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X3; }
+		static daeInt ID() { return 455; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half2x3 value of the text data of this element. 
+		 */
+		domCg_half2x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half2x3 reference of the _value array.
+		 */
+		domCg_half2x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half2x3 reference of the _value array.
+		 */
+		const domCg_half2x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half2x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf2x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf2x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf2x3 &operator=( const domHalf2x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf2x4;
+
+	typedef daeSmartRef<domHalf2x4> domHalf2x4Ref;
+	typedef daeTArray<domHalf2x4Ref> domHalf2x4_Array;
+
+	class domHalf2x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF2X4; }
+		static daeInt ID() { return 456; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half2x4 value of the text data of this element. 
+		 */
+		domCg_half2x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half2x4 reference of the _value array.
+		 */
+		domCg_half2x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half2x4 reference of the _value array.
+		 */
+		const domCg_half2x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half2x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf2x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf2x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf2x4 &operator=( const domHalf2x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf3x1;
+
+	typedef daeSmartRef<domHalf3x1> domHalf3x1Ref;
+	typedef daeTArray<domHalf3x1Ref> domHalf3x1_Array;
+
+	class domHalf3x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X1; }
+		static daeInt ID() { return 457; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half3x1 value of the text data of this element. 
+		 */
+		domCg_half3x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half3x1 reference of the _value array.
+		 */
+		domCg_half3x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half3x1 reference of the _value array.
+		 */
+		const domCg_half3x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half3x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf3x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf3x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf3x1 &operator=( const domHalf3x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf3x2;
+
+	typedef daeSmartRef<domHalf3x2> domHalf3x2Ref;
+	typedef daeTArray<domHalf3x2Ref> domHalf3x2_Array;
+
+	class domHalf3x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X2; }
+		static daeInt ID() { return 458; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half3x2 value of the text data of this element. 
+		 */
+		domCg_half3x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half3x2 reference of the _value array.
+		 */
+		domCg_half3x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half3x2 reference of the _value array.
+		 */
+		const domCg_half3x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half3x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf3x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf3x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf3x2 &operator=( const domHalf3x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf3x3;
+
+	typedef daeSmartRef<domHalf3x3> domHalf3x3Ref;
+	typedef daeTArray<domHalf3x3Ref> domHalf3x3_Array;
+
+	class domHalf3x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X3; }
+		static daeInt ID() { return 459; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half3x3 value of the text data of this element. 
+		 */
+		domCg_half3x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half3x3 reference of the _value array.
+		 */
+		domCg_half3x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half3x3 reference of the _value array.
+		 */
+		const domCg_half3x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half3x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf3x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf3x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf3x3 &operator=( const domHalf3x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf3x4;
+
+	typedef daeSmartRef<domHalf3x4> domHalf3x4Ref;
+	typedef daeTArray<domHalf3x4Ref> domHalf3x4_Array;
+
+	class domHalf3x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF3X4; }
+		static daeInt ID() { return 460; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half3x4 value of the text data of this element. 
+		 */
+		domCg_half3x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half3x4 reference of the _value array.
+		 */
+		domCg_half3x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half3x4 reference of the _value array.
+		 */
+		const domCg_half3x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half3x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf3x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf3x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf3x4 &operator=( const domHalf3x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf4x1;
+
+	typedef daeSmartRef<domHalf4x1> domHalf4x1Ref;
+	typedef daeTArray<domHalf4x1Ref> domHalf4x1_Array;
+
+	class domHalf4x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X1; }
+		static daeInt ID() { return 461; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half4x1 value of the text data of this element. 
+		 */
+		domCg_half4x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half4x1 reference of the _value array.
+		 */
+		domCg_half4x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half4x1 reference of the _value array.
+		 */
+		const domCg_half4x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half4x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf4x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf4x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf4x1 &operator=( const domHalf4x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf4x2;
+
+	typedef daeSmartRef<domHalf4x2> domHalf4x2Ref;
+	typedef daeTArray<domHalf4x2Ref> domHalf4x2_Array;
+
+	class domHalf4x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X2; }
+		static daeInt ID() { return 462; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half4x2 value of the text data of this element. 
+		 */
+		domCg_half4x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half4x2 reference of the _value array.
+		 */
+		domCg_half4x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half4x2 reference of the _value array.
+		 */
+		const domCg_half4x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half4x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf4x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf4x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf4x2 &operator=( const domHalf4x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf4x3;
+
+	typedef daeSmartRef<domHalf4x3> domHalf4x3Ref;
+	typedef daeTArray<domHalf4x3Ref> domHalf4x3_Array;
+
+	class domHalf4x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X3; }
+		static daeInt ID() { return 463; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half4x3 value of the text data of this element. 
+		 */
+		domCg_half4x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half4x3 reference of the _value array.
+		 */
+		domCg_half4x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half4x3 reference of the _value array.
+		 */
+		const domCg_half4x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half4x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf4x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf4x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf4x3 &operator=( const domHalf4x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domHalf4x4;
+
+	typedef daeSmartRef<domHalf4x4> domHalf4x4Ref;
+	typedef daeTArray<domHalf4x4Ref> domHalf4x4_Array;
+
+	class domHalf4x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HALF4X4; }
+		static daeInt ID() { return 464; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_half4x4 value of the text data of this element. 
+		 */
+		domCg_half4x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_half4x4 reference of the _value array.
+		 */
+		domCg_half4x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_half4x4 reference of the _value array.
+		 */
+		const domCg_half4x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_half4x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domHalf4x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domHalf4x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domHalf4x4 &operator=( const domHalf4x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed;
+
+	typedef daeSmartRef<domFixed> domFixedRef;
+	typedef daeTArray<domFixedRef> domFixed_Array;
+
+	class domFixed : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED; }
+		static daeInt ID() { return 465; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed value of the text data of this element. 
+		 */
+		domCg_fixed _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_fixed of the value.
+		 */
+		domCg_fixed getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_fixed val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed &operator=( const domFixed &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed1;
+
+	typedef daeSmartRef<domFixed1> domFixed1Ref;
+	typedef daeTArray<domFixed1Ref> domFixed1_Array;
+
+	class domFixed1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1; }
+		static daeInt ID() { return 466; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed1 value of the text data of this element. 
+		 */
+		domCg_fixed1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domCg_fixed1 of the value.
+		 */
+		domCg_fixed1 getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domCg_fixed1 val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed1 &operator=( const domFixed1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed2;
+
+	typedef daeSmartRef<domFixed2> domFixed2Ref;
+	typedef daeTArray<domFixed2Ref> domFixed2_Array;
+
+	class domFixed2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2; }
+		static daeInt ID() { return 467; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed2 value of the text data of this element. 
+		 */
+		domCg_fixed2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed2 reference of the _value array.
+		 */
+		domCg_fixed2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed2 reference of the _value array.
+		 */
+		const domCg_fixed2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed2 &operator=( const domFixed2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed3;
+
+	typedef daeSmartRef<domFixed3> domFixed3Ref;
+	typedef daeTArray<domFixed3Ref> domFixed3_Array;
+
+	class domFixed3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3; }
+		static daeInt ID() { return 468; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed3 value of the text data of this element. 
+		 */
+		domCg_fixed3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed3 reference of the _value array.
+		 */
+		domCg_fixed3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed3 reference of the _value array.
+		 */
+		const domCg_fixed3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed3 &operator=( const domFixed3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed4;
+
+	typedef daeSmartRef<domFixed4> domFixed4Ref;
+	typedef daeTArray<domFixed4Ref> domFixed4_Array;
+
+	class domFixed4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4; }
+		static daeInt ID() { return 469; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed4 value of the text data of this element. 
+		 */
+		domCg_fixed4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed4 reference of the _value array.
+		 */
+		domCg_fixed4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed4 reference of the _value array.
+		 */
+		const domCg_fixed4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed4 &operator=( const domFixed4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed1x1;
+
+	typedef daeSmartRef<domFixed1x1> domFixed1x1Ref;
+	typedef daeTArray<domFixed1x1Ref> domFixed1x1_Array;
+
+	class domFixed1x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X1; }
+		static daeInt ID() { return 470; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed1x1 value of the text data of this element. 
+		 */
+		domCg_fixed1x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed1x1 reference of the _value array.
+		 */
+		domCg_fixed1x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed1x1 reference of the _value array.
+		 */
+		const domCg_fixed1x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed1x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed1x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed1x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed1x1 &operator=( const domFixed1x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed1x2;
+
+	typedef daeSmartRef<domFixed1x2> domFixed1x2Ref;
+	typedef daeTArray<domFixed1x2Ref> domFixed1x2_Array;
+
+	class domFixed1x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X2; }
+		static daeInt ID() { return 471; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed1x2 value of the text data of this element. 
+		 */
+		domCg_fixed1x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed1x2 reference of the _value array.
+		 */
+		domCg_fixed1x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed1x2 reference of the _value array.
+		 */
+		const domCg_fixed1x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed1x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed1x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed1x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed1x2 &operator=( const domFixed1x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed1x3;
+
+	typedef daeSmartRef<domFixed1x3> domFixed1x3Ref;
+	typedef daeTArray<domFixed1x3Ref> domFixed1x3_Array;
+
+	class domFixed1x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X3; }
+		static daeInt ID() { return 472; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed1x3 value of the text data of this element. 
+		 */
+		domCg_fixed1x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed1x3 reference of the _value array.
+		 */
+		domCg_fixed1x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed1x3 reference of the _value array.
+		 */
+		const domCg_fixed1x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed1x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed1x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed1x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed1x3 &operator=( const domFixed1x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed1x4;
+
+	typedef daeSmartRef<domFixed1x4> domFixed1x4Ref;
+	typedef daeTArray<domFixed1x4Ref> domFixed1x4_Array;
+
+	class domFixed1x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED1X4; }
+		static daeInt ID() { return 473; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed1x4 value of the text data of this element. 
+		 */
+		domCg_fixed1x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed1x4 reference of the _value array.
+		 */
+		domCg_fixed1x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed1x4 reference of the _value array.
+		 */
+		const domCg_fixed1x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed1x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed1x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed1x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed1x4 &operator=( const domFixed1x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed2x1;
+
+	typedef daeSmartRef<domFixed2x1> domFixed2x1Ref;
+	typedef daeTArray<domFixed2x1Ref> domFixed2x1_Array;
+
+	class domFixed2x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X1; }
+		static daeInt ID() { return 474; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed2x1 value of the text data of this element. 
+		 */
+		domCg_fixed2x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed2x1 reference of the _value array.
+		 */
+		domCg_fixed2x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed2x1 reference of the _value array.
+		 */
+		const domCg_fixed2x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed2x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed2x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed2x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed2x1 &operator=( const domFixed2x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed2x2;
+
+	typedef daeSmartRef<domFixed2x2> domFixed2x2Ref;
+	typedef daeTArray<domFixed2x2Ref> domFixed2x2_Array;
+
+	class domFixed2x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X2; }
+		static daeInt ID() { return 475; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed2x2 value of the text data of this element. 
+		 */
+		domCg_fixed2x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed2x2 reference of the _value array.
+		 */
+		domCg_fixed2x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed2x2 reference of the _value array.
+		 */
+		const domCg_fixed2x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed2x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed2x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed2x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed2x2 &operator=( const domFixed2x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed2x3;
+
+	typedef daeSmartRef<domFixed2x3> domFixed2x3Ref;
+	typedef daeTArray<domFixed2x3Ref> domFixed2x3_Array;
+
+	class domFixed2x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X3; }
+		static daeInt ID() { return 476; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed2x3 value of the text data of this element. 
+		 */
+		domCg_fixed2x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed2x3 reference of the _value array.
+		 */
+		domCg_fixed2x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed2x3 reference of the _value array.
+		 */
+		const domCg_fixed2x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed2x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed2x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed2x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed2x3 &operator=( const domFixed2x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed2x4;
+
+	typedef daeSmartRef<domFixed2x4> domFixed2x4Ref;
+	typedef daeTArray<domFixed2x4Ref> domFixed2x4_Array;
+
+	class domFixed2x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED2X4; }
+		static daeInt ID() { return 477; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed2x4 value of the text data of this element. 
+		 */
+		domCg_fixed2x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed2x4 reference of the _value array.
+		 */
+		domCg_fixed2x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed2x4 reference of the _value array.
+		 */
+		const domCg_fixed2x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed2x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed2x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed2x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed2x4 &operator=( const domFixed2x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed3x1;
+
+	typedef daeSmartRef<domFixed3x1> domFixed3x1Ref;
+	typedef daeTArray<domFixed3x1Ref> domFixed3x1_Array;
+
+	class domFixed3x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X1; }
+		static daeInt ID() { return 478; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed3x1 value of the text data of this element. 
+		 */
+		domCg_fixed3x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed3x1 reference of the _value array.
+		 */
+		domCg_fixed3x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed3x1 reference of the _value array.
+		 */
+		const domCg_fixed3x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed3x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed3x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed3x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed3x1 &operator=( const domFixed3x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed3x2;
+
+	typedef daeSmartRef<domFixed3x2> domFixed3x2Ref;
+	typedef daeTArray<domFixed3x2Ref> domFixed3x2_Array;
+
+	class domFixed3x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X2; }
+		static daeInt ID() { return 479; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed3x2 value of the text data of this element. 
+		 */
+		domCg_fixed3x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed3x2 reference of the _value array.
+		 */
+		domCg_fixed3x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed3x2 reference of the _value array.
+		 */
+		const domCg_fixed3x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed3x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed3x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed3x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed3x2 &operator=( const domFixed3x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed3x3;
+
+	typedef daeSmartRef<domFixed3x3> domFixed3x3Ref;
+	typedef daeTArray<domFixed3x3Ref> domFixed3x3_Array;
+
+	class domFixed3x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X3; }
+		static daeInt ID() { return 480; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed3x3 value of the text data of this element. 
+		 */
+		domCg_fixed3x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed3x3 reference of the _value array.
+		 */
+		domCg_fixed3x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed3x3 reference of the _value array.
+		 */
+		const domCg_fixed3x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed3x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed3x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed3x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed3x3 &operator=( const domFixed3x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed3x4;
+
+	typedef daeSmartRef<domFixed3x4> domFixed3x4Ref;
+	typedef daeTArray<domFixed3x4Ref> domFixed3x4_Array;
+
+	class domFixed3x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED3X4; }
+		static daeInt ID() { return 481; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed3x4 value of the text data of this element. 
+		 */
+		domCg_fixed3x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed3x4 reference of the _value array.
+		 */
+		domCg_fixed3x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed3x4 reference of the _value array.
+		 */
+		const domCg_fixed3x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed3x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed3x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed3x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed3x4 &operator=( const domFixed3x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed4x1;
+
+	typedef daeSmartRef<domFixed4x1> domFixed4x1Ref;
+	typedef daeTArray<domFixed4x1Ref> domFixed4x1_Array;
+
+	class domFixed4x1 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X1; }
+		static daeInt ID() { return 482; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed4x1 value of the text data of this element. 
+		 */
+		domCg_fixed4x1 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed4x1 reference of the _value array.
+		 */
+		domCg_fixed4x1 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed4x1 reference of the _value array.
+		 */
+		const domCg_fixed4x1 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed4x1 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed4x1(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed4x1() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed4x1 &operator=( const domFixed4x1 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed4x2;
+
+	typedef daeSmartRef<domFixed4x2> domFixed4x2Ref;
+	typedef daeTArray<domFixed4x2Ref> domFixed4x2_Array;
+
+	class domFixed4x2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X2; }
+		static daeInt ID() { return 483; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed4x2 value of the text data of this element. 
+		 */
+		domCg_fixed4x2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed4x2 reference of the _value array.
+		 */
+		domCg_fixed4x2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed4x2 reference of the _value array.
+		 */
+		const domCg_fixed4x2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed4x2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed4x2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed4x2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed4x2 &operator=( const domFixed4x2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed4x3;
+
+	typedef daeSmartRef<domFixed4x3> domFixed4x3Ref;
+	typedef daeTArray<domFixed4x3Ref> domFixed4x3_Array;
+
+	class domFixed4x3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X3; }
+		static daeInt ID() { return 484; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed4x3 value of the text data of this element. 
+		 */
+		domCg_fixed4x3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed4x3 reference of the _value array.
+		 */
+		domCg_fixed4x3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed4x3 reference of the _value array.
+		 */
+		const domCg_fixed4x3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed4x3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed4x3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed4x3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed4x3 &operator=( const domFixed4x3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFixed4x4;
+
+	typedef daeSmartRef<domFixed4x4> domFixed4x4Ref;
+	typedef daeTArray<domFixed4x4Ref> domFixed4x4_Array;
+
+	class domFixed4x4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FIXED4X4; }
+		static daeInt ID() { return 485; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domCg_fixed4x4 value of the text data of this element. 
+		 */
+		domCg_fixed4x4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domCg_fixed4x4 reference of the _value array.
+		 */
+		domCg_fixed4x4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domCg_fixed4x4 reference of the _value array.
+		 */
+		const domCg_fixed4x4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domCg_fixed4x4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFixed4x4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFixed4x4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFixed4x4 &operator=( const domFixed4x4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domString;
+
+	typedef daeSmartRef<domString> domStringRef;
+	typedef daeTArray<domStringRef> domString_Array;
+
+	class domString : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::STRING; }
+		static daeInt ID() { return 486; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The ::xsString value of the text data of this element. 
+		 */
+		::xsString _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a ::xsString of the value.
+		 */
+		::xsString getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( ::xsString val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domString(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domString() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domString &operator=( const domString &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domEnum;
+
+	typedef daeSmartRef<domEnum> domEnumRef;
+	typedef daeTArray<domEnumRef> domEnum_Array;
+
+	class domEnum : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENUM; }
+		static daeInt ID() { return 487; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The domGl_enumeration value of the text data of this element. 
+		 */
+		domGl_enumeration _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a domGl_enumeration of the value.
+		 */
+		domGl_enumeration getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( domGl_enumeration val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domEnum(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domEnum() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domEnum &operator=( const domEnum &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+	domBoolRef elemBool;
+	domBool1Ref elemBool1;
+	domBool2Ref elemBool2;
+	domBool3Ref elemBool3;
+	domBool4Ref elemBool4;
+	domBool1x1Ref elemBool1x1;
+	domBool1x2Ref elemBool1x2;
+	domBool1x3Ref elemBool1x3;
+	domBool1x4Ref elemBool1x4;
+	domBool2x1Ref elemBool2x1;
+	domBool2x2Ref elemBool2x2;
+	domBool2x3Ref elemBool2x3;
+	domBool2x4Ref elemBool2x4;
+	domBool3x1Ref elemBool3x1;
+	domBool3x2Ref elemBool3x2;
+	domBool3x3Ref elemBool3x3;
+	domBool3x4Ref elemBool3x4;
+	domBool4x1Ref elemBool4x1;
+	domBool4x2Ref elemBool4x2;
+	domBool4x3Ref elemBool4x3;
+	domBool4x4Ref elemBool4x4;
+	domFloatRef elemFloat;
+	domFloat1Ref elemFloat1;
+	domFloat2Ref elemFloat2;
+	domFloat3Ref elemFloat3;
+	domFloat4Ref elemFloat4;
+	domFloat1x1Ref elemFloat1x1;
+	domFloat1x2Ref elemFloat1x2;
+	domFloat1x3Ref elemFloat1x3;
+	domFloat1x4Ref elemFloat1x4;
+	domFloat2x1Ref elemFloat2x1;
+	domFloat2x2Ref elemFloat2x2;
+	domFloat2x3Ref elemFloat2x3;
+	domFloat2x4Ref elemFloat2x4;
+	domFloat3x1Ref elemFloat3x1;
+	domFloat3x2Ref elemFloat3x2;
+	domFloat3x3Ref elemFloat3x3;
+	domFloat3x4Ref elemFloat3x4;
+	domFloat4x1Ref elemFloat4x1;
+	domFloat4x2Ref elemFloat4x2;
+	domFloat4x3Ref elemFloat4x3;
+	domFloat4x4Ref elemFloat4x4;
+	domIntRef elemInt;
+	domInt1Ref elemInt1;
+	domInt2Ref elemInt2;
+	domInt3Ref elemInt3;
+	domInt4Ref elemInt4;
+	domInt1x1Ref elemInt1x1;
+	domInt1x2Ref elemInt1x2;
+	domInt1x3Ref elemInt1x3;
+	domInt1x4Ref elemInt1x4;
+	domInt2x1Ref elemInt2x1;
+	domInt2x2Ref elemInt2x2;
+	domInt2x3Ref elemInt2x3;
+	domInt2x4Ref elemInt2x4;
+	domInt3x1Ref elemInt3x1;
+	domInt3x2Ref elemInt3x2;
+	domInt3x3Ref elemInt3x3;
+	domInt3x4Ref elemInt3x4;
+	domInt4x1Ref elemInt4x1;
+	domInt4x2Ref elemInt4x2;
+	domInt4x3Ref elemInt4x3;
+	domInt4x4Ref elemInt4x4;
+	domHalfRef elemHalf;
+	domHalf1Ref elemHalf1;
+	domHalf2Ref elemHalf2;
+	domHalf3Ref elemHalf3;
+	domHalf4Ref elemHalf4;
+	domHalf1x1Ref elemHalf1x1;
+	domHalf1x2Ref elemHalf1x2;
+	domHalf1x3Ref elemHalf1x3;
+	domHalf1x4Ref elemHalf1x4;
+	domHalf2x1Ref elemHalf2x1;
+	domHalf2x2Ref elemHalf2x2;
+	domHalf2x3Ref elemHalf2x3;
+	domHalf2x4Ref elemHalf2x4;
+	domHalf3x1Ref elemHalf3x1;
+	domHalf3x2Ref elemHalf3x2;
+	domHalf3x3Ref elemHalf3x3;
+	domHalf3x4Ref elemHalf3x4;
+	domHalf4x1Ref elemHalf4x1;
+	domHalf4x2Ref elemHalf4x2;
+	domHalf4x3Ref elemHalf4x3;
+	domHalf4x4Ref elemHalf4x4;
+	domFixedRef elemFixed;
+	domFixed1Ref elemFixed1;
+	domFixed2Ref elemFixed2;
+	domFixed3Ref elemFixed3;
+	domFixed4Ref elemFixed4;
+	domFixed1x1Ref elemFixed1x1;
+	domFixed1x2Ref elemFixed1x2;
+	domFixed1x3Ref elemFixed1x3;
+	domFixed1x4Ref elemFixed1x4;
+	domFixed2x1Ref elemFixed2x1;
+	domFixed2x2Ref elemFixed2x2;
+	domFixed2x3Ref elemFixed2x3;
+	domFixed2x4Ref elemFixed2x4;
+	domFixed3x1Ref elemFixed3x1;
+	domFixed3x2Ref elemFixed3x2;
+	domFixed3x3Ref elemFixed3x3;
+	domFixed3x4Ref elemFixed3x4;
+	domFixed4x1Ref elemFixed4x1;
+	domFixed4x2Ref elemFixed4x2;
+	domFixed4x3Ref elemFixed4x3;
+	domFixed4x4Ref elemFixed4x4;
+	domCg_surface_typeRef elemSurface;
+	domCg_sampler1DRef elemSampler1D;
+	domCg_sampler2DRef elemSampler2D;
+	domCg_sampler3DRef elemSampler3D;
+	domCg_samplerRECTRef elemSamplerRECT;
+	domCg_samplerCUBERef elemSamplerCUBE;
+	domCg_samplerDEPTHRef elemSamplerDEPTH;
+	domStringRef elemString;
+	domEnumRef elemEnum;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the bool element.
+	 * @return a daeSmartRef to the bool element.
+	 */
+	const domBoolRef getBool() const { return elemBool; }
+	/**
+	 * Gets the bool1 element.
+	 * @return a daeSmartRef to the bool1 element.
+	 */
+	const domBool1Ref getBool1() const { return elemBool1; }
+	/**
+	 * Gets the bool2 element.
+	 * @return a daeSmartRef to the bool2 element.
+	 */
+	const domBool2Ref getBool2() const { return elemBool2; }
+	/**
+	 * Gets the bool3 element.
+	 * @return a daeSmartRef to the bool3 element.
+	 */
+	const domBool3Ref getBool3() const { return elemBool3; }
+	/**
+	 * Gets the bool4 element.
+	 * @return a daeSmartRef to the bool4 element.
+	 */
+	const domBool4Ref getBool4() const { return elemBool4; }
+	/**
+	 * Gets the bool1x1 element.
+	 * @return a daeSmartRef to the bool1x1 element.
+	 */
+	const domBool1x1Ref getBool1x1() const { return elemBool1x1; }
+	/**
+	 * Gets the bool1x2 element.
+	 * @return a daeSmartRef to the bool1x2 element.
+	 */
+	const domBool1x2Ref getBool1x2() const { return elemBool1x2; }
+	/**
+	 * Gets the bool1x3 element.
+	 * @return a daeSmartRef to the bool1x3 element.
+	 */
+	const domBool1x3Ref getBool1x3() const { return elemBool1x3; }
+	/**
+	 * Gets the bool1x4 element.
+	 * @return a daeSmartRef to the bool1x4 element.
+	 */
+	const domBool1x4Ref getBool1x4() const { return elemBool1x4; }
+	/**
+	 * Gets the bool2x1 element.
+	 * @return a daeSmartRef to the bool2x1 element.
+	 */
+	const domBool2x1Ref getBool2x1() const { return elemBool2x1; }
+	/**
+	 * Gets the bool2x2 element.
+	 * @return a daeSmartRef to the bool2x2 element.
+	 */
+	const domBool2x2Ref getBool2x2() const { return elemBool2x2; }
+	/**
+	 * Gets the bool2x3 element.
+	 * @return a daeSmartRef to the bool2x3 element.
+	 */
+	const domBool2x3Ref getBool2x3() const { return elemBool2x3; }
+	/**
+	 * Gets the bool2x4 element.
+	 * @return a daeSmartRef to the bool2x4 element.
+	 */
+	const domBool2x4Ref getBool2x4() const { return elemBool2x4; }
+	/**
+	 * Gets the bool3x1 element.
+	 * @return a daeSmartRef to the bool3x1 element.
+	 */
+	const domBool3x1Ref getBool3x1() const { return elemBool3x1; }
+	/**
+	 * Gets the bool3x2 element.
+	 * @return a daeSmartRef to the bool3x2 element.
+	 */
+	const domBool3x2Ref getBool3x2() const { return elemBool3x2; }
+	/**
+	 * Gets the bool3x3 element.
+	 * @return a daeSmartRef to the bool3x3 element.
+	 */
+	const domBool3x3Ref getBool3x3() const { return elemBool3x3; }
+	/**
+	 * Gets the bool3x4 element.
+	 * @return a daeSmartRef to the bool3x4 element.
+	 */
+	const domBool3x4Ref getBool3x4() const { return elemBool3x4; }
+	/**
+	 * Gets the bool4x1 element.
+	 * @return a daeSmartRef to the bool4x1 element.
+	 */
+	const domBool4x1Ref getBool4x1() const { return elemBool4x1; }
+	/**
+	 * Gets the bool4x2 element.
+	 * @return a daeSmartRef to the bool4x2 element.
+	 */
+	const domBool4x2Ref getBool4x2() const { return elemBool4x2; }
+	/**
+	 * Gets the bool4x3 element.
+	 * @return a daeSmartRef to the bool4x3 element.
+	 */
+	const domBool4x3Ref getBool4x3() const { return elemBool4x3; }
+	/**
+	 * Gets the bool4x4 element.
+	 * @return a daeSmartRef to the bool4x4 element.
+	 */
+	const domBool4x4Ref getBool4x4() const { return elemBool4x4; }
+	/**
+	 * Gets the float element.
+	 * @return a daeSmartRef to the float element.
+	 */
+	const domFloatRef getFloat() const { return elemFloat; }
+	/**
+	 * Gets the float1 element.
+	 * @return a daeSmartRef to the float1 element.
+	 */
+	const domFloat1Ref getFloat1() const { return elemFloat1; }
+	/**
+	 * Gets the float2 element.
+	 * @return a daeSmartRef to the float2 element.
+	 */
+	const domFloat2Ref getFloat2() const { return elemFloat2; }
+	/**
+	 * Gets the float3 element.
+	 * @return a daeSmartRef to the float3 element.
+	 */
+	const domFloat3Ref getFloat3() const { return elemFloat3; }
+	/**
+	 * Gets the float4 element.
+	 * @return a daeSmartRef to the float4 element.
+	 */
+	const domFloat4Ref getFloat4() const { return elemFloat4; }
+	/**
+	 * Gets the float1x1 element.
+	 * @return a daeSmartRef to the float1x1 element.
+	 */
+	const domFloat1x1Ref getFloat1x1() const { return elemFloat1x1; }
+	/**
+	 * Gets the float1x2 element.
+	 * @return a daeSmartRef to the float1x2 element.
+	 */
+	const domFloat1x2Ref getFloat1x2() const { return elemFloat1x2; }
+	/**
+	 * Gets the float1x3 element.
+	 * @return a daeSmartRef to the float1x3 element.
+	 */
+	const domFloat1x3Ref getFloat1x3() const { return elemFloat1x3; }
+	/**
+	 * Gets the float1x4 element.
+	 * @return a daeSmartRef to the float1x4 element.
+	 */
+	const domFloat1x4Ref getFloat1x4() const { return elemFloat1x4; }
+	/**
+	 * Gets the float2x1 element.
+	 * @return a daeSmartRef to the float2x1 element.
+	 */
+	const domFloat2x1Ref getFloat2x1() const { return elemFloat2x1; }
+	/**
+	 * Gets the float2x2 element.
+	 * @return a daeSmartRef to the float2x2 element.
+	 */
+	const domFloat2x2Ref getFloat2x2() const { return elemFloat2x2; }
+	/**
+	 * Gets the float2x3 element.
+	 * @return a daeSmartRef to the float2x3 element.
+	 */
+	const domFloat2x3Ref getFloat2x3() const { return elemFloat2x3; }
+	/**
+	 * Gets the float2x4 element.
+	 * @return a daeSmartRef to the float2x4 element.
+	 */
+	const domFloat2x4Ref getFloat2x4() const { return elemFloat2x4; }
+	/**
+	 * Gets the float3x1 element.
+	 * @return a daeSmartRef to the float3x1 element.
+	 */
+	const domFloat3x1Ref getFloat3x1() const { return elemFloat3x1; }
+	/**
+	 * Gets the float3x2 element.
+	 * @return a daeSmartRef to the float3x2 element.
+	 */
+	const domFloat3x2Ref getFloat3x2() const { return elemFloat3x2; }
+	/**
+	 * Gets the float3x3 element.
+	 * @return a daeSmartRef to the float3x3 element.
+	 */
+	const domFloat3x3Ref getFloat3x3() const { return elemFloat3x3; }
+	/**
+	 * Gets the float3x4 element.
+	 * @return a daeSmartRef to the float3x4 element.
+	 */
+	const domFloat3x4Ref getFloat3x4() const { return elemFloat3x4; }
+	/**
+	 * Gets the float4x1 element.
+	 * @return a daeSmartRef to the float4x1 element.
+	 */
+	const domFloat4x1Ref getFloat4x1() const { return elemFloat4x1; }
+	/**
+	 * Gets the float4x2 element.
+	 * @return a daeSmartRef to the float4x2 element.
+	 */
+	const domFloat4x2Ref getFloat4x2() const { return elemFloat4x2; }
+	/**
+	 * Gets the float4x3 element.
+	 * @return a daeSmartRef to the float4x3 element.
+	 */
+	const domFloat4x3Ref getFloat4x3() const { return elemFloat4x3; }
+	/**
+	 * Gets the float4x4 element.
+	 * @return a daeSmartRef to the float4x4 element.
+	 */
+	const domFloat4x4Ref getFloat4x4() const { return elemFloat4x4; }
+	/**
+	 * Gets the int element.
+	 * @return a daeSmartRef to the int element.
+	 */
+	const domIntRef getInt() const { return elemInt; }
+	/**
+	 * Gets the int1 element.
+	 * @return a daeSmartRef to the int1 element.
+	 */
+	const domInt1Ref getInt1() const { return elemInt1; }
+	/**
+	 * Gets the int2 element.
+	 * @return a daeSmartRef to the int2 element.
+	 */
+	const domInt2Ref getInt2() const { return elemInt2; }
+	/**
+	 * Gets the int3 element.
+	 * @return a daeSmartRef to the int3 element.
+	 */
+	const domInt3Ref getInt3() const { return elemInt3; }
+	/**
+	 * Gets the int4 element.
+	 * @return a daeSmartRef to the int4 element.
+	 */
+	const domInt4Ref getInt4() const { return elemInt4; }
+	/**
+	 * Gets the int1x1 element.
+	 * @return a daeSmartRef to the int1x1 element.
+	 */
+	const domInt1x1Ref getInt1x1() const { return elemInt1x1; }
+	/**
+	 * Gets the int1x2 element.
+	 * @return a daeSmartRef to the int1x2 element.
+	 */
+	const domInt1x2Ref getInt1x2() const { return elemInt1x2; }
+	/**
+	 * Gets the int1x3 element.
+	 * @return a daeSmartRef to the int1x3 element.
+	 */
+	const domInt1x3Ref getInt1x3() const { return elemInt1x3; }
+	/**
+	 * Gets the int1x4 element.
+	 * @return a daeSmartRef to the int1x4 element.
+	 */
+	const domInt1x4Ref getInt1x4() const { return elemInt1x4; }
+	/**
+	 * Gets the int2x1 element.
+	 * @return a daeSmartRef to the int2x1 element.
+	 */
+	const domInt2x1Ref getInt2x1() const { return elemInt2x1; }
+	/**
+	 * Gets the int2x2 element.
+	 * @return a daeSmartRef to the int2x2 element.
+	 */
+	const domInt2x2Ref getInt2x2() const { return elemInt2x2; }
+	/**
+	 * Gets the int2x3 element.
+	 * @return a daeSmartRef to the int2x3 element.
+	 */
+	const domInt2x3Ref getInt2x3() const { return elemInt2x3; }
+	/**
+	 * Gets the int2x4 element.
+	 * @return a daeSmartRef to the int2x4 element.
+	 */
+	const domInt2x4Ref getInt2x4() const { return elemInt2x4; }
+	/**
+	 * Gets the int3x1 element.
+	 * @return a daeSmartRef to the int3x1 element.
+	 */
+	const domInt3x1Ref getInt3x1() const { return elemInt3x1; }
+	/**
+	 * Gets the int3x2 element.
+	 * @return a daeSmartRef to the int3x2 element.
+	 */
+	const domInt3x2Ref getInt3x2() const { return elemInt3x2; }
+	/**
+	 * Gets the int3x3 element.
+	 * @return a daeSmartRef to the int3x3 element.
+	 */
+	const domInt3x3Ref getInt3x3() const { return elemInt3x3; }
+	/**
+	 * Gets the int3x4 element.
+	 * @return a daeSmartRef to the int3x4 element.
+	 */
+	const domInt3x4Ref getInt3x4() const { return elemInt3x4; }
+	/**
+	 * Gets the int4x1 element.
+	 * @return a daeSmartRef to the int4x1 element.
+	 */
+	const domInt4x1Ref getInt4x1() const { return elemInt4x1; }
+	/**
+	 * Gets the int4x2 element.
+	 * @return a daeSmartRef to the int4x2 element.
+	 */
+	const domInt4x2Ref getInt4x2() const { return elemInt4x2; }
+	/**
+	 * Gets the int4x3 element.
+	 * @return a daeSmartRef to the int4x3 element.
+	 */
+	const domInt4x3Ref getInt4x3() const { return elemInt4x3; }
+	/**
+	 * Gets the int4x4 element.
+	 * @return a daeSmartRef to the int4x4 element.
+	 */
+	const domInt4x4Ref getInt4x4() const { return elemInt4x4; }
+	/**
+	 * Gets the half element.
+	 * @return a daeSmartRef to the half element.
+	 */
+	const domHalfRef getHalf() const { return elemHalf; }
+	/**
+	 * Gets the half1 element.
+	 * @return a daeSmartRef to the half1 element.
+	 */
+	const domHalf1Ref getHalf1() const { return elemHalf1; }
+	/**
+	 * Gets the half2 element.
+	 * @return a daeSmartRef to the half2 element.
+	 */
+	const domHalf2Ref getHalf2() const { return elemHalf2; }
+	/**
+	 * Gets the half3 element.
+	 * @return a daeSmartRef to the half3 element.
+	 */
+	const domHalf3Ref getHalf3() const { return elemHalf3; }
+	/**
+	 * Gets the half4 element.
+	 * @return a daeSmartRef to the half4 element.
+	 */
+	const domHalf4Ref getHalf4() const { return elemHalf4; }
+	/**
+	 * Gets the half1x1 element.
+	 * @return a daeSmartRef to the half1x1 element.
+	 */
+	const domHalf1x1Ref getHalf1x1() const { return elemHalf1x1; }
+	/**
+	 * Gets the half1x2 element.
+	 * @return a daeSmartRef to the half1x2 element.
+	 */
+	const domHalf1x2Ref getHalf1x2() const { return elemHalf1x2; }
+	/**
+	 * Gets the half1x3 element.
+	 * @return a daeSmartRef to the half1x3 element.
+	 */
+	const domHalf1x3Ref getHalf1x3() const { return elemHalf1x3; }
+	/**
+	 * Gets the half1x4 element.
+	 * @return a daeSmartRef to the half1x4 element.
+	 */
+	const domHalf1x4Ref getHalf1x4() const { return elemHalf1x4; }
+	/**
+	 * Gets the half2x1 element.
+	 * @return a daeSmartRef to the half2x1 element.
+	 */
+	const domHalf2x1Ref getHalf2x1() const { return elemHalf2x1; }
+	/**
+	 * Gets the half2x2 element.
+	 * @return a daeSmartRef to the half2x2 element.
+	 */
+	const domHalf2x2Ref getHalf2x2() const { return elemHalf2x2; }
+	/**
+	 * Gets the half2x3 element.
+	 * @return a daeSmartRef to the half2x3 element.
+	 */
+	const domHalf2x3Ref getHalf2x3() const { return elemHalf2x3; }
+	/**
+	 * Gets the half2x4 element.
+	 * @return a daeSmartRef to the half2x4 element.
+	 */
+	const domHalf2x4Ref getHalf2x4() const { return elemHalf2x4; }
+	/**
+	 * Gets the half3x1 element.
+	 * @return a daeSmartRef to the half3x1 element.
+	 */
+	const domHalf3x1Ref getHalf3x1() const { return elemHalf3x1; }
+	/**
+	 * Gets the half3x2 element.
+	 * @return a daeSmartRef to the half3x2 element.
+	 */
+	const domHalf3x2Ref getHalf3x2() const { return elemHalf3x2; }
+	/**
+	 * Gets the half3x3 element.
+	 * @return a daeSmartRef to the half3x3 element.
+	 */
+	const domHalf3x3Ref getHalf3x3() const { return elemHalf3x3; }
+	/**
+	 * Gets the half3x4 element.
+	 * @return a daeSmartRef to the half3x4 element.
+	 */
+	const domHalf3x4Ref getHalf3x4() const { return elemHalf3x4; }
+	/**
+	 * Gets the half4x1 element.
+	 * @return a daeSmartRef to the half4x1 element.
+	 */
+	const domHalf4x1Ref getHalf4x1() const { return elemHalf4x1; }
+	/**
+	 * Gets the half4x2 element.
+	 * @return a daeSmartRef to the half4x2 element.
+	 */
+	const domHalf4x2Ref getHalf4x2() const { return elemHalf4x2; }
+	/**
+	 * Gets the half4x3 element.
+	 * @return a daeSmartRef to the half4x3 element.
+	 */
+	const domHalf4x3Ref getHalf4x3() const { return elemHalf4x3; }
+	/**
+	 * Gets the half4x4 element.
+	 * @return a daeSmartRef to the half4x4 element.
+	 */
+	const domHalf4x4Ref getHalf4x4() const { return elemHalf4x4; }
+	/**
+	 * Gets the fixed element.
+	 * @return a daeSmartRef to the fixed element.
+	 */
+	const domFixedRef getFixed() const { return elemFixed; }
+	/**
+	 * Gets the fixed1 element.
+	 * @return a daeSmartRef to the fixed1 element.
+	 */
+	const domFixed1Ref getFixed1() const { return elemFixed1; }
+	/**
+	 * Gets the fixed2 element.
+	 * @return a daeSmartRef to the fixed2 element.
+	 */
+	const domFixed2Ref getFixed2() const { return elemFixed2; }
+	/**
+	 * Gets the fixed3 element.
+	 * @return a daeSmartRef to the fixed3 element.
+	 */
+	const domFixed3Ref getFixed3() const { return elemFixed3; }
+	/**
+	 * Gets the fixed4 element.
+	 * @return a daeSmartRef to the fixed4 element.
+	 */
+	const domFixed4Ref getFixed4() const { return elemFixed4; }
+	/**
+	 * Gets the fixed1x1 element.
+	 * @return a daeSmartRef to the fixed1x1 element.
+	 */
+	const domFixed1x1Ref getFixed1x1() const { return elemFixed1x1; }
+	/**
+	 * Gets the fixed1x2 element.
+	 * @return a daeSmartRef to the fixed1x2 element.
+	 */
+	const domFixed1x2Ref getFixed1x2() const { return elemFixed1x2; }
+	/**
+	 * Gets the fixed1x3 element.
+	 * @return a daeSmartRef to the fixed1x3 element.
+	 */
+	const domFixed1x3Ref getFixed1x3() const { return elemFixed1x3; }
+	/**
+	 * Gets the fixed1x4 element.
+	 * @return a daeSmartRef to the fixed1x4 element.
+	 */
+	const domFixed1x4Ref getFixed1x4() const { return elemFixed1x4; }
+	/**
+	 * Gets the fixed2x1 element.
+	 * @return a daeSmartRef to the fixed2x1 element.
+	 */
+	const domFixed2x1Ref getFixed2x1() const { return elemFixed2x1; }
+	/**
+	 * Gets the fixed2x2 element.
+	 * @return a daeSmartRef to the fixed2x2 element.
+	 */
+	const domFixed2x2Ref getFixed2x2() const { return elemFixed2x2; }
+	/**
+	 * Gets the fixed2x3 element.
+	 * @return a daeSmartRef to the fixed2x3 element.
+	 */
+	const domFixed2x3Ref getFixed2x3() const { return elemFixed2x3; }
+	/**
+	 * Gets the fixed2x4 element.
+	 * @return a daeSmartRef to the fixed2x4 element.
+	 */
+	const domFixed2x4Ref getFixed2x4() const { return elemFixed2x4; }
+	/**
+	 * Gets the fixed3x1 element.
+	 * @return a daeSmartRef to the fixed3x1 element.
+	 */
+	const domFixed3x1Ref getFixed3x1() const { return elemFixed3x1; }
+	/**
+	 * Gets the fixed3x2 element.
+	 * @return a daeSmartRef to the fixed3x2 element.
+	 */
+	const domFixed3x2Ref getFixed3x2() const { return elemFixed3x2; }
+	/**
+	 * Gets the fixed3x3 element.
+	 * @return a daeSmartRef to the fixed3x3 element.
+	 */
+	const domFixed3x3Ref getFixed3x3() const { return elemFixed3x3; }
+	/**
+	 * Gets the fixed3x4 element.
+	 * @return a daeSmartRef to the fixed3x4 element.
+	 */
+	const domFixed3x4Ref getFixed3x4() const { return elemFixed3x4; }
+	/**
+	 * Gets the fixed4x1 element.
+	 * @return a daeSmartRef to the fixed4x1 element.
+	 */
+	const domFixed4x1Ref getFixed4x1() const { return elemFixed4x1; }
+	/**
+	 * Gets the fixed4x2 element.
+	 * @return a daeSmartRef to the fixed4x2 element.
+	 */
+	const domFixed4x2Ref getFixed4x2() const { return elemFixed4x2; }
+	/**
+	 * Gets the fixed4x3 element.
+	 * @return a daeSmartRef to the fixed4x3 element.
+	 */
+	const domFixed4x3Ref getFixed4x3() const { return elemFixed4x3; }
+	/**
+	 * Gets the fixed4x4 element.
+	 * @return a daeSmartRef to the fixed4x4 element.
+	 */
+	const domFixed4x4Ref getFixed4x4() const { return elemFixed4x4; }
+	/**
+	 * Gets the surface element.
+	 * @return a daeSmartRef to the surface element.
+	 */
+	const domCg_surface_typeRef getSurface() const { return elemSurface; }
+	/**
+	 * Gets the sampler1D element.
+	 * @return a daeSmartRef to the sampler1D element.
+	 */
+	const domCg_sampler1DRef getSampler1D() const { return elemSampler1D; }
+	/**
+	 * Gets the sampler2D element.
+	 * @return a daeSmartRef to the sampler2D element.
+	 */
+	const domCg_sampler2DRef getSampler2D() const { return elemSampler2D; }
+	/**
+	 * Gets the sampler3D element.
+	 * @return a daeSmartRef to the sampler3D element.
+	 */
+	const domCg_sampler3DRef getSampler3D() const { return elemSampler3D; }
+	/**
+	 * Gets the samplerRECT element.
+	 * @return a daeSmartRef to the samplerRECT element.
+	 */
+	const domCg_samplerRECTRef getSamplerRECT() const { return elemSamplerRECT; }
+	/**
+	 * Gets the samplerCUBE element.
+	 * @return a daeSmartRef to the samplerCUBE element.
+	 */
+	const domCg_samplerCUBERef getSamplerCUBE() const { return elemSamplerCUBE; }
+	/**
+	 * Gets the samplerDEPTH element.
+	 * @return a daeSmartRef to the samplerDEPTH element.
+	 */
+	const domCg_samplerDEPTHRef getSamplerDEPTH() const { return elemSamplerDEPTH; }
+	/**
+	 * Gets the string element.
+	 * @return a daeSmartRef to the string element.
+	 */
+	const domStringRef getString() const { return elemString; }
+	/**
+	 * Gets the enum element.
+	 * @return a daeSmartRef to the enum element.
+	 */
+	const domEnumRef getEnum() const { return elemEnum; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_param_type(DAE& dae) : daeElement(dae), elemBool(), elemBool1(), elemBool2(), elemBool3(), elemBool4(), elemBool1x1(), elemBool1x2(), elemBool1x3(), elemBool1x4(), elemBool2x1(), elemBool2x2(), elemBool2x3(), elemBool2x4(), elemBool3x1(), elemBool3x2(), elemBool3x3(), elemBool3x4(), elemBool4x1(), elemBool4x2(), elemBool4x3(), elemBool4x4(), elemFloat(), elemFloat1(), elemFloat2(), elemFloat3(), elemFloat4(), elemFloat1x1(), elemFloat1x2(), elemFloat1x3(), elemFloat1x4(), elemFloat2x1(), elemFloat2x2(), elemFloat2x3(), elemFloat2x4(), elemFloat3x1(), elemFloat3x2(), elemFloat3x3(), elemFloat3x4(), elemFloat4x1(), elemFloat4x2(), elemFloat4x3(), elemFloat4x4(), elemInt(), elemInt1(), elemInt2(), elemInt3(), elemInt4(), elemInt1x1(), elemInt1x2(), elemInt1x3(), elemInt1x4(), elemInt2x1(), elemInt2x2(), elemInt2x3(), elemInt2x4(), elemInt3x1(), elemInt3x2(), elemInt3x3(), elemInt3x4(), elemInt4x1(), elemInt4x2(), elemInt4x3(), elemInt4x4(), elemHalf(), elemHalf1(), elemHalf2(), elemHalf3(), elemHalf4(), elemHalf1x1(), elemHalf1x2(), elemHalf1x3(), elemHalf1x4(), elemHalf2x1(), elemHalf2x2(), elemHalf2x3(), elemHalf2x4(), elemHalf3x1(), elemHalf3x2(), elemHalf3x3(), elemHalf3x4(), elemHalf4x1(), elemHalf4x2(), elemHalf4x3(), elemHalf4x4(), elemFixed(), elemFixed1(), elemFixed2(), elemFixed3(), elemFixed4(), elemFixed1x1(), elemFixed1x2(), elemFixed1x3(), elemFixed1x4(), elemFixed2x1(), elemFixed2x2(), elemFixed2x3(), elemFixed2x4(), elemFixed3x1(), elemFixed3x2(), elemFixed3x3(), elemFixed3x4(), elemFixed4x1(), elemFixed4x2(), elemFixed4x3(), elemFixed4x4(), elemSurface(), elemSampler1D(), elemSampler2D(), elemSampler3D(), elemSamplerRECT(), elemSamplerCUBE(), elemSamplerDEPTH(), elemString(), elemEnum() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_param_type() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_param_type &operator=( const domCg_param_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_sampler1D.h b/include/1.4/dom/domCg_sampler1D.h
new file mode 100755
index 0000000..27785f5
--- /dev/null
+++ b/include/1.4/dom/domCg_sampler1D.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_sampler1D_h__
+#define __domCg_sampler1D_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_sampler1D_common.h>
+class DAE;
+
+class domCg_sampler1D_complexType  : public domFx_sampler1D_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler1D_complexType(DAE& dae, daeElement* elt) : domFx_sampler1D_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler1D_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler1D_complexType &operator=( const domCg_sampler1D_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_sampler1D_complexType.
+ */
+class domCg_sampler1D : public daeElement, public domCg_sampler1D_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER1D; }
+	static daeInt ID() { return 127; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler1D(DAE& dae) : daeElement(dae), domCg_sampler1D_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler1D() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler1D &operator=( const domCg_sampler1D &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_sampler2D.h b/include/1.4/dom/domCg_sampler2D.h
new file mode 100755
index 0000000..463ca92
--- /dev/null
+++ b/include/1.4/dom/domCg_sampler2D.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_sampler2D_h__
+#define __domCg_sampler2D_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_sampler2D_common.h>
+class DAE;
+
+class domCg_sampler2D_complexType  : public domFx_sampler2D_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler2D_complexType(DAE& dae, daeElement* elt) : domFx_sampler2D_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler2D_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler2D_complexType &operator=( const domCg_sampler2D_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_sampler2D_complexType.
+ */
+class domCg_sampler2D : public daeElement, public domCg_sampler2D_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER2D; }
+	static daeInt ID() { return 128; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler2D(DAE& dae) : daeElement(dae), domCg_sampler2D_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler2D() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler2D &operator=( const domCg_sampler2D &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_sampler3D.h b/include/1.4/dom/domCg_sampler3D.h
new file mode 100755
index 0000000..a865122
--- /dev/null
+++ b/include/1.4/dom/domCg_sampler3D.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_sampler3D_h__
+#define __domCg_sampler3D_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_sampler3D_common.h>
+class DAE;
+
+class domCg_sampler3D_complexType  : public domFx_sampler3D_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler3D_complexType(DAE& dae, daeElement* elt) : domFx_sampler3D_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler3D_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler3D_complexType &operator=( const domCg_sampler3D_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_sampler3D_complexType.
+ */
+class domCg_sampler3D : public daeElement, public domCg_sampler3D_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLER3D; }
+	static daeInt ID() { return 129; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_sampler3D(DAE& dae) : daeElement(dae), domCg_sampler3D_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_sampler3D() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_sampler3D &operator=( const domCg_sampler3D &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_samplerCUBE.h b/include/1.4/dom/domCg_samplerCUBE.h
new file mode 100755
index 0000000..0bb7f16
--- /dev/null
+++ b/include/1.4/dom/domCg_samplerCUBE.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_samplerCUBE_h__
+#define __domCg_samplerCUBE_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_samplerCUBE_common.h>
+class DAE;
+
+class domCg_samplerCUBE_complexType  : public domFx_samplerCUBE_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerCUBE_complexType(DAE& dae, daeElement* elt) : domFx_samplerCUBE_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerCUBE_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerCUBE_complexType &operator=( const domCg_samplerCUBE_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_samplerCUBE_complexType.
+ */
+class domCg_samplerCUBE : public daeElement, public domCg_samplerCUBE_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERCUBE; }
+	static daeInt ID() { return 130; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerCUBE(DAE& dae) : daeElement(dae), domCg_samplerCUBE_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerCUBE() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerCUBE &operator=( const domCg_samplerCUBE &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_samplerDEPTH.h b/include/1.4/dom/domCg_samplerDEPTH.h
new file mode 100755
index 0000000..48ade27
--- /dev/null
+++ b/include/1.4/dom/domCg_samplerDEPTH.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_samplerDEPTH_h__
+#define __domCg_samplerDEPTH_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_samplerDEPTH_common.h>
+class DAE;
+
+class domCg_samplerDEPTH_complexType  : public domFx_samplerDEPTH_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerDEPTH_complexType(DAE& dae, daeElement* elt) : domFx_samplerDEPTH_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerDEPTH_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerDEPTH_complexType &operator=( const domCg_samplerDEPTH_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_samplerDEPTH_complexType.
+ */
+class domCg_samplerDEPTH : public daeElement, public domCg_samplerDEPTH_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERDEPTH; }
+	static daeInt ID() { return 132; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerDEPTH(DAE& dae) : daeElement(dae), domCg_samplerDEPTH_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerDEPTH() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerDEPTH &operator=( const domCg_samplerDEPTH &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_samplerRECT.h b/include/1.4/dom/domCg_samplerRECT.h
new file mode 100755
index 0000000..733a5ba
--- /dev/null
+++ b/include/1.4/dom/domCg_samplerRECT.h
@@ -0,0 +1,75 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_samplerRECT_h__
+#define __domCg_samplerRECT_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_samplerRECT_common.h>
+class DAE;
+
+class domCg_samplerRECT_complexType  : public domFx_samplerRECT_common_complexType
+{
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerRECT_complexType(DAE& dae, daeElement* elt) : domFx_samplerRECT_common_complexType(dae, elt) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerRECT_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerRECT_complexType &operator=( const domCg_samplerRECT_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_samplerRECT_complexType.
+ */
+class domCg_samplerRECT : public daeElement, public domCg_samplerRECT_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SAMPLERRECT; }
+	static daeInt ID() { return 131; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_samplerRECT(DAE& dae) : daeElement(dae), domCg_samplerRECT_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_samplerRECT() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_samplerRECT &operator=( const domCg_samplerRECT &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_setarray_type.h b/include/1.4/dom/domCg_setarray_type.h
new file mode 100755
index 0000000..535b699
--- /dev/null
+++ b/include/1.4/dom/domCg_setarray_type.h
@@ -0,0 +1,177 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_setarray_type_h__
+#define __domCg_setarray_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domCg_setarray_type.h>
+#include <dom/domCg_setuser_type.h>
+class DAE;
+
+/**
+ * Creates a parameter of a one-dimensional array type.
+ */
+class domCg_setarray_type_complexType 
+{
+protected:  // Attribute
+/**
+ *  The length attribute specifies the length of the array. 
+ */
+	xsPositiveInteger attrLength;
+
+protected:  // Elements
+	domCg_param_type_Array elemCg_param_type_array;
+/**
+ * Nested array elements allow you to create multidemensional arrays. @see
+ * domArray
+ */
+	domCg_setarray_type_Array elemArray_array;
+/**
+ * The usertype element allows you to create arrays of usertypes. @see domUsertype
+ */
+	domCg_setuser_type_Array elemUsertype_array;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the length attribute.
+	 * @return Returns a xsPositiveInteger of the length attribute.
+	 */
+	xsPositiveInteger getLength() const { return attrLength; }
+	/**
+	 * Sets the length attribute.
+	 * @param atLength The new value for the length attribute.
+	 */
+	void setLength( xsPositiveInteger atLength ) { attrLength = atLength; }
+
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a reference to the array of cg_param_type elements.
+	 */
+	domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; }
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a constant reference to the array of cg_param_type elements.
+	 */
+	const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a reference to the array of array elements.
+	 */
+	domCg_setarray_type_Array &getArray_array() { return elemArray_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a constant reference to the array of array elements.
+	 */
+	const domCg_setarray_type_Array &getArray_array() const { return elemArray_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a reference to the array of usertype elements.
+	 */
+	domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a constant reference to the array of usertype elements.
+	 */
+	const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setarray_type_complexType(DAE& dae, daeElement* elt) : attrLength(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setarray_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setarray_type_complexType &operator=( const domCg_setarray_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_setarray_type_complexType.
+ */
+class domCg_setarray_type : public daeElement, public domCg_setarray_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETARRAY_TYPE; }
+	static daeInt ID() { return 135; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the length attribute.
+	 * @return Returns a xsPositiveInteger of the length attribute.
+	 */
+	xsPositiveInteger getLength() const { return attrLength; }
+	/**
+	 * Sets the length attribute.
+	 * @param atLength The new value for the length attribute.
+	 */
+	void setLength( xsPositiveInteger atLength ) { attrLength = atLength; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setarray_type(DAE& dae) : daeElement(dae), domCg_setarray_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setarray_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setarray_type &operator=( const domCg_setarray_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_setparam.h b/include/1.4/dom/domCg_setparam.h
new file mode 100755
index 0000000..01894fa
--- /dev/null
+++ b/include/1.4/dom/domCg_setparam.h
@@ -0,0 +1,182 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_setparam_h__
+#define __domCg_setparam_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domCg_setuser_type.h>
+#include <dom/domCg_setarray_type.h>
+#include <dom/domCg_connect_param.h>
+class DAE;
+
+/**
+ * Assigns a new value to a previously defined parameter.
+ */
+class domCg_setparam_complexType 
+{
+protected:  // Attributes
+	domCg_identifier attrRef;
+	xsNCName attrProgram;
+
+protected:  // Elements
+	domCg_param_typeRef elemCg_param_type;
+	domCg_setuser_typeRef elemUsertype;
+	domCg_setarray_typeRef elemArray;
+	domCg_connect_paramRef elemConnect_param;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; }
+
+	/**
+	 * Gets the program attribute.
+	 * @return Returns a xsNCName of the program attribute.
+	 */
+	xsNCName getProgram() const { return attrProgram; }
+	/**
+	 * Sets the program attribute.
+	 * @param atProgram The new value for the program attribute.
+	 */
+	void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram;}
+
+	/**
+	 * Gets the cg_param_type element.
+	 * @return a daeSmartRef to the cg_param_type element.
+	 */
+	const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; }
+	/**
+	 * Gets the usertype element.
+	 * @return a daeSmartRef to the usertype element.
+	 */
+	const domCg_setuser_typeRef getUsertype() const { return elemUsertype; }
+	/**
+	 * Gets the array element.
+	 * @return a daeSmartRef to the array element.
+	 */
+	const domCg_setarray_typeRef getArray() const { return elemArray; }
+	/**
+	 * Gets the connect_param element.
+	 * @return a daeSmartRef to the connect_param element.
+	 */
+	const domCg_connect_paramRef getConnect_param() const { return elemConnect_param; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setparam_complexType(DAE& dae, daeElement* elt) : attrRef(), attrProgram(), elemCg_param_type(), elemUsertype(), elemArray(), elemConnect_param() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setparam_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setparam_complexType &operator=( const domCg_setparam_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_setparam_complexType.
+ */
+class domCg_setparam : public daeElement, public domCg_setparam_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETPARAM; }
+	static daeInt ID() { return 144; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; }
+
+	/**
+	 * Gets the program attribute.
+	 * @return Returns a xsNCName of the program attribute.
+	 */
+	xsNCName getProgram() const { return attrProgram; }
+	/**
+	 * Sets the program attribute.
+	 * @param atProgram The new value for the program attribute.
+	 */
+	void setProgram( xsNCName atProgram ) { *(daeStringRef*)&attrProgram = atProgram; _validAttributeArray[1] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setparam(DAE& dae) : daeElement(dae), domCg_setparam_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setparam() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setparam &operator=( const domCg_setparam &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_setparam_simple.h b/include/1.4/dom/domCg_setparam_simple.h
new file mode 100755
index 0000000..70075bc
--- /dev/null
+++ b/include/1.4/dom/domCg_setparam_simple.h
@@ -0,0 +1,122 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_setparam_simple_h__
+#define __domCg_setparam_simple_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domFx_annotate_common.h>
+class DAE;
+
+class domCg_setparam_simple_complexType 
+{
+protected:  // Attribute
+	domCg_identifier attrRef;
+
+protected:  // Elements
+	domFx_annotate_common_Array elemAnnotate_array;
+	domCg_param_typeRef elemCg_param_type;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; }
+
+	/**
+	 * Gets the annotate element array.
+	 * @return Returns a reference to the array of annotate elements.
+	 */
+	domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; }
+	/**
+	 * Gets the annotate element array.
+	 * @return Returns a constant reference to the array of annotate elements.
+	 */
+	const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; }
+	/**
+	 * Gets the cg_param_type element.
+	 * @return a daeSmartRef to the cg_param_type element.
+	 */
+	const domCg_param_typeRef getCg_param_type() const { return elemCg_param_type; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setparam_simple_complexType(DAE& dae, daeElement* elt) : attrRef(), elemAnnotate_array(), elemCg_param_type() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setparam_simple_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setparam_simple_complexType &operator=( const domCg_setparam_simple_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_setparam_simple_complexType.
+ */
+class domCg_setparam_simple : public daeElement, public domCg_setparam_simple_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETPARAM_SIMPLE; }
+	static daeInt ID() { return 143; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the ref attribute.
+	 * @return Returns a domCg_identifier of the ref attribute.
+	 */
+	domCg_identifier getRef() const { return attrRef; }
+	/**
+	 * Sets the ref attribute.
+	 * @param atRef The new value for the ref attribute.
+	 */
+	void setRef( domCg_identifier atRef ) { attrRef = atRef; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setparam_simple(DAE& dae) : daeElement(dae), domCg_setparam_simple_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setparam_simple() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setparam_simple &operator=( const domCg_setparam_simple &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_setuser_type.h b/include/1.4/dom/domCg_setuser_type.h
new file mode 100755
index 0000000..48577fa
--- /dev/null
+++ b/include/1.4/dom/domCg_setuser_type.h
@@ -0,0 +1,221 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_setuser_type_h__
+#define __domCg_setuser_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCg_param_type.h>
+#include <dom/domCg_setarray_type.h>
+#include <dom/domCg_setuser_type.h>
+#include <dom/domCg_connect_param.h>
+#include <dom/domCg_setparam.h>
+class DAE;
+
+/**
+ * Creates an instance of a structured class.
+ */
+class domCg_setuser_type_complexType 
+{
+protected:  // Attributes
+	domCg_identifier attrName;
+/**
+ *  Reference a code or include element which defines the usertype 
+ */
+	xsNCName attrSource;
+
+protected:  // Elements
+	domCg_param_type_Array elemCg_param_type_array;
+	domCg_setarray_type_Array elemArray_array;
+	domCg_setuser_type_Array elemUsertype_array;
+	domCg_connect_param_Array elemConnect_param_array;
+/**
+ * Use a series of these to set the members by name.  The ref attribute will
+ * be relative to the usertype you are in right now. @see domSetparam
+ */
+	domCg_setparam_Array elemSetparam_array;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a domCg_identifier of the name attribute.
+	 */
+	domCg_identifier getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( domCg_identifier atName ) { attrName = atName; }
+
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a xsNCName of the source attribute.
+	 */
+	xsNCName getSource() const { return attrSource; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource;}
+
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a reference to the array of cg_param_type elements.
+	 */
+	domCg_param_type_Array &getCg_param_type_array() { return elemCg_param_type_array; }
+	/**
+	 * Gets the cg_param_type element array.
+	 * @return Returns a constant reference to the array of cg_param_type elements.
+	 */
+	const domCg_param_type_Array &getCg_param_type_array() const { return elemCg_param_type_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a reference to the array of array elements.
+	 */
+	domCg_setarray_type_Array &getArray_array() { return elemArray_array; }
+	/**
+	 * Gets the array element array.
+	 * @return Returns a constant reference to the array of array elements.
+	 */
+	const domCg_setarray_type_Array &getArray_array() const { return elemArray_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a reference to the array of usertype elements.
+	 */
+	domCg_setuser_type_Array &getUsertype_array() { return elemUsertype_array; }
+	/**
+	 * Gets the usertype element array.
+	 * @return Returns a constant reference to the array of usertype elements.
+	 */
+	const domCg_setuser_type_Array &getUsertype_array() const { return elemUsertype_array; }
+	/**
+	 * Gets the connect_param element array.
+	 * @return Returns a reference to the array of connect_param elements.
+	 */
+	domCg_connect_param_Array &getConnect_param_array() { return elemConnect_param_array; }
+	/**
+	 * Gets the connect_param element array.
+	 * @return Returns a constant reference to the array of connect_param elements.
+	 */
+	const domCg_connect_param_Array &getConnect_param_array() const { return elemConnect_param_array; }
+	/**
+	 * Gets the setparam element array.
+	 * @return Returns a reference to the array of setparam elements.
+	 */
+	domCg_setparam_Array &getSetparam_array() { return elemSetparam_array; }
+	/**
+	 * Gets the setparam element array.
+	 * @return Returns a constant reference to the array of setparam elements.
+	 */
+	const domCg_setparam_Array &getSetparam_array() const { return elemSetparam_array; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setuser_type_complexType(DAE& dae, daeElement* elt) : attrName(), attrSource(), elemCg_param_type_array(), elemArray_array(), elemUsertype_array(), elemConnect_param_array(), elemSetparam_array() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setuser_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setuser_type_complexType &operator=( const domCg_setuser_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_setuser_type_complexType.
+ */
+class domCg_setuser_type : public daeElement, public domCg_setuser_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SETUSER_TYPE; }
+	static daeInt ID() { return 136; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the name attribute.
+	 * @return Returns a domCg_identifier of the name attribute.
+	 */
+	domCg_identifier getName() const { return attrName; }
+	/**
+	 * Sets the name attribute.
+	 * @param atName The new value for the name attribute.
+	 */
+	void setName( domCg_identifier atName ) { attrName = atName; _validAttributeArray[0] = true; }
+
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a xsNCName of the source attribute.
+	 */
+	xsNCName getSource() const { return attrSource; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[1] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_setuser_type(DAE& dae) : daeElement(dae), domCg_setuser_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_setuser_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_setuser_type &operator=( const domCg_setuser_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCg_surface_type.h b/include/1.4/dom/domCg_surface_type.h
new file mode 100755
index 0000000..a409fd8
--- /dev/null
+++ b/include/1.4/dom/domCg_surface_type.h
@@ -0,0 +1,312 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCg_surface_type_h__
+#define __domCg_surface_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_surface_common.h>
+#include <dom/domFx_annotate_common.h>
+#include <dom/domFx_code_profile.h>
+#include <dom/domFx_include_common.h>
+#include <dom/domCg_setparam_simple.h>
+class DAE;
+
+/**
+ * Declares a resource that can be used both as the source for texture samples
+ * and as the target of a rendering pass.
+ */
+class domCg_surface_type_complexType  : public domFx_surface_common_complexType
+{
+public:
+	class domGenerator;
+
+	typedef daeSmartRef<domGenerator> domGeneratorRef;
+	typedef daeTArray<domGeneratorRef> domGenerator_Array;
+
+/**
+ * A procedural surface generator for the cg profile.
+ */
+	class domGenerator : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GENERATOR; }
+		static daeInt ID() { return 137; }
+		virtual daeInt typeID() const { return ID(); }
+	public:
+		class domName;
+
+		typedef daeSmartRef<domName> domNameRef;
+		typedef daeTArray<domNameRef> domName_Array;
+
+/**
+ * The entry symbol for the shader function.
+ */
+		class domName : public daeElement
+		{
+		public:
+			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; }
+			static daeInt ID() { return 138; }
+			virtual daeInt typeID() const { return ID(); }
+		protected:  // Attribute
+			xsNCName attrSource;
+
+		protected:  // Value
+			/**
+			 * The xsNCName value of the text data of this element. 
+			 */
+			xsNCName _value;
+
+		public:	//Accessors and Mutators
+			/**
+			 * Gets the source attribute.
+			 * @return Returns a xsNCName of the source attribute.
+			 */
+			xsNCName getSource() const { return attrSource; }
+			/**
+			 * Sets the source attribute.
+			 * @param atSource The new value for the source attribute.
+			 */
+			void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; }
+
+			/**
+			 * Gets the value of this element.
+			 * @return Returns a xsNCName of the value.
+			 */
+			xsNCName getValue() const { return _value; }
+			/**
+			 * Sets the _value of this element.
+			 * @param val The new value for this element.
+			 */
+			void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; }
+
+		protected:
+			/**
+			 * Constructor
+			 */
+			domName(DAE& dae) : daeElement(dae), attrSource(), _value() {}
+			/**
+			 * Destructor
+			 */
+			virtual ~domName() {}
+			/**
+			 * Overloaded assignment operator
+			 */
+			virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; }
+
+		public: // STATIC METHODS
+			/**
+			 * Creates an instance of this class and returns a daeElementRef referencing it.
+			 * @return a daeElementRef referencing an instance of this object.
+			 */
+			static DLLSPEC daeElementRef create(DAE& dae);
+			/**
+			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+			 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+			 * @return A daeMetaElement describing this COLLADA element.
+			 */
+			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+		};
+
+
+
+	protected:  // Elements
+/**
+ * The annotate element allows you to specify an annotation for this generator.
+ * @see domAnnotate
+ */
+		domFx_annotate_common_Array elemAnnotate_array;
+/**
+ * The code element allows you to embed cg sourcecode for the surface generator.
+ * @see domCode
+ */
+		domFx_code_profile_Array elemCode_array;
+/**
+ * The include element imports cg source code or precompiled binary shaders
+ * into the FX Runtime by referencing an external resource. @see domInclude
+ */
+		domFx_include_common_Array elemInclude_array;
+/**
+ * The entry symbol for the shader function. @see domName
+ */
+		domNameRef elemName;
+/**
+ * Assigns a new value to a previously defined parameter. @see domSetparam
+ */
+		domCg_setparam_simple_Array elemSetparam_array;
+		/**
+		 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+		 */
+		daeElementRefArray _contents;
+		/**
+		 * Used to preserve order in elements that have a complex content model.
+		 */
+		daeUIntArray       _contentsOrder;
+
+		/**
+		 * Used to store information needed for some content model objects.
+		 */
+		daeTArray< daeCharArray * > _CMData;
+
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the annotate element array.
+		 * @return Returns a reference to the array of annotate elements.
+		 */
+		domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; }
+		/**
+		 * Gets the annotate element array.
+		 * @return Returns a constant reference to the array of annotate elements.
+		 */
+		const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; }
+		/**
+		 * Gets the code element array.
+		 * @return Returns a reference to the array of code elements.
+		 */
+		domFx_code_profile_Array &getCode_array() { return elemCode_array; }
+		/**
+		 * Gets the code element array.
+		 * @return Returns a constant reference to the array of code elements.
+		 */
+		const domFx_code_profile_Array &getCode_array() const { return elemCode_array; }
+		/**
+		 * Gets the include element array.
+		 * @return Returns a reference to the array of include elements.
+		 */
+		domFx_include_common_Array &getInclude_array() { return elemInclude_array; }
+		/**
+		 * Gets the include element array.
+		 * @return Returns a constant reference to the array of include elements.
+		 */
+		const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; }
+		/**
+		 * Gets the name element.
+		 * @return a daeSmartRef to the name element.
+		 */
+		const domNameRef getName() const { return elemName; }
+		/**
+		 * Gets the setparam element array.
+		 * @return Returns a reference to the array of setparam elements.
+		 */
+		domCg_setparam_simple_Array &getSetparam_array() { return elemSetparam_array; }
+		/**
+		 * Gets the setparam element array.
+		 * @return Returns a constant reference to the array of setparam elements.
+		 */
+		const domCg_setparam_simple_Array &getSetparam_array() const { return elemSetparam_array; }
+		/**
+		 * Gets the _contents array.
+		 * @return Returns a reference to the _contents element array.
+		 */
+		daeElementRefArray &getContents() { return _contents; }
+		/**
+		 * Gets the _contents array.
+		 * @return Returns a constant reference to the _contents element array.
+		 */
+		const daeElementRefArray &getContents() const { return _contents; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domGenerator(DAE& dae) : daeElement(dae), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemName(), elemSetparam_array() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domGenerator() { daeElement::deleteCMDataArray(_CMData); }
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domGenerator &operator=( const domGenerator &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Element
+/**
+ * A procedural surface generator for the cg profile. @see domGenerator
+ */
+	domGeneratorRef elemGenerator;
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the generator element.
+	 * @return a daeSmartRef to the generator element.
+	 */
+	const domGeneratorRef getGenerator() const { return elemGenerator; }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_surface_type_complexType(DAE& dae, daeElement* elt) : domFx_surface_common_complexType(dae, elt), elemGenerator() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_surface_type_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_surface_type_complexType &operator=( const domCg_surface_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCg_surface_type_complexType.
+ */
+class domCg_surface_type : public daeElement, public domCg_surface_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CG_SURFACE_TYPE; }
+	static daeInt ID() { return 139; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCg_surface_type(DAE& dae) : daeElement(dae), domCg_surface_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCg_surface_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCg_surface_type &operator=( const domCg_surface_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domChannel.h b/include/1.4/dom/domChannel.h
new file mode 100755
index 0000000..5e649cf
--- /dev/null
+++ b/include/1.4/dom/domChannel.h
@@ -0,0 +1,104 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domChannel_h__
+#define __domChannel_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+class DAE;
+
+/**
+ * The channel element declares an output channel of an animation.
+ */
+class domChannel : public daeElement
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CHANNEL; }
+	static daeInt ID() { return 653; }
+	virtual daeInt typeID() const { return ID(); }
+protected:  // Attributes
+/**
+ *  The source attribute indicates the location of the sampler using a URL
+ * expression.  The sampler must be declared within the same document. Required
+ * attribute. 
+ */
+	domURIFragmentType attrSource;
+/**
+ *  The target attribute indicates the location of the element bound to the
+ * output of the sampler.  This text string is a path-name following a simple
+ * syntax described in Address Syntax.  Required attribute. 
+ */
+	xsToken attrTarget;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a domURIFragmentType reference of the source attribute.
+	 */
+	domURIFragmentType &getSource() { return attrSource; }
+	/**
+	 * Gets the source attribute.
+	 * @return Returns a constant domURIFragmentType reference of the source attribute.
+	 */
+	const domURIFragmentType &getSource() const { return attrSource; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( const domURIFragmentType &atSource ) { attrSource = atSource; _validAttributeArray[0] = true; }
+	/**
+	 * Sets the source attribute.
+	 * @param atSource The new value for the source attribute.
+	 */
+	void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[0] = true; }
+
+	/**
+	 * Gets the target attribute.
+	 * @return Returns a xsToken of the target attribute.
+	 */
+	xsToken getTarget() const { return attrTarget; }
+	/**
+	 * Sets the target attribute.
+	 * @param atTarget The new value for the target attribute.
+	 */
+	void setTarget( xsToken atTarget ) { *(daeStringRef*)&attrTarget = atTarget; _validAttributeArray[1] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domChannel(DAE& dae) : daeElement(dae), attrSource(dae, *this), attrTarget() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domChannel() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domChannel &operator=( const domChannel &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCommon_color_or_texture_type.h b/include/1.4/dom/domCommon_color_or_texture_type.h
new file mode 100755
index 0000000..9eb6363
--- /dev/null
+++ b/include/1.4/dom/domCommon_color_or_texture_type.h
@@ -0,0 +1,328 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCommon_color_or_texture_type_h__
+#define __domCommon_color_or_texture_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domExtra.h>
+class DAE;
+
+class domCommon_color_or_texture_type_complexType 
+{
+public:
+	class domColor;
+
+	typedef daeSmartRef<domColor> domColorRef;
+	typedef daeTArray<domColorRef> domColor_Array;
+
+	class domColor : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COLOR; }
+		static daeInt ID() { return 116; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attribute
+		xsNCName attrSid;
+
+	protected:  // Value
+		/**
+		 * The domFx_color_common value of the text data of this element. 
+		 */
+		domFx_color_common _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the sid attribute.
+		 * @return Returns a xsNCName of the sid attribute.
+		 */
+		xsNCName getSid() const { return attrSid; }
+		/**
+		 * Sets the sid attribute.
+		 * @param atSid The new value for the sid attribute.
+		 */
+		void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
+
+		/**
+		 * Gets the _value array.
+		 * @return Returns a domFx_color_common reference of the _value array.
+		 */
+		domFx_color_common &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant domFx_color_common reference of the _value array.
+		 */
+		const domFx_color_common &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const domFx_color_common &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domColor(DAE& dae) : daeElement(dae), attrSid(), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domColor() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domColor &operator=( const domColor &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domParam;
+
+	typedef daeSmartRef<domParam> domParamRef;
+	typedef daeTArray<domParamRef> domParam_Array;
+
+	class domParam : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; }
+		static daeInt ID() { return 117; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attribute
+		xsNCName attrRef;
+
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the ref attribute.
+		 * @return Returns a xsNCName of the ref attribute.
+		 */
+		xsNCName getRef() const { return attrRef; }
+		/**
+		 * Sets the ref attribute.
+		 * @param atRef The new value for the ref attribute.
+		 */
+		void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domParam(DAE& dae) : daeElement(dae), attrRef() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domParam() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domTexture;
+
+	typedef daeSmartRef<domTexture> domTextureRef;
+	typedef daeTArray<domTextureRef> domTexture_Array;
+
+	class domTexture : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TEXTURE; }
+		static daeInt ID() { return 118; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attributes
+		xsNCName attrTexture;
+		xsNCName attrTexcoord;
+
+	protected:  // Element
+		domExtraRef elemExtra;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the texture attribute.
+		 * @return Returns a xsNCName of the texture attribute.
+		 */
+		xsNCName getTexture() const { return attrTexture; }
+		/**
+		 * Sets the texture attribute.
+		 * @param atTexture The new value for the texture attribute.
+		 */
+		void setTexture( xsNCName atTexture ) { *(daeStringRef*)&attrTexture = atTexture; _validAttributeArray[0] = true; }
+
+		/**
+		 * Gets the texcoord attribute.
+		 * @return Returns a xsNCName of the texcoord attribute.
+		 */
+		xsNCName getTexcoord() const { return attrTexcoord; }
+		/**
+		 * Sets the texcoord attribute.
+		 * @param atTexcoord The new value for the texcoord attribute.
+		 */
+		void setTexcoord( xsNCName atTexcoord ) { *(daeStringRef*)&attrTexcoord = atTexcoord; _validAttributeArray[1] = true; }
+
+		/**
+		 * Gets the extra element.
+		 * @return a daeSmartRef to the extra element.
+		 */
+		const domExtraRef getExtra() const { return elemExtra; }
+	protected:
+		/**
+		 * Constructor
+		 */
+		domTexture(DAE& dae) : daeElement(dae), attrTexture(), attrTexcoord(), elemExtra() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domTexture() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domTexture &operator=( const domTexture &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+	domColorRef elemColor;
+	domParamRef elemParam;
+	domTextureRef elemTexture;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the color element.
+	 * @return a daeSmartRef to the color element.
+	 */
+	const domColorRef getColor() const { return elemColor; }
+	/**
+	 * Gets the param element.
+	 * @return a daeSmartRef to the param element.
+	 */
+	const domParamRef getParam() const { return elemParam; }
+	/**
+	 * Gets the texture element.
+	 * @return a daeSmartRef to the texture element.
+	 */
+	const domTextureRef getTexture() const { return elemTexture; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_color_or_texture_type_complexType(DAE& dae, daeElement* elt) : elemColor(), elemParam(), elemTexture() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_color_or_texture_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_color_or_texture_type_complexType &operator=( const domCommon_color_or_texture_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCommon_color_or_texture_type_complexType.
+ */
+class domCommon_color_or_texture_type : public daeElement, public domCommon_color_or_texture_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_COLOR_OR_TEXTURE_TYPE; }
+	static daeInt ID() { return 119; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_color_or_texture_type(DAE& dae) : daeElement(dae), domCommon_color_or_texture_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_color_or_texture_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_color_or_texture_type &operator=( const domCommon_color_or_texture_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCommon_float_or_param_type.h b/include/1.4/dom/domCommon_float_or_param_type.h
new file mode 100755
index 0000000..b630226
--- /dev/null
+++ b/include/1.4/dom/domCommon_float_or_param_type.h
@@ -0,0 +1,242 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCommon_float_or_param_type_h__
+#define __domCommon_float_or_param_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+class DAE;
+
+class domCommon_float_or_param_type_complexType 
+{
+public:
+	class domFloat;
+
+	typedef daeSmartRef<domFloat> domFloatRef;
+	typedef daeTArray<domFloatRef> domFloat_Array;
+
+	class domFloat : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; }
+		static daeInt ID() { return 113; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attribute
+		xsNCName attrSid;
+
+	protected:  // Value
+		/**
+		 * The ::domFloat value of the text data of this element. 
+		 */
+		::domFloat _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the sid attribute.
+		 * @return Returns a xsNCName of the sid attribute.
+		 */
+		xsNCName getSid() const { return attrSid; }
+		/**
+		 * Sets the sid attribute.
+		 * @param atSid The new value for the sid attribute.
+		 */
+		void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
+
+		/**
+		 * Gets the value of this element.
+		 * @return a ::domFloat of the value.
+		 */
+		::domFloat getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( ::domFloat val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat(DAE& dae) : daeElement(dae), attrSid(), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domParam;
+
+	typedef daeSmartRef<domParam> domParamRef;
+	typedef daeTArray<domParamRef> domParam_Array;
+
+	class domParam : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; }
+		static daeInt ID() { return 114; }
+		virtual daeInt typeID() const { return ID(); }
+	protected:  // Attribute
+		xsNCName attrRef;
+
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the ref attribute.
+		 * @return Returns a xsNCName of the ref attribute.
+		 */
+		xsNCName getRef() const { return attrRef; }
+		/**
+		 * Sets the ref attribute.
+		 * @param atRef The new value for the ref attribute.
+		 */
+		void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domParam(DAE& dae) : daeElement(dae), attrRef() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domParam() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+
+protected:  // Elements
+	domFloatRef elemFloat;
+	domParamRef elemParam;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the float element.
+	 * @return a daeSmartRef to the float element.
+	 */
+	const domFloatRef getFloat() const { return elemFloat; }
+	/**
+	 * Gets the param element.
+	 * @return a daeSmartRef to the param element.
+	 */
+	const domParamRef getParam() const { return elemParam; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_float_or_param_type_complexType(DAE& dae, daeElement* elt) : elemFloat(), elemParam() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_float_or_param_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_float_or_param_type_complexType &operator=( const domCommon_float_or_param_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCommon_float_or_param_type_complexType.
+ */
+class domCommon_float_or_param_type : public daeElement, public domCommon_float_or_param_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_FLOAT_OR_PARAM_TYPE; }
+	static daeInt ID() { return 115; }
+	virtual daeInt typeID() const { return ID(); }
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_float_or_param_type(DAE& dae) : daeElement(dae), domCommon_float_or_param_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_float_or_param_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_float_or_param_type &operator=( const domCommon_float_or_param_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCommon_newparam_type.h b/include/1.4/dom/domCommon_newparam_type.h
new file mode 100755
index 0000000..deb940d
--- /dev/null
+++ b/include/1.4/dom/domCommon_newparam_type.h
@@ -0,0 +1,484 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCommon_newparam_type_h__
+#define __domCommon_newparam_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domFx_surface_common.h>
+#include <dom/domFx_sampler2D_common.h>
+class DAE;
+
+class domCommon_newparam_type_complexType 
+{
+public:
+	class domSemantic;
+
+	typedef daeSmartRef<domSemantic> domSemanticRef;
+	typedef daeTArray<domSemanticRef> domSemantic_Array;
+
+	class domSemantic : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SEMANTIC; }
+		static daeInt ID() { return 121; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The xsNCName value of the text data of this element. 
+		 */
+		xsNCName _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return Returns a xsNCName of the value.
+		 */
+		xsNCName getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domSemantic(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domSemantic() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domSemantic &operator=( const domSemantic &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat;
+
+	typedef daeSmartRef<domFloat> domFloatRef;
+	typedef daeTArray<domFloatRef> domFloat_Array;
+
+	class domFloat : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT; }
+		static daeInt ID() { return 122; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The ::domFloat value of the text data of this element. 
+		 */
+		::domFloat _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the value of this element.
+		 * @return a ::domFloat of the value.
+		 */
+		::domFloat getValue() const { return _value; }
+		/**
+		 * Sets the _value of this element.
+		 * @param val The new value for this element.
+		 */
+		void setValue( ::domFloat val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat &operator=( const domFloat &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat2;
+
+	typedef daeSmartRef<domFloat2> domFloat2Ref;
+	typedef daeTArray<domFloat2Ref> domFloat2_Array;
+
+	class domFloat2 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT2; }
+		static daeInt ID() { return 123; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The ::domFloat2 value of the text data of this element. 
+		 */
+		::domFloat2 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a ::domFloat2 reference of the _value array.
+		 */
+		::domFloat2 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant ::domFloat2 reference of the _value array.
+		 */
+		const ::domFloat2 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const ::domFloat2 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat2(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat2() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat2 &operator=( const domFloat2 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat3;
+
+	typedef daeSmartRef<domFloat3> domFloat3Ref;
+	typedef daeTArray<domFloat3Ref> domFloat3_Array;
+
+	class domFloat3 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT3; }
+		static daeInt ID() { return 124; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The ::domFloat3 value of the text data of this element. 
+		 */
+		::domFloat3 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a ::domFloat3 reference of the _value array.
+		 */
+		::domFloat3 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant ::domFloat3 reference of the _value array.
+		 */
+		const ::domFloat3 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const ::domFloat3 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat3(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat3() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat3 &operator=( const domFloat3 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+	class domFloat4;
+
+	typedef daeSmartRef<domFloat4> domFloat4Ref;
+	typedef daeTArray<domFloat4Ref> domFloat4_Array;
+
+	class domFloat4 : public daeElement
+	{
+	public:
+		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::FLOAT4; }
+		static daeInt ID() { return 125; }
+		virtual daeInt typeID() const { return ID(); }
+
+	protected:  // Value
+		/**
+		 * The ::domFloat4 value of the text data of this element. 
+		 */
+		::domFloat4 _value;
+
+	public:	//Accessors and Mutators
+		/**
+		 * Gets the _value array.
+		 * @return Returns a ::domFloat4 reference of the _value array.
+		 */
+		::domFloat4 &getValue() { return _value; }
+		/**
+		 * Gets the _value array.
+		 * @return Returns a constant ::domFloat4 reference of the _value array.
+		 */
+		const ::domFloat4 &getValue() const { return _value; }
+		/**
+		 * Sets the _value array.
+		 * @param val The new value for the _value array.
+		 */
+		void setValue( const ::domFloat4 &val ) { _value = val; }
+
+	protected:
+		/**
+		 * Constructor
+		 */
+		domFloat4(DAE& dae) : daeElement(dae), _value() {}
+		/**
+		 * Destructor
+		 */
+		virtual ~domFloat4() {}
+		/**
+		 * Overloaded assignment operator
+		 */
+		virtual domFloat4 &operator=( const domFloat4 &cpy ) { (void)cpy; return *this; }
+
+	public: // STATIC METHODS
+		/**
+		 * Creates an instance of this class and returns a daeElementRef referencing it.
+		 * @return a daeElementRef referencing an instance of this object.
+		 */
+		static DLLSPEC daeElementRef create(DAE& dae);
+		/**
+		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+		 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+		 * @return A daeMetaElement describing this COLLADA element.
+		 */
+		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+	};
+
+
+protected:  // Attribute
+/**
+ *  The sid attribute is a text string value containing the sub-identifier
+ * of this element.  This value must be unique within the scope of the parent
+ * element. Optional attribute. 
+ */
+	xsNCName attrSid;
+
+protected:  // Elements
+	domSemanticRef elemSemantic;
+	domFloatRef elemFloat;
+	domFloat2Ref elemFloat2;
+	domFloat3Ref elemFloat3;
+	domFloat4Ref elemFloat4;
+	domFx_surface_commonRef elemSurface;
+	domFx_sampler2D_commonRef elemSampler2D;
+	/**
+	 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
+	 */
+	daeElementRefArray _contents;
+	/**
+	 * Used to preserve order in elements that have a complex content model.
+	 */
+	daeUIntArray       _contentsOrder;
+
+	/**
+	 * Used to store information needed for some content model objects.
+	 */
+	daeTArray< daeCharArray * > _CMData;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the sid attribute.
+	 * @return Returns a xsNCName of the sid attribute.
+	 */
+	xsNCName getSid() const { return attrSid; }
+	/**
+	 * Sets the sid attribute.
+	 * @param atSid The new value for the sid attribute.
+	 */
+	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid;}
+
+	/**
+	 * Gets the semantic element.
+	 * @return a daeSmartRef to the semantic element.
+	 */
+	const domSemanticRef getSemantic() const { return elemSemantic; }
+	/**
+	 * Gets the float element.
+	 * @return a daeSmartRef to the float element.
+	 */
+	const domFloatRef getFloat() const { return elemFloat; }
+	/**
+	 * Gets the float2 element.
+	 * @return a daeSmartRef to the float2 element.
+	 */
+	const domFloat2Ref getFloat2() const { return elemFloat2; }
+	/**
+	 * Gets the float3 element.
+	 * @return a daeSmartRef to the float3 element.
+	 */
+	const domFloat3Ref getFloat3() const { return elemFloat3; }
+	/**
+	 * Gets the float4 element.
+	 * @return a daeSmartRef to the float4 element.
+	 */
+	const domFloat4Ref getFloat4() const { return elemFloat4; }
+	/**
+	 * Gets the surface element.
+	 * @return a daeSmartRef to the surface element.
+	 */
+	const domFx_surface_commonRef getSurface() const { return elemSurface; }
+	/**
+	 * Gets the sampler2D element.
+	 * @return a daeSmartRef to the sampler2D element.
+	 */
+	const domFx_sampler2D_commonRef getSampler2D() const { return elemSampler2D; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a reference to the _contents element array.
+	 */
+	daeElementRefArray &getContents() { return _contents; }
+	/**
+	 * Gets the _contents array.
+	 * @return Returns a constant reference to the _contents element array.
+	 */
+	const daeElementRefArray &getContents() const { return _contents; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_newparam_type_complexType(DAE& dae, daeElement* elt) : attrSid(), elemSemantic(), elemFloat(), elemFloat2(), elemFloat3(), elemFloat4(), elemSurface(), elemSampler2D() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_newparam_type_complexType() { daeElement::deleteCMDataArray(_CMData); }
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_newparam_type_complexType &operator=( const domCommon_newparam_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCommon_newparam_type_complexType.
+ */
+class domCommon_newparam_type : public daeElement, public domCommon_newparam_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_NEWPARAM_TYPE; }
+	static daeInt ID() { return 126; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the sid attribute.
+	 * @return Returns a xsNCName of the sid attribute.
+	 */
+	xsNCName getSid() const { return attrSid; }
+	/**
+	 * Sets the sid attribute.
+	 * @param atSid The new value for the sid attribute.
+	 */
+	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_newparam_type(DAE& dae) : daeElement(dae), domCommon_newparam_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_newparam_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_newparam_type &operator=( const domCommon_newparam_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domCommon_transparent_type.h b/include/1.4/dom/domCommon_transparent_type.h
new file mode 100755
index 0000000..c6c527b
--- /dev/null
+++ b/include/1.4/dom/domCommon_transparent_type.h
@@ -0,0 +1,103 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __domCommon_transparent_type_h__
+#define __domCommon_transparent_type_h__
+
+#include <dae/daeDocument.h>
+#include <dom/domTypes.h>
+#include <dom/domElements.h>
+
+#include <dom/domCommon_color_or_texture_type.h>
+class DAE;
+
+class domCommon_transparent_type_complexType  : public domCommon_color_or_texture_type_complexType
+{
+protected:  // Attribute
+	domFx_opaque_enum attrOpaque;
+
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the opaque attribute.
+	 * @return Returns a domFx_opaque_enum of the opaque attribute.
+	 */
+	domFx_opaque_enum getOpaque() const { return attrOpaque; }
+	/**
+	 * Sets the opaque attribute.
+	 * @param atOpaque The new value for the opaque attribute.
+	 */
+	void setOpaque( domFx_opaque_enum atOpaque ) { attrOpaque = atOpaque; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_transparent_type_complexType(DAE& dae, daeElement* elt) : domCommon_color_or_texture_type_complexType(dae, elt), attrOpaque() {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_transparent_type_complexType() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_transparent_type_complexType &operator=( const domCommon_transparent_type_complexType &cpy ) { (void)cpy; return *this; }
+};
+
+/**
+ * An element of type domCommon_transparent_type_complexType.
+ */
+class domCommon_transparent_type : public daeElement, public domCommon_transparent_type_complexType
+{
+public:
+	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMMON_TRANSPARENT_TYPE; }
+	static daeInt ID() { return 120; }
+	virtual daeInt typeID() const { return ID(); }
+
+public:	//Accessors and Mutators
+	/**
+	 * Gets the opaque attribute.
+	 * @return Returns a domFx_opaque_enum of the opaque attribute.
+	 */
+	domFx_opaque_enum getOpaque() const { return attrOpaque; }
+	/**
+	 * Sets the opaque attribute.
+	 * @param atOpaque The new value for the opaque attribute.
+	 */
+	void setOpaque( domFx_opaque_enum atOpaque ) { attrOpaque = atOpaque; _validAttributeArray[0] = true; }
+
+protected:
+	/**
+	 * Constructor
+	 */
+	domCommon_transparent_type(DAE& dae) : daeElement(dae), domCommon_transparent_type_complexType(dae, this) {}
+	/**
+	 * Destructor
+	 */
+	virtual ~domCommon_transparent_type() {}
+	/**
+	 * Overloaded assignment operator
+	 */
+	virtual domCommon_transparent_type &operator=( const domCommon_transparent_type &cpy ) { (void)cpy; return *this; }
+
+public: // STATIC METHODS
+	/**
+	 * Creates an instance of this class and returns a daeElementRef referencing it.
+	 * @return a daeElementRef referencing an instance of this object.
+	 */
+	static DLLSPEC daeElementRef create(DAE& dae);
+	/**
+	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
+	 * If a daeMetaElement already exists it will return that instead of creating a new one. 
+	 * @return A daeMetaElement describing this COLLADA element.
+	 */
+	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
+};
+
+
+#endif
diff --git a/include/1.4/dom/domConstants.h b/include/1.4/dom/domConstants.h
new file mode 100755
index 0000000..12f8eec
--- /dev/null
+++ b/include/1.4/dom/domConstants.h
@@ -0,0 +1,1088 @@
+/*

+* Copyright 2006 Sony Computer Entertainment Inc.

+*

+* Licensed under the MIT Open Source License, for details please see license.txt or the website

+* http://www.opensource.org/licenses/mit-license.php

+*

+*/ 
+
+#ifndef __DOM_CONSTANTS_H__
+#define __DOM_CONSTANTS_H__
+
+#include <dae/daeDomTypes.h>
+
+extern DLLSPEC daeString COLLADA_VERSION;
+extern DLLSPEC daeString COLLADA_NAMESPACE;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_BINORMAL;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_COLOR;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_CONTINUITY;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_IMAGE;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_IN_TANGENT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_INPUT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_INTERPOLATION;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_INV_BIND_MATRIX;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_JOINT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_LINEAR_STEPS;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_TARGET;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_MORPH_WEIGHT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_NORMAL;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_OUTPUT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_OUT_TANGENT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_POSITION;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_TANGENT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXBINORMAL;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXCOORD;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_TEXTANGENT;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_UV;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_VERTEX;
+extern DLLSPEC daeString COMMON_PROFILE_INPUT_WEIGHT;
+
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_A;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_ANGLE;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_B;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_DOUBLE_SIDED;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_G;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_P;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_Q;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_R;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_S;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_T;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_TIME;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_U;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_V;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_W;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_X;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_Y;
+extern DLLSPEC daeString COMMON_PROFILE_PARAM_Z;
+
+
+extern DLLSPEC daeString COLLADA_TYPE_INPUTGLOBAL;
+extern DLLSPEC daeString COLLADA_TYPE_INPUTLOCAL;
+extern DLLSPEC daeString COLLADA_TYPE_INPUTLOCALOFFSET;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCEWITHEXTRA;
+extern DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT;
+extern DLLSPEC daeString COLLADA_TYPE_TARGETABLEFLOAT3;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_FORMAT_HINT_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_CHANNELS;
+extern DLLSPEC daeString COLLADA_TYPE_RANGE;
+extern DLLSPEC daeString COLLADA_TYPE_PRECISION;
+extern DLLSPEC daeString COLLADA_TYPE_OPTION;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_PLANAR_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_ALL;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_VOLUME_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_PRIMARY;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_CUBE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_ORDER;
+extern DLLSPEC daeString COLLADA_TYPE_FACE;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_FROM_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FORMAT;
+extern DLLSPEC daeString COLLADA_TYPE_SIZE;
+extern DLLSPEC daeString COLLADA_TYPE_VIEWPORT_RATIO;
+extern DLLSPEC daeString COLLADA_TYPE_MIP_LEVELS;
+extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_GENERATE;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER1D_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_SOURCE;
+extern DLLSPEC daeString COLLADA_TYPE_WRAP_S;
+extern DLLSPEC daeString COLLADA_TYPE_MINFILTER;
+extern DLLSPEC daeString COLLADA_TYPE_MAGFILTER;
+extern DLLSPEC daeString COLLADA_TYPE_MIPFILTER;
+extern DLLSPEC daeString COLLADA_TYPE_BORDER_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_MAXLEVEL;
+extern DLLSPEC daeString COLLADA_TYPE_MIPMAP_BIAS;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER2D_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_WRAP_T;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLER3D_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_WRAP_P;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERCUBE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERRECT_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SAMPLERDEPTH_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_COLORTARGET_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_DEPTHTARGET_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_STENCILTARGET_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARCOLOR_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARDEPTH_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_CLEARSTENCIL_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_INCLUDE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FX_NEWPARAM_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_SEMANTIC;
+extern DLLSPEC daeString COLLADA_TYPE_MODIFIER;
+extern DLLSPEC daeString COLLADA_TYPE_FX_CODE_PROFILE;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER1D;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER2D;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLER3D;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERCUBE;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERRECT;
+extern DLLSPEC daeString COLLADA_TYPE_GL_SAMPLERDEPTH;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_NEWARRAY_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETARRAY_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_SURFACE_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GENERATOR;
+extern DLLSPEC daeString COLLADA_TYPE_NAME;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_NEWPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM_SIMPLE;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_SETPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_COMMON_FLOAT_OR_PARAM_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT;
+extern DLLSPEC daeString COLLADA_TYPE_PARAM;
+extern DLLSPEC daeString COLLADA_TYPE_COMMON_COLOR_OR_TEXTURE_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE;
+extern DLLSPEC daeString COLLADA_TYPE_COMMON_TRANSPARENT_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_COMMON_NEWPARAM_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT2;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT3;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT4;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER1D;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER2D;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLER3D;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERCUBE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERRECT;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SAMPLERDEPTH;
+extern DLLSPEC daeString COLLADA_TYPE_CG_CONNECT_PARAM;
+extern DLLSPEC daeString COLLADA_TYPE_CG_NEWARRAY_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SETARRAY_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SETUSER_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SURFACE_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_NEWPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM_SIMPLE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_SETPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_CONSTANT_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXENV_COMMAND_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTRGB_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDRGB_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMANDALPHA_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXCOMBINER_COMMAND_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_PIPELINE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_TEXTURE_UNIT;
+extern DLLSPEC daeString COLLADA_TYPE_SURFACE;
+extern DLLSPEC daeString COLLADA_TYPE_SAMPLER_STATE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXCOORD;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_SAMPLER_STATE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_NEWPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_FX_SURFACE_INIT_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_INIT_AS_NULL;
+extern DLLSPEC daeString COLLADA_TYPE_INIT_AS_TARGET;
+extern DLLSPEC daeString COLLADA_TYPE_FX_ANNOTATE_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL2;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL3;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL4;
+extern DLLSPEC daeString COLLADA_TYPE_INT;
+extern DLLSPEC daeString COLLADA_TYPE_INT2;
+extern DLLSPEC daeString COLLADA_TYPE_INT3;
+extern DLLSPEC daeString COLLADA_TYPE_INT4;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X2;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X3;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X4;
+extern DLLSPEC daeString COLLADA_TYPE_STRING;
+extern DLLSPEC daeString COLLADA_TYPE_FX_BASIC_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X1;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X2;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X3;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT1X4;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X1;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X3;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT2X4;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X1;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X2;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT3X4;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X1;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X2;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT4X3;
+extern DLLSPEC daeString COLLADA_TYPE_ENUM;
+extern DLLSPEC daeString COLLADA_TYPE_GL_PIPELINE_SETTINGS;
+extern DLLSPEC daeString COLLADA_TYPE_ALPHA_FUNC;
+extern DLLSPEC daeString COLLADA_TYPE_FUNC;
+extern DLLSPEC daeString COLLADA_TYPE_VALUE;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC;
+extern DLLSPEC daeString COLLADA_TYPE_SRC;
+extern DLLSPEC daeString COLLADA_TYPE_DEST;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_FUNC_SEPARATE;
+extern DLLSPEC daeString COLLADA_TYPE_SRC_RGB;
+extern DLLSPEC daeString COLLADA_TYPE_DEST_RGB;
+extern DLLSPEC daeString COLLADA_TYPE_SRC_ALPHA;
+extern DLLSPEC daeString COLLADA_TYPE_DEST_ALPHA;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_EQUATION_SEPARATE;
+extern DLLSPEC daeString COLLADA_TYPE_RGB;
+extern DLLSPEC daeString COLLADA_TYPE_ALPHA;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_MODE;
+extern DLLSPEC daeString COLLADA_TYPE_CULL_FACE;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_FUNC;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_MODE;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_COORD_SRC;
+extern DLLSPEC daeString COLLADA_TYPE_FRONT_FACE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_COLOR_CONTROL;
+extern DLLSPEC daeString COLLADA_TYPE_LOGIC_OP;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_MODE;
+extern DLLSPEC daeString COLLADA_TYPE_SHADE_MODEL;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC;
+extern DLLSPEC daeString COLLADA_TYPE_REF;
+extern DLLSPEC daeString COLLADA_TYPE_MASK;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_OP;
+extern DLLSPEC daeString COLLADA_TYPE_FAIL;
+extern DLLSPEC daeString COLLADA_TYPE_ZFAIL;
+extern DLLSPEC daeString COLLADA_TYPE_ZPASS;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_FUNC_SEPARATE;
+extern DLLSPEC daeString COLLADA_TYPE_FRONT;
+extern DLLSPEC daeString COLLADA_TYPE_BACK;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_OP_SEPARATE;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK_SEPARATE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_AMBIENT;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_DIFFUSE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPECULAR;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_POSITION;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_CONSTANT_ATTENUATION;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUATION;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_QUADRATIC_ATTENUATION;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_CUTOFF;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_DIRECTION;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_SPOT_EXPONENT;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE1D;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE2D;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE3D;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURERECT;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE1D_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE2D_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE3D_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURECUBE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURERECT_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTUREDEPTH_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_ENV_MODE;
+extern DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE;
+extern DLLSPEC daeString COLLADA_TYPE_CLIP_PLANE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_CLEAR_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_CLEAR_STENCIL;
+extern DLLSPEC daeString COLLADA_TYPE_CLEAR_DEPTH;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_MASK;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_MASK;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_RANGE;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_DENSITY;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_START;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_END;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_COLOR;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_AMBIENT;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHTING_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE;
+extern DLLSPEC daeString COLLADA_TYPE_LINE_WIDTH;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_AMBIENT;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_DIFFUSE;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_EMISSION;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_SHININESS;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL_SPECULAR;
+extern DLLSPEC daeString COLLADA_TYPE_MODEL_VIEW_MATRIX;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_DISTANCE_ATTENUATION;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_FADE_THRESHOLD_SIZE;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MIN;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_SIZE_MAX;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET;
+extern DLLSPEC daeString COLLADA_TYPE_PROJECTION_MATRIX;
+extern DLLSPEC daeString COLLADA_TYPE_SCISSOR;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_MASK;
+extern DLLSPEC daeString COLLADA_TYPE_ALPHA_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_AUTO_NORMAL_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_BLEND_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_LOGIC_OP_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_MATERIAL_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_CULL_FACE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_BOUNDS_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_CLAMP_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_DITHER_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_FOG_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_LOCAL_VIEWER_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_MODEL_TWO_SIDE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LINE_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LINE_STIPPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_LOGIC_OP_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_MULTISAMPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_NORMALIZE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POINT_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_FILL_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_LINE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_OFFSET_POINT_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGON_STIPPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_RESCALE_NORMAL_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_COVERAGE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_ALPHA_TO_ONE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_SAMPLE_COVERAGE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_SCISSOR_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_GLSL_PARAM_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_CG_PARAM_TYPE;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL1;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL1X1;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL1X2;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL1X3;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL1X4;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL2X1;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL2X2;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL2X3;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL2X4;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL3X1;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL3X2;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL3X3;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL3X4;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL4X1;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL4X2;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL4X3;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL4X4;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT1;
+extern DLLSPEC daeString COLLADA_TYPE_INT1;
+extern DLLSPEC daeString COLLADA_TYPE_INT1X1;
+extern DLLSPEC daeString COLLADA_TYPE_INT1X2;
+extern DLLSPEC daeString COLLADA_TYPE_INT1X3;
+extern DLLSPEC daeString COLLADA_TYPE_INT1X4;
+extern DLLSPEC daeString COLLADA_TYPE_INT2X1;
+extern DLLSPEC daeString COLLADA_TYPE_INT2X2;
+extern DLLSPEC daeString COLLADA_TYPE_INT2X3;
+extern DLLSPEC daeString COLLADA_TYPE_INT2X4;
+extern DLLSPEC daeString COLLADA_TYPE_INT3X1;
+extern DLLSPEC daeString COLLADA_TYPE_INT3X2;
+extern DLLSPEC daeString COLLADA_TYPE_INT3X3;
+extern DLLSPEC daeString COLLADA_TYPE_INT3X4;
+extern DLLSPEC daeString COLLADA_TYPE_INT4X1;
+extern DLLSPEC daeString COLLADA_TYPE_INT4X2;
+extern DLLSPEC daeString COLLADA_TYPE_INT4X3;
+extern DLLSPEC daeString COLLADA_TYPE_INT4X4;
+extern DLLSPEC daeString COLLADA_TYPE_HALF;
+extern DLLSPEC daeString COLLADA_TYPE_HALF1;
+extern DLLSPEC daeString COLLADA_TYPE_HALF2;
+extern DLLSPEC daeString COLLADA_TYPE_HALF3;
+extern DLLSPEC daeString COLLADA_TYPE_HALF4;
+extern DLLSPEC daeString COLLADA_TYPE_HALF1X1;
+extern DLLSPEC daeString COLLADA_TYPE_HALF1X2;
+extern DLLSPEC daeString COLLADA_TYPE_HALF1X3;
+extern DLLSPEC daeString COLLADA_TYPE_HALF1X4;
+extern DLLSPEC daeString COLLADA_TYPE_HALF2X1;
+extern DLLSPEC daeString COLLADA_TYPE_HALF2X2;
+extern DLLSPEC daeString COLLADA_TYPE_HALF2X3;
+extern DLLSPEC daeString COLLADA_TYPE_HALF2X4;
+extern DLLSPEC daeString COLLADA_TYPE_HALF3X1;
+extern DLLSPEC daeString COLLADA_TYPE_HALF3X2;
+extern DLLSPEC daeString COLLADA_TYPE_HALF3X3;
+extern DLLSPEC daeString COLLADA_TYPE_HALF3X4;
+extern DLLSPEC daeString COLLADA_TYPE_HALF4X1;
+extern DLLSPEC daeString COLLADA_TYPE_HALF4X2;
+extern DLLSPEC daeString COLLADA_TYPE_HALF4X3;
+extern DLLSPEC daeString COLLADA_TYPE_HALF4X4;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED1;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED2;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED3;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED4;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED1X1;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED1X2;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED1X3;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED1X4;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED2X1;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED2X2;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED2X3;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED2X4;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED3X1;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED3X2;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED3X3;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED3X4;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED4X1;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED4X2;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED4X3;
+extern DLLSPEC daeString COLLADA_TYPE_FIXED4X4;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_PIPELINE_SETTINGS;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT_LINEAR_ATTENUTATION;
+extern DLLSPEC daeString COLLADA_TYPE_TEXTURE_PIPELINE_ENABLE;
+extern DLLSPEC daeString COLLADA_TYPE_GLES_BASIC_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_COLLADA;
+extern DLLSPEC daeString COLLADA_TYPE_SCENE;
+extern DLLSPEC daeString COLLADA_TYPE_IDREF_ARRAY;
+extern DLLSPEC daeString COLLADA_TYPE_NAME_ARRAY;
+extern DLLSPEC daeString COLLADA_TYPE_BOOL_ARRAY;
+extern DLLSPEC daeString COLLADA_TYPE_FLOAT_ARRAY;
+extern DLLSPEC daeString COLLADA_TYPE_INT_ARRAY;
+extern DLLSPEC daeString COLLADA_TYPE_ACCESSOR;
+extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_GEOMETRY;
+extern DLLSPEC daeString COLLADA_TYPE_MESH;
+extern DLLSPEC daeString COLLADA_TYPE_SPLINE;
+extern DLLSPEC daeString COLLADA_TYPE_CONTROL_VERTICES;
+extern DLLSPEC daeString COLLADA_TYPE_P;
+extern DLLSPEC daeString COLLADA_TYPE_LINES;
+extern DLLSPEC daeString COLLADA_TYPE_LINESTRIPS;
+extern DLLSPEC daeString COLLADA_TYPE_POLYGONS;
+extern DLLSPEC daeString COLLADA_TYPE_PH;
+extern DLLSPEC daeString COLLADA_TYPE_H;
+extern DLLSPEC daeString COLLADA_TYPE_POLYLIST;
+extern DLLSPEC daeString COLLADA_TYPE_VCOUNT;
+extern DLLSPEC daeString COLLADA_TYPE_TRIANGLES;
+extern DLLSPEC daeString COLLADA_TYPE_TRIFANS;
+extern DLLSPEC daeString COLLADA_TYPE_TRISTRIPS;
+extern DLLSPEC daeString COLLADA_TYPE_VERTICES;
+extern DLLSPEC daeString COLLADA_TYPE_LOOKAT;
+extern DLLSPEC daeString COLLADA_TYPE_MATRIX;
+extern DLLSPEC daeString COLLADA_TYPE_ROTATE;
+extern DLLSPEC daeString COLLADA_TYPE_SCALE;
+extern DLLSPEC daeString COLLADA_TYPE_SKEW;
+extern DLLSPEC daeString COLLADA_TYPE_TRANSLATE;
+extern DLLSPEC daeString COLLADA_TYPE_IMAGE;
+extern DLLSPEC daeString COLLADA_TYPE_DATA;
+extern DLLSPEC daeString COLLADA_TYPE_INIT_FROM;
+extern DLLSPEC daeString COLLADA_TYPE_LIGHT;
+extern DLLSPEC daeString COLLADA_TYPE_AMBIENT;
+extern DLLSPEC daeString COLLADA_TYPE_DIRECTIONAL;
+extern DLLSPEC daeString COLLADA_TYPE_POINT;
+extern DLLSPEC daeString COLLADA_TYPE_SPOT;
+extern DLLSPEC daeString COLLADA_TYPE_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_CAMERA;
+extern DLLSPEC daeString COLLADA_TYPE_OPTICS;
+extern DLLSPEC daeString COLLADA_TYPE_ORTHOGRAPHIC;
+extern DLLSPEC daeString COLLADA_TYPE_PERSPECTIVE;
+extern DLLSPEC daeString COLLADA_TYPE_IMAGER;
+extern DLLSPEC daeString COLLADA_TYPE_ANIMATION;
+extern DLLSPEC daeString COLLADA_TYPE_ANIMATION_CLIP;
+extern DLLSPEC daeString COLLADA_TYPE_CHANNEL;
+extern DLLSPEC daeString COLLADA_TYPE_SAMPLER;
+extern DLLSPEC daeString COLLADA_TYPE_CONTROLLER;
+extern DLLSPEC daeString COLLADA_TYPE_SKIN;
+extern DLLSPEC daeString COLLADA_TYPE_BIND_SHAPE_MATRIX;
+extern DLLSPEC daeString COLLADA_TYPE_JOINTS;
+extern DLLSPEC daeString COLLADA_TYPE_VERTEX_WEIGHTS;
+extern DLLSPEC daeString COLLADA_TYPE_V;
+extern DLLSPEC daeString COLLADA_TYPE_MORPH;
+extern DLLSPEC daeString COLLADA_TYPE_TARGETS;
+extern DLLSPEC daeString COLLADA_TYPE_ASSET;
+extern DLLSPEC daeString COLLADA_TYPE_CONTRIBUTOR;
+extern DLLSPEC daeString COLLADA_TYPE_AUTHOR;
+extern DLLSPEC daeString COLLADA_TYPE_AUTHORING_TOOL;
+extern DLLSPEC daeString COLLADA_TYPE_COMMENTS;
+extern DLLSPEC daeString COLLADA_TYPE_COPYRIGHT;
+extern DLLSPEC daeString COLLADA_TYPE_SOURCE_DATA;
+extern DLLSPEC daeString COLLADA_TYPE_CREATED;
+extern DLLSPEC daeString COLLADA_TYPE_KEYWORDS;
+extern DLLSPEC daeString COLLADA_TYPE_MODIFIED;
+extern DLLSPEC daeString COLLADA_TYPE_REVISION;
+extern DLLSPEC daeString COLLADA_TYPE_SUBJECT;
+extern DLLSPEC daeString COLLADA_TYPE_TITLE;
+extern DLLSPEC daeString COLLADA_TYPE_UNIT;
+extern DLLSPEC daeString COLLADA_TYPE_UP_AXIS;
+extern DLLSPEC daeString COLLADA_TYPE_EXTRA;
+extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE;
+extern DLLSPEC daeString COLLADA_TYPE_NODE;
+extern DLLSPEC daeString COLLADA_TYPE_VISUAL_SCENE;
+extern DLLSPEC daeString COLLADA_TYPE_EVALUATE_SCENE;
+extern DLLSPEC daeString COLLADA_TYPE_RENDER;
+extern DLLSPEC daeString COLLADA_TYPE_LAYER;
+extern DLLSPEC daeString COLLADA_TYPE_BIND_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_CAMERA;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_CONTROLLER;
+extern DLLSPEC daeString COLLADA_TYPE_SKELETON;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_EFFECT;
+extern DLLSPEC daeString COLLADA_TYPE_TECHNIQUE_HINT;
+extern DLLSPEC daeString COLLADA_TYPE_SETPARAM;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_FORCE_FIELD;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_GEOMETRY;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_LIGHT;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_BIND;
+extern DLLSPEC daeString COLLADA_TYPE_BIND_VERTEX_INPUT;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_NODE;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_PHYSICS_MODEL;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_BODY;
+extern DLLSPEC daeString COLLADA_TYPE_ANGULAR_VELOCITY;
+extern DLLSPEC daeString COLLADA_TYPE_VELOCITY;
+extern DLLSPEC daeString COLLADA_TYPE_DYNAMIC;
+extern DLLSPEC daeString COLLADA_TYPE_MASS_FRAME;
+extern DLLSPEC daeString COLLADA_TYPE_SHAPE;
+extern DLLSPEC daeString COLLADA_TYPE_HOLLOW;
+extern DLLSPEC daeString COLLADA_TYPE_INSTANCE_RIGID_CONSTRAINT;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATIONS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_ANIMATION_CLIPS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_CAMERAS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_CONTROLLERS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_GEOMETRIES;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_EFFECTS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_FORCE_FIELDS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_IMAGES;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_LIGHTS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_MATERIALS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_NODES;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MATERIALS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_MODELS;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_PHYSICS_SCENES;
+extern DLLSPEC daeString COLLADA_TYPE_LIBRARY_VISUAL_SCENES;
+extern DLLSPEC daeString COLLADA_TYPE_FX_PROFILE_ABSTRACT;
+extern DLLSPEC daeString COLLADA_TYPE_EFFECT;
+extern DLLSPEC daeString COLLADA_TYPE_GL_HOOK_ABSTRACT;
+extern DLLSPEC daeString COLLADA_TYPE_PROFILE_GLSL;
+extern DLLSPEC daeString COLLADA_TYPE_PASS;
+extern DLLSPEC daeString COLLADA_TYPE_DRAW;
+extern DLLSPEC daeString COLLADA_TYPE_SHADER;
+extern DLLSPEC daeString COLLADA_TYPE_COMPILER_TARGET;
+extern DLLSPEC daeString COLLADA_TYPE_COMPILER_OPTIONS;
+extern DLLSPEC daeString COLLADA_TYPE_PROFILE_COMMON;
+extern DLLSPEC daeString COLLADA_TYPE_CONSTANT;
+extern DLLSPEC daeString COLLADA_TYPE_LAMBERT;
+extern DLLSPEC daeString COLLADA_TYPE_PHONG;
+extern DLLSPEC daeString COLLADA_TYPE_BLINN;
+extern DLLSPEC daeString COLLADA_TYPE_PROFILE_CG;
+extern DLLSPEC daeString COLLADA_TYPE_PROFILE_GLES;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_TARGET;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_TARGET;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_TARGET;
+extern DLLSPEC daeString COLLADA_TYPE_COLOR_CLEAR;
+extern DLLSPEC daeString COLLADA_TYPE_DEPTH_CLEAR;
+extern DLLSPEC daeString COLLADA_TYPE_STENCIL_CLEAR;
+extern DLLSPEC daeString COLLADA_TYPE_BOX;
+extern DLLSPEC daeString COLLADA_TYPE_HALF_EXTENTS;
+extern DLLSPEC daeString COLLADA_TYPE_PLANE;
+extern DLLSPEC daeString COLLADA_TYPE_EQUATION;
+extern DLLSPEC daeString COLLADA_TYPE_SPHERE;
+extern DLLSPEC daeString COLLADA_TYPE_RADIUS;
+extern DLLSPEC daeString COLLADA_TYPE_ELLIPSOID;
+extern DLLSPEC daeString COLLADA_TYPE_CYLINDER;
+extern DLLSPEC daeString COLLADA_TYPE_HEIGHT;
+extern DLLSPEC daeString COLLADA_TYPE_TAPERED_CYLINDER;
+extern DLLSPEC daeString COLLADA_TYPE_RADIUS1;
+extern DLLSPEC daeString COLLADA_TYPE_RADIUS2;
+extern DLLSPEC daeString COLLADA_TYPE_CAPSULE;
+extern DLLSPEC daeString COLLADA_TYPE_TAPERED_CAPSULE;
+extern DLLSPEC daeString COLLADA_TYPE_CONVEX_MESH;
+extern DLLSPEC daeString COLLADA_TYPE_FORCE_FIELD;
+extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_MATERIAL;
+extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_SCENE;
+extern DLLSPEC daeString COLLADA_TYPE_RIGID_BODY;
+extern DLLSPEC daeString COLLADA_TYPE_RIGID_CONSTRAINT;
+extern DLLSPEC daeString COLLADA_TYPE_REF_ATTACHMENT;
+extern DLLSPEC daeString COLLADA_TYPE_ATTACHMENT;
+extern DLLSPEC daeString COLLADA_TYPE_ENABLED;
+extern DLLSPEC daeString COLLADA_TYPE_INTERPENETRATE;
+extern DLLSPEC daeString COLLADA_TYPE_LIMITS;
+extern DLLSPEC daeString COLLADA_TYPE_SWING_CONE_AND_TWIST;
+extern DLLSPEC daeString COLLADA_TYPE_LINEAR;
+extern DLLSPEC daeString COLLADA_TYPE_SPRING;
+extern DLLSPEC daeString COLLADA_TYPE_ANGULAR;
+extern DLLSPEC daeString COLLADA_TYPE_PHYSICS_MODEL;
+
+extern DLLSPEC daeString COLLADA_ELEMENT_COLLADA;
+extern DLLSPEC daeString COLLADA_ELEMENT_EXTRA;
+extern DLLSPEC daeString COLLADA_ELEMENT_CHANNELS;
+extern DLLSPEC daeString COLLADA_ELEMENT_RANGE;
+extern DLLSPEC daeString COLLADA_ELEMENT_PRECISION;
+extern DLLSPEC daeString COLLADA_ELEMENT_OPTION;
+extern DLLSPEC daeString COLLADA_ELEMENT_ALL;
+extern DLLSPEC daeString COLLADA_ELEMENT_PRIMARY;
+extern DLLSPEC daeString COLLADA_ELEMENT_FACE;
+extern DLLSPEC daeString COLLADA_ELEMENT_ORDER;
+extern DLLSPEC daeString COLLADA_ELEMENT_FX_SURFACE_INIT_COMMON;
+extern DLLSPEC daeString COLLADA_ELEMENT_FORMAT;
+extern DLLSPEC daeString COLLADA_ELEMENT_FORMAT_HINT;
+extern DLLSPEC daeString COLLADA_ELEMENT_SIZE;
+extern DLLSPEC daeString COLLADA_ELEMENT_VIEWPORT_RATIO;
+extern DLLSPEC daeString COLLADA_ELEMENT_MIP_LEVELS;
+extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_GENERATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SOURCE;
+extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_S;
+extern DLLSPEC daeString COLLADA_ELEMENT_MINFILTER;
+extern DLLSPEC daeString COLLADA_ELEMENT_MAGFILTER;
+extern DLLSPEC daeString COLLADA_ELEMENT_MIPFILTER;
+extern DLLSPEC daeString COLLADA_ELEMENT_BORDER_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_MAXLEVEL;
+extern DLLSPEC daeString COLLADA_ELEMENT_MIPMAP_BIAS;
+extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_T;
+extern DLLSPEC daeString COLLADA_ELEMENT_WRAP_P;
+extern DLLSPEC daeString COLLADA_ELEMENT_FX_ANNOTATE_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_ELEMENT_ANNOTATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SEMANTIC;
+extern DLLSPEC daeString COLLADA_ELEMENT_MODIFIER;
+extern DLLSPEC daeString COLLADA_ELEMENT_FX_BASIC_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_ELEMENT_GLSL_PARAM_TYPE;
+extern DLLSPEC daeString COLLADA_ELEMENT_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_GENERATOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_CODE;
+extern DLLSPEC daeString COLLADA_ELEMENT_INCLUDE;
+extern DLLSPEC daeString COLLADA_ELEMENT_NAME;
+extern DLLSPEC daeString COLLADA_ELEMENT_SETPARAM;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT;
+extern DLLSPEC daeString COLLADA_ELEMENT_PARAM;
+extern DLLSPEC daeString COLLADA_ELEMENT_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4;
+extern DLLSPEC daeString COLLADA_ELEMENT_SURFACE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER2D;
+extern DLLSPEC daeString COLLADA_ELEMENT_CG_PARAM_TYPE;
+extern DLLSPEC daeString COLLADA_ELEMENT_USERTYPE;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONNECT_PARAM;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONSTANT;
+extern DLLSPEC daeString COLLADA_ELEMENT_ARGUMENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_RGB;
+extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXCOMBINER;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXENV;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER_STATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXCOORD;
+extern DLLSPEC daeString COLLADA_ELEMENT_GLES_BASIC_TYPE_COMMON;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_NULL;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_AS_TARGET;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_CUBE;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_VOLUME;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_PLANAR;
+extern DLLSPEC daeString COLLADA_ELEMENT_INIT_FROM;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT2;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT3;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_STRING;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT2X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT3X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT4X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER1D;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER3D;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERCUBE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERRECT;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLERDEPTH;
+extern DLLSPEC daeString COLLADA_ELEMENT_ENUM;
+extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA_FUNC;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_FUNC_SEPARATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_EQUATION_SEPARATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL;
+extern DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_FUNC;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_MODE;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_COORD_SRC;
+extern DLLSPEC daeString COLLADA_ELEMENT_FRONT_FACE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_COLOR_CONTROL;
+extern DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_MODE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SHADE_MODEL;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_FUNC_SEPARATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_OP_SEPARATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK_SEPARATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_AMBIENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_DIFFUSE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPECULAR;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_POSITION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_CONSTANT_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_QUADRATIC_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_CUTOFF;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_DIRECTION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_SPOT_EXPONENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE1D_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE2D_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE3D_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURECUBE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURERECT_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTUREDEPTH_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_ENV_MODE;
+extern DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE;
+extern DLLSPEC daeString COLLADA_ELEMENT_CLIP_PLANE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_STENCIL;
+extern DLLSPEC daeString COLLADA_ELEMENT_CLEAR_DEPTH;
+extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MASK;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_MASK;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_RANGE;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_DENSITY;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_START;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_END;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_COLOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_AMBIENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHTING_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINE_WIDTH;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_AMBIENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_DIFFUSE;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_EMISSION;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SHININESS;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATERIAL_SPECULAR;
+extern DLLSPEC daeString COLLADA_ELEMENT_MODEL_VIEW_MATRIX;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_DISTANCE_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_FADE_THRESHOLD_SIZE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MIN;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SIZE_MAX;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET;
+extern DLLSPEC daeString COLLADA_ELEMENT_PROJECTION_MATRIX;
+extern DLLSPEC daeString COLLADA_ELEMENT_SCISSOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_MASK;
+extern DLLSPEC daeString COLLADA_ELEMENT_ALPHA_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_AUTO_NORMAL_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_BLEND_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_LOGIC_OP_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_COLOR_MATERIAL_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_CULL_FACE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_BOUNDS_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_CLAMP_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEPTH_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_DITHER_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_FOG_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_LOCAL_VIEWER_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_MODEL_TWO_SIDE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINE_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINE_STIPPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LOGIC_OP_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_MULTISAMPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_NORMALIZE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_FILL_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_LINE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_OFFSET_POINT_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_SMOOTH_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGON_STIPPLE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_RESCALE_NORMAL_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_COVERAGE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_ALPHA_TO_ONE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLE_COVERAGE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SCISSOR_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_STENCIL_TEST_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_GL_HOOK_ABSTRACT;
+extern DLLSPEC daeString COLLADA_ELEMENT_FUNC;
+extern DLLSPEC daeString COLLADA_ELEMENT_VALUE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SRC;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEST;
+extern DLLSPEC daeString COLLADA_ELEMENT_SRC_RGB;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEST_RGB;
+extern DLLSPEC daeString COLLADA_ELEMENT_SRC_ALPHA;
+extern DLLSPEC daeString COLLADA_ELEMENT_DEST_ALPHA;
+extern DLLSPEC daeString COLLADA_ELEMENT_rgb;
+extern DLLSPEC daeString COLLADA_ELEMENT_MODE;
+extern DLLSPEC daeString COLLADA_ELEMENT_REF;
+extern DLLSPEC daeString COLLADA_ELEMENT_MASK;
+extern DLLSPEC daeString COLLADA_ELEMENT_FAIL;
+extern DLLSPEC daeString COLLADA_ELEMENT_ZFAIL;
+extern DLLSPEC daeString COLLADA_ELEMENT_ZPASS;
+extern DLLSPEC daeString COLLADA_ELEMENT_FRONT;
+extern DLLSPEC daeString COLLADA_ELEMENT_BACK;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL1X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL2X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL3X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL4X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT1X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT1X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT1X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT1X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT2X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT2X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT2X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT2X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT3X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT3X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT3X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT3X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT4X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT4X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT4X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT4X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF1;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF2;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF3;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF4;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF1X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF2X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF3X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_HALF4X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED1X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED2X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED3X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X1;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X2;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X3;
+extern DLLSPEC daeString COLLADA_ELEMENT_FIXED4X4;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIGHT_LINEAR_ATTENUTATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_PIPELINE_ENABLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_TEXTURE_UNIT;
+extern DLLSPEC daeString COLLADA_ELEMENT_ASSET;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATIONS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_ANIMATION_CLIPS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CAMERAS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_CONTROLLERS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_GEOMETRIES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_EFFECTS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_FORCE_FIELDS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_IMAGES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_LIGHTS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_MATERIALS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_NODES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MATERIALS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_MODELS;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_PHYSICS_SCENES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LIBRARY_VISUAL_SCENES;
+extern DLLSPEC daeString COLLADA_ELEMENT_SCENE;
+extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_PHYSICS_SCENE;
+extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_VISUAL_SCENE;
+extern DLLSPEC daeString COLLADA_ELEMENT_IDREF_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_NAME_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_BOOL_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_FLOAT_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_INT_ARRAY;
+extern DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE_COMMON;
+extern DLLSPEC daeString COLLADA_ELEMENT_TECHNIQUE;
+extern DLLSPEC daeString COLLADA_ELEMENT_ACCESSOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONVEX_MESH;
+extern DLLSPEC daeString COLLADA_ELEMENT_MESH;
+extern DLLSPEC daeString COLLADA_ELEMENT_SPLINE;
+extern DLLSPEC daeString COLLADA_ELEMENT_VERTICES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINES;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINESTRIPS;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYGONS;
+extern DLLSPEC daeString COLLADA_ELEMENT_POLYLIST;
+extern DLLSPEC daeString COLLADA_ELEMENT_TRIANGLES;
+extern DLLSPEC daeString COLLADA_ELEMENT_TRIFANS;
+extern DLLSPEC daeString COLLADA_ELEMENT_TRISTRIPS;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONTROL_VERTICES;
+extern DLLSPEC daeString COLLADA_ELEMENT_INPUT;
+extern DLLSPEC daeString COLLADA_ELEMENT_P;
+extern DLLSPEC daeString COLLADA_ELEMENT_PH;
+extern DLLSPEC daeString COLLADA_ELEMENT_H;
+extern DLLSPEC daeString COLLADA_ELEMENT_VCOUNT;
+extern DLLSPEC daeString COLLADA_ELEMENT_DATA;
+extern DLLSPEC daeString COLLADA_ELEMENT_AMBIENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_DIRECTIONAL;
+extern DLLSPEC daeString COLLADA_ELEMENT_POINT;
+extern DLLSPEC daeString COLLADA_ELEMENT_SPOT;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONSTANT_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_LINEAR_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_QUADRATIC_ATTENUATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_ANGLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_FALLOFF_EXPONENT;
+extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_EFFECT;
+extern DLLSPEC daeString COLLADA_ELEMENT_OPTICS;
+extern DLLSPEC daeString COLLADA_ELEMENT_IMAGER;
+extern DLLSPEC daeString COLLADA_ELEMENT_ORTHOGRAPHIC;
+extern DLLSPEC daeString COLLADA_ELEMENT_PERSPECTIVE;
+extern DLLSPEC daeString COLLADA_ELEMENT_XMAG;
+extern DLLSPEC daeString COLLADA_ELEMENT_YMAG;
+extern DLLSPEC daeString COLLADA_ELEMENT_ASPECT_RATIO;
+extern DLLSPEC daeString COLLADA_ELEMENT_ZNEAR;
+extern DLLSPEC daeString COLLADA_ELEMENT_ZFAR;
+extern DLLSPEC daeString COLLADA_ELEMENT_XFOV;
+extern DLLSPEC daeString COLLADA_ELEMENT_YFOV;
+extern DLLSPEC daeString COLLADA_ELEMENT_SAMPLER;
+extern DLLSPEC daeString COLLADA_ELEMENT_CHANNEL;
+extern DLLSPEC daeString COLLADA_ELEMENT_ANIMATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_INSTANCE_ANIMATION;
+extern DLLSPEC daeString COLLADA_ELEMENT_SKIN;
+extern DLLSPEC daeString COLLADA_ELEMENT_MORPH;
+extern DLLSPEC daeString COLLADA_ELEMENT_BIND_SHAPE_MATRIX;
+extern DLLSPEC daeString COLLADA_ELEMENT_JOINTS;
+extern DLLSPEC daeString COLLADA_ELEMENT_VERTEX_WEIGHTS;
+extern DLLSPEC daeString COLLADA_ELEMENT_V;
+extern DLLSPEC daeString COLLADA_ELEMENT_TARGETS;
+extern DLLSPEC daeString COLLADA_ELEMENT_CONTRIBUTOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_CREATED;
+extern DLLSPEC daeString COLLADA_ELEMENT_KEYWORDS;
+extern DLLSPEC daeString COLLADA_ELEMENT_MODIFIED;
+extern DLLSPEC daeString COLLADA_ELEMENT_REVISION;
+extern DLLSPEC daeString COLLADA_ELEMENT_SUBJECT;
+extern DLLSPEC daeString COLLADA_ELEMENT_TITLE;
+extern DLLSPEC daeString COLLADA_ELEMENT_UNIT;
+extern DLLSPEC daeString COLLADA_ELEMENT_UP_AXIS;
+extern DLLSPEC daeString COLLADA_ELEMENT_AUTHOR;
+extern DLLSPEC daeString COLLADA_ELEMENT_AUTHORING_TOOL;
+extern DLLSPEC daeString COLLADA_ELEMENT_COMMENTS;
+extern DLLSPEC daeString COLLADA_ELEMENT_COPYRIGHT;
+extern DLLSPEC daeString COLLADA_ELEMENT_SOURCE_DATA;
+extern DLLSPEC daeString COLLADA_ELEMENT_LOOKAT;
+extern DLLSPEC daeString COLLADA_ELEMENT_MATRIX;
+extern DLLSPEC daeString COLLADA_ELEMENT_ROTATE;
+extern DLLSPEC daeString COLLADA_ELEMENT_SC