00001 #ifndef __domNurbs_surface_h__ 00002 #define __domNurbs_surface_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domSource.h> 00009 #include <dom/domInput_local.h> 00010 #include <dom/domExtra.h> 00011 class DAE; 00012 00013 class domNurbs_surface : public daeElement 00014 { 00015 public: 00016 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NURBS_SURFACE; } 00017 static daeInt ID() { return 339; } 00018 virtual daeInt typeID() const { return ID(); } 00019 public: 00020 class domControl_vertices; 00021 00022 typedef daeSmartRef<domControl_vertices> domControl_verticesRef; 00023 typedef daeTArray<domControl_verticesRef> domControl_vertices_Array; 00024 00029 class domControl_vertices : public daeElement 00030 { 00031 public: 00032 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CONTROL_VERTICES; } 00033 static daeInt ID() { return 340; } 00034 virtual daeInt typeID() const { return ID(); } 00035 00036 protected: // Elements 00041 domInput_local_Array elemInput_array; 00045 domExtra_Array elemExtra_array; 00046 00047 public: //Accessors and Mutators 00052 domInput_local_Array &getInput_array() { return elemInput_array; } 00057 const domInput_local_Array &getInput_array() const { return elemInput_array; } 00062 domExtra_Array &getExtra_array() { return elemExtra_array; } 00067 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00068 protected: 00072 domControl_vertices(DAE& dae) : daeElement(dae), elemInput_array(), elemExtra_array() {} 00076 virtual ~domControl_vertices() {} 00080 virtual domControl_vertices &operator=( const domControl_vertices &cpy ) { (void)cpy; return *this; } 00081 00082 public: // STATIC METHODS 00087 static DLLSPEC daeElementRef create(DAE& dae); 00093 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00094 }; 00095 00096 00097 protected: // Attributes 00098 domUint attrDegree_u; 00099 xsBoolean attrClosed_u; 00100 domUint attrDegree_v; 00101 xsBoolean attrClosed_v; 00102 00103 protected: // Elements 00104 domSource_Array elemSource_array; 00109 domControl_verticesRef elemControl_vertices; 00110 domExtra_Array elemExtra_array; 00111 00112 public: //Accessors and Mutators 00117 domUint getDegree_u() const { return attrDegree_u; } 00122 void setDegree_u( domUint atDegree_u ) { attrDegree_u = atDegree_u; } 00123 00128 xsBoolean getClosed_u() const { return attrClosed_u; } 00133 void setClosed_u( xsBoolean atClosed_u ) { attrClosed_u = atClosed_u; } 00134 00139 domUint getDegree_v() const { return attrDegree_v; } 00144 void setDegree_v( domUint atDegree_v ) { attrDegree_v = atDegree_v; } 00145 00150 xsBoolean getClosed_v() const { return attrClosed_v; } 00155 void setClosed_v( xsBoolean atClosed_v ) { attrClosed_v = atClosed_v; } 00156 00161 domSource_Array &getSource_array() { return elemSource_array; } 00166 const domSource_Array &getSource_array() const { return elemSource_array; } 00171 const domControl_verticesRef getControl_vertices() const { return elemControl_vertices; } 00176 domExtra_Array &getExtra_array() { return elemExtra_array; } 00181 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00182 protected: 00186 domNurbs_surface(DAE& dae) : daeElement(dae), attrDegree_u(), attrClosed_u(), attrDegree_v(), attrClosed_v(), elemSource_array(), elemControl_vertices(), elemExtra_array() {} 00190 virtual ~domNurbs_surface() {} 00194 virtual domNurbs_surface &operator=( const domNurbs_surface &cpy ) { (void)cpy; return *this; } 00195 00196 public: // STATIC METHODS 00201 static DLLSPEC daeElementRef create(DAE& dae); 00207 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00208 }; 00209 00210 00211 #endif