00001 /* 00002 * Copyright 2006 Sony Computer Entertainment Inc. 00003 * 00004 * Licensed under the MIT Open Source License, for details please see license.txt or the website 00005 * http://www.opensource.org/licenses/mit-license.php 00006 * 00007 */ 00008 00009 #ifndef __domMorph_h__ 00010 #define __domMorph_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domSource.h> 00017 #include <dom/domExtra.h> 00018 #include <dom/domInputLocal.h> 00019 class DAE; 00020 00026 class domMorph : public daeElement 00027 { 00028 public: 00029 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MORPH; } 00030 static daeInt ID() { return 662; } 00031 virtual daeInt typeID() const { return ID(); } 00032 public: 00033 class domTargets; 00034 00035 typedef daeSmartRef<domTargets> domTargetsRef; 00036 typedef daeTArray<domTargetsRef> domTargets_Array; 00037 00042 class domTargets : public daeElement 00043 { 00044 public: 00045 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TARGETS; } 00046 static daeInt ID() { return 663; } 00047 virtual daeInt typeID() const { return ID(); } 00048 00049 protected: // Elements 00054 domInputLocal_Array elemInput_array; 00058 domExtra_Array elemExtra_array; 00059 00060 public: //Accessors and Mutators 00065 domInputLocal_Array &getInput_array() { return elemInput_array; } 00070 const domInputLocal_Array &getInput_array() const { return elemInput_array; } 00075 domExtra_Array &getExtra_array() { return elemExtra_array; } 00080 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00081 protected: 00085 domTargets(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} 00089 virtual ~domTargets() {} 00093 virtual domTargets &operator=( const domTargets &cpy ) { (void)cpy; return *this; } 00094 00095 public: // STATIC METHODS 00100 static DLLSPEC daeElementRef create(DAE& dae); 00106 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00107 }; 00108 00109 00110 protected: // Attributes 00116 domMorphMethodType attrMethod; 00120 xsAnyURI attrSource; 00121 00122 protected: // Elements 00126 domSource_Array elemSource_array; 00131 domTargetsRef elemTargets; 00135 domExtra_Array elemExtra_array; 00136 00137 public: //Accessors and Mutators 00142 domMorphMethodType getMethod() const { return attrMethod; } 00147 void setMethod( domMorphMethodType atMethod ) { attrMethod = atMethod; _validAttributeArray[0] = true; } 00148 00153 xsAnyURI &getSource() { return attrSource; } 00158 const xsAnyURI &getSource() const { return attrSource; } 00163 void setSource( const xsAnyURI &atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } 00168 void setSource( xsString atSource ) { attrSource = atSource; _validAttributeArray[1] = true; } 00169 00174 domSource_Array &getSource_array() { return elemSource_array; } 00179 const domSource_Array &getSource_array() const { return elemSource_array; } 00184 const domTargetsRef getTargets() const { return elemTargets; } 00189 domExtra_Array &getExtra_array() { return elemExtra_array; } 00194 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00195 protected: 00199 domMorph(DAE& dae) : daeElement(dae), attrMethod(), attrSource(dae, *this), elemSource_array(), elemTargets(), elemExtra_array() {} 00203 virtual ~domMorph() {} 00207 virtual domMorph &operator=( const domMorph &cpy ) { (void)cpy; return *this; } 00208 00209 public: // STATIC METHODS 00214 static DLLSPEC daeElementRef create(DAE& dae); 00220 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00221 }; 00222 00223 00224 #endif