00001 #ifndef __domCurve_h__ 00002 #define __domCurve_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domLine.h> 00009 #include <dom/domCircle.h> 00010 #include <dom/domEllipse.h> 00011 #include <dom/domParabola.h> 00012 #include <dom/domHyperbola.h> 00013 #include <dom/domNurbs.h> 00014 #include <dom/domOrient.h> 00015 #include <dom/domOrigin.h> 00016 class DAE; 00017 00022 class domCurve : public daeElement 00023 { 00024 public: 00025 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::CURVE; } 00026 static daeInt ID() { return 349; } 00027 virtual daeInt typeID() const { return ID(); } 00028 protected: // Attributes 00032 domSid attrSid; 00036 xsToken attrName; 00037 00038 protected: // Elements 00039 domLineRef elemLine; 00040 domCircleRef elemCircle; 00041 domEllipseRef elemEllipse; 00042 domParabolaRef elemParabola; 00043 domHyperbolaRef elemHyperbola; 00044 domNurbsRef elemNurbs; 00045 domOrient_Array elemOrient_array; 00046 domOriginRef elemOrigin; 00050 daeElementRefArray _contents; 00054 daeUIntArray _contentsOrder; 00055 00059 daeTArray< daeCharArray * > _CMData; 00060 00061 00062 public: //Accessors and Mutators 00067 domSid getSid() const { return attrSid; } 00072 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid;} 00073 00078 xsToken getName() const { return attrName; } 00083 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00084 00089 const domLineRef getLine() const { return elemLine; } 00094 const domCircleRef getCircle() const { return elemCircle; } 00099 const domEllipseRef getEllipse() const { return elemEllipse; } 00104 const domParabolaRef getParabola() const { return elemParabola; } 00109 const domHyperbolaRef getHyperbola() const { return elemHyperbola; } 00114 const domNurbsRef getNurbs() const { return elemNurbs; } 00119 domOrient_Array &getOrient_array() { return elemOrient_array; } 00124 const domOrient_Array &getOrient_array() const { return elemOrient_array; } 00129 const domOriginRef getOrigin() const { return elemOrigin; } 00134 daeElementRefArray &getContents() { return _contents; } 00139 const daeElementRefArray &getContents() const { return _contents; } 00140 00141 protected: 00145 domCurve(DAE& dae) : daeElement(dae), attrSid(), attrName(), elemLine(), elemCircle(), elemEllipse(), elemParabola(), elemHyperbola(), elemNurbs(), elemOrient_array(), elemOrigin() {} 00149 virtual ~domCurve() { daeElement::deleteCMDataArray(_CMData); } 00153 virtual domCurve &operator=( const domCurve &cpy ) { (void)cpy; return *this; } 00154 00155 public: // STATIC METHODS 00160 static DLLSPEC daeElementRef create(DAE& dae); 00166 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00167 }; 00168 00169 00170 #endif