DYT/Tool/3rdParty_x64/include/1.5/dom/domBrep.h

191 lines
6.1 KiB
C
Raw Permalink Normal View History

2024-11-22 15:19:31 +00:00
#ifndef __dom150Brep_h__
#define __dom150Brep_h__
#include <dae/daeDocument.h>
#include <1.5/dom/domTypes.h>
#include <1.5/dom/domElements.h>
#include <1.5/dom/domCurves.h>
#include <1.5/dom/domSurface_curves.h>
#include <1.5/dom/domSurfaces.h>
#include <1.5/dom/domSource.h>
#include <1.5/dom/domVertices.h>
#include <1.5/dom/domEdges.h>
#include <1.5/dom/domWires.h>
#include <1.5/dom/domFaces.h>
#include <1.5/dom/domPcurves.h>
#include <1.5/dom/domShells.h>
#include <1.5/dom/domSolids.h>
#include <1.5/dom/domExtra.h>
class DAE;
namespace ColladaDOM150 {
/**
* The brep element contains the complete topological description of a
* static structure. There are also the corresponding geometrical descriptions
* of the vertices, edges and faces.
*/
class domBrep : public daeElement
{
public:
virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BREP; }
static daeInt ID() { return 363; }
virtual daeInt typeID() const { return ID(); }
protected: // Elements
/**
* The curves element holds all the curves that are needed for the brep structure.
* Here are the curves that describes the kind of an edge, but here are also
* the curves that are needed to create a extrusion for a surface. This element
* is needed, if the edges element is present. @see domCurves
*/
domCurvesRef elemCurves;
domSurface_curvesRef elemSurface_curves;
/**
* The surfaces element holds all the surfaces that are needed for the brep
* structure. Here are the surfaces that describes the kind of a face. This
* element is needed, if the faces element is present. @see domSurfaces
*/
domSurfacesRef elemSurfaces;
/**
* The source elements define the access of the elements vertices, edges and
* faces to their geometric entities. At least one source element is needed
* for the vertices. If there are edges a second source element is needed
* for accessing the curves in the curve element by an IDREF_array. If there
* are faces the third source element is needed for accessing the surfaces
* in the surface element by an IDREF_array. @see domSource
*/
domSource_Array elemSource_array;
/**
* This element defines all the vertices of an brep structure. Vertices are
* the base topological entity for all brep structures, so this element is
* ever needed. @see domVertices
*/
domVerticesRef elemVertices;
/**
* This element defines all the edges of the brep structure. @see domEdges
*/
domEdgesRef elemEdges;
/**
* This element defines all the wires of the brep structure. @see domWires
*/
domWiresRef elemWires;
/**
* This element defines all the faces of the brep structure. @see domFaces
*/
domFacesRef elemFaces;
domPcurvesRef elemPcurves;
/**
* This element defines all the shells of the brep structure. @see domShells
*/
domShellsRef elemShells;
/**
* This element defines all the solids of the brep structure. @see domSolids
*/
domSolidsRef elemSolids;
domExtra_Array elemExtra_array;
public: //Accessors and Mutators
/**
* Gets the curves element.
* @return a daeSmartRef to the curves element.
*/
const domCurvesRef getCurves() const { return elemCurves; }
/**
* Gets the surface_curves element.
* @return a daeSmartRef to the surface_curves element.
*/
const domSurface_curvesRef getSurface_curves() const { return elemSurface_curves; }
/**
* Gets the surfaces element.
* @return a daeSmartRef to the surfaces element.
*/
const domSurfacesRef getSurfaces() const { return elemSurfaces; }
/**
* 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 vertices element.
* @return a daeSmartRef to the vertices element.
*/
const domVerticesRef getVertices() const { return elemVertices; }
/**
* Gets the edges element.
* @return a daeSmartRef to the edges element.
*/
const domEdgesRef getEdges() const { return elemEdges; }
/**
* Gets the wires element.
* @return a daeSmartRef to the wires element.
*/
const domWiresRef getWires() const { return elemWires; }
/**
* Gets the faces element.
* @return a daeSmartRef to the faces element.
*/
const domFacesRef getFaces() const { return elemFaces; }
/**
* Gets the pcurves element.
* @return a daeSmartRef to the pcurves element.
*/
const domPcurvesRef getPcurves() const { return elemPcurves; }
/**
* Gets the shells element.
* @return a daeSmartRef to the shells element.
*/
const domShellsRef getShells() const { return elemShells; }
/**
* Gets the solids element.
* @return a daeSmartRef to the solids element.
*/
const domSolidsRef getSolids() const { return elemSolids; }
/**
* 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
*/
domBrep(DAE& dae) : daeElement(dae), elemCurves(), elemSurface_curves(), elemSurfaces(), elemSource_array(), elemVertices(), elemEdges(), elemWires(), elemFaces(), elemPcurves(), elemShells(), elemSolids(), elemExtra_array() {}
/**
* Destructor
*/
virtual ~domBrep() {}
/**
* Overloaded assignment operator
*/
virtual domBrep &operator=( const domBrep &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);
};
} // ColladaDOM150
#endif