Open CASCADE Technology 7.8.0
|
This class manages the creation of an IGES Topologic entity (BREP : ManifoldSolid, Shell, Face) This includes definiting of Vertex and Edge Lists, building of Edges and Loops. More...
#include <IGESSolid_TopoBuilder.hxx>
Public Member Functions | |
IGESSolid_TopoBuilder () | |
Creates an empty TopoBuilder This creates also a unique VertexList and a unique EdgeList, empty, but which can be referenced from starting. | |
void | Clear () |
Resets the TopoBuilder for an entirely new operation (with a new EdgeList, a new VertexList, new Shells, ...) | |
void | AddVertex (const gp_XYZ &val) |
Adds a Vertex to the VertexList. | |
Standard_Integer | NbVertices () const |
Returns the count of already recorded Vertices. | |
const gp_XYZ & | Vertex (const Standard_Integer num) const |
Returns a Vertex, given its rank. | |
Handle< IGESSolid_VertexList > | VertexList () const |
Returns the VertexList. It can be referenced, but it remains empty until call to EndShell or EndSolid. | |
void | AddEdge (const Handle< IGESData_IGESEntity > &curve, const Standard_Integer vstart, const Standard_Integer vend) |
Adds an Edge (3D) to the EdgeList, defined by a Curve and two number of Vertex, for start and end. | |
Standard_Integer | NbEdges () const |
Returns the count of recorded Edges (3D) | |
void | Edge (const Standard_Integer num, Handle< IGESData_IGESEntity > &curve, Standard_Integer &vstart, Standard_Integer &vend) const |
Returns the definition of an Edge (3D) given its rank. | |
Handle< IGESSolid_EdgeList > | EdgeList () const |
Returns the EdgeList. It can be referenced, but it remains empty until call to EndShell or EndSolid. | |
void | MakeLoop () |
Begins the definition of a new Loop : it is the Current Loop All Edges (UV) defined by MakeEdge/EndEdge will be added in it The Loop can then be referenced but is empty. It will be filled with its Edges(UV) by EndLoop (from SetOuter/AddInner) | |
void | MakeEdge (const Standard_Integer edgetype, const Standard_Integer edge3d, const Standard_Integer orientation) |
Defines an Edge(UV), to be added in the current Loop by EndEdge <edgetype> gives the type of the edge <edge3d> identifies the Edge(3D) used as support The EdgeList is always the current one <orientation gives the orientation flag It is then necessary to : | |
void | AddCurveUV (const Handle< IGESData_IGESEntity > &curve, const Standard_Integer iso) |
Adds a Parametric Curve (UV) to the current Edge(UV) | |
void | EndEdge () |
Closes the definition of an Edge(UV) and adds it to the current Loop. | |
void | MakeFace (const Handle< IGESData_IGESEntity > &surface) |
Begins the definition of a new Face, on a surface All Loops defined by MakeLoop will be added in it, according the closing call : SetOuter for the Outer Loop (by default, if SetOuter is not called, no OuterLoop is defined); AddInner for the list of Inner Loops (there can be none) | |
void | SetOuter () |
Closes the current Loop and sets it Loop as Outer Loop. If no current Loop has yet been defined, does nothing. | |
void | AddInner () |
Closes the current Loop and adds it to the list of Inner Loops for the current Face. | |
void | EndFace (const Standard_Integer orientation) |
Closes the definition of the current Face, fills it and adds it to the current Shell with an orientation flag (0/1) | |
void | MakeShell () |
Begins the definition of a new Shell (either Simple or in a Solid) | |
void | EndSimpleShell () |
Closes the whole definition as that of a simple Shell. | |
void | SetMainShell (const Standard_Integer orientation) |
Closes the definition of the current Shell as for the Main Shell of a Solid, with an orientation flag (0/1) | |
void | AddVoidShell (const Standard_Integer orientation) |
Closes the definition of the current Shell and adds it to the list of Void Shells of a Solid, with an orientation flag (0/1) | |
void | EndSolid () |
Closes the whole definition as that of a ManifoldSolid Its call is exclusive from that of EndSimpleShell. | |
Handle< IGESSolid_Shell > | Shell () const |
Returns the current Shell. The current Shell is created empty by MakeShell and filled by EndShell. | |
Handle< IGESSolid_ManifoldSolid > | Solid () const |
Returns the current ManifoldSolid. It is created empty by Create and filled by EndSolid. | |
Protected Member Functions | |
void | EndLists () |
Closes the definition of Vertex and Edge Lists Warning : Called only by EndSimpleShell and EndSolid. | |
void | EndLoop () |
Closes the definition of a Loop and fills it Warning : EndLoop should not be called directly but through SetOuter or AddInner, which work on the current Face. | |
void | EndShell () |
Closes the definition of the current Shell Warning : EndShell should not be called directly but through EndSimpleShell (for a simple Shell), SetMainShell (for main Shell of a Solid) or AddVoidShell (to a Solid) | |
This class manages the creation of an IGES Topologic entity (BREP : ManifoldSolid, Shell, Face) This includes definiting of Vertex and Edge Lists, building of Edges and Loops.
IGESSolid_TopoBuilder::IGESSolid_TopoBuilder | ( | ) |
Creates an empty TopoBuilder This creates also a unique VertexList and a unique EdgeList, empty, but which can be referenced from starting.
void IGESSolid_TopoBuilder::AddCurveUV | ( | const Handle< IGESData_IGESEntity > & | curve, |
const Standard_Integer | iso | ||
) |
Adds a Parametric Curve (UV) to the current Edge(UV)
void IGESSolid_TopoBuilder::AddEdge | ( | const Handle< IGESData_IGESEntity > & | curve, |
const Standard_Integer | vstart, | ||
const Standard_Integer | vend | ||
) |
Adds an Edge (3D) to the EdgeList, defined by a Curve and two number of Vertex, for start and end.
void IGESSolid_TopoBuilder::AddInner | ( | ) |
Closes the current Loop and adds it to the list of Inner Loops for the current Face.
void IGESSolid_TopoBuilder::AddVoidShell | ( | const Standard_Integer | orientation | ) |
Closes the definition of the current Shell and adds it to the list of Void Shells of a Solid, with an orientation flag (0/1)
void IGESSolid_TopoBuilder::Clear | ( | ) |
Resets the TopoBuilder for an entirely new operation (with a new EdgeList, a new VertexList, new Shells, ...)
void IGESSolid_TopoBuilder::Edge | ( | const Standard_Integer | num, |
Handle< IGESData_IGESEntity > & | curve, | ||
Standard_Integer & | vstart, | ||
Standard_Integer & | vend | ||
) | const |
Returns the definition of an Edge (3D) given its rank.
Handle< IGESSolid_EdgeList > IGESSolid_TopoBuilder::EdgeList | ( | ) | const |
Returns the EdgeList. It can be referenced, but it remains empty until call to EndShell or EndSolid.
void IGESSolid_TopoBuilder::EndEdge | ( | ) |
Closes the definition of an Edge(UV) and adds it to the current Loop.
void IGESSolid_TopoBuilder::EndFace | ( | const Standard_Integer | orientation | ) |
Closes the definition of the current Face, fills it and adds it to the current Shell with an orientation flag (0/1)
|
protected |
Closes the definition of Vertex and Edge Lists Warning : Called only by EndSimpleShell and EndSolid.
|
protected |
Closes the definition of a Loop and fills it Warning : EndLoop should not be called directly but through SetOuter or AddInner, which work on the current Face.
|
protected |
Closes the definition of the current Shell Warning : EndShell should not be called directly but through EndSimpleShell (for a simple Shell), SetMainShell (for main Shell of a Solid) or AddVoidShell (to a Solid)
void IGESSolid_TopoBuilder::EndSimpleShell | ( | ) |
Closes the whole definition as that of a simple Shell.
void IGESSolid_TopoBuilder::EndSolid | ( | ) |
Closes the whole definition as that of a ManifoldSolid Its call is exclusive from that of EndSimpleShell.
void IGESSolid_TopoBuilder::MakeEdge | ( | const Standard_Integer | edgetype, |
const Standard_Integer | edge3d, | ||
const Standard_Integer | orientation | ||
) |
Defines an Edge(UV), to be added in the current Loop by EndEdge <edgetype> gives the type of the edge <edge3d> identifies the Edge(3D) used as support The EdgeList is always the current one <orientation gives the orientation flag It is then necessary to :
void IGESSolid_TopoBuilder::MakeFace | ( | const Handle< IGESData_IGESEntity > & | surface | ) |
Begins the definition of a new Face, on a surface All Loops defined by MakeLoop will be added in it, according the closing call : SetOuter for the Outer Loop (by default, if SetOuter is not called, no OuterLoop is defined); AddInner for the list of Inner Loops (there can be none)
void IGESSolid_TopoBuilder::MakeLoop | ( | ) |
Begins the definition of a new Loop : it is the Current Loop All Edges (UV) defined by MakeEdge/EndEdge will be added in it The Loop can then be referenced but is empty. It will be filled with its Edges(UV) by EndLoop (from SetOuter/AddInner)
void IGESSolid_TopoBuilder::MakeShell | ( | ) |
Begins the definition of a new Shell (either Simple or in a Solid)
Standard_Integer IGESSolid_TopoBuilder::NbEdges | ( | ) | const |
Returns the count of recorded Edges (3D)
Standard_Integer IGESSolid_TopoBuilder::NbVertices | ( | ) | const |
Returns the count of already recorded Vertices.
void IGESSolid_TopoBuilder::SetMainShell | ( | const Standard_Integer | orientation | ) |
Closes the definition of the current Shell as for the Main Shell of a Solid, with an orientation flag (0/1)
void IGESSolid_TopoBuilder::SetOuter | ( | ) |
Closes the current Loop and sets it Loop as Outer Loop. If no current Loop has yet been defined, does nothing.
Handle< IGESSolid_Shell > IGESSolid_TopoBuilder::Shell | ( | ) | const |
Returns the current Shell. The current Shell is created empty by MakeShell and filled by EndShell.
Handle< IGESSolid_ManifoldSolid > IGESSolid_TopoBuilder::Solid | ( | ) | const |
Returns the current ManifoldSolid. It is created empty by Create and filled by EndSolid.
const gp_XYZ & IGESSolid_TopoBuilder::Vertex | ( | const Standard_Integer | num | ) | const |
Returns a Vertex, given its rank.
Handle< IGESSolid_VertexList > IGESSolid_TopoBuilder::VertexList | ( | ) | const |
Returns the VertexList. It can be referenced, but it remains empty until call to EndShell or EndSolid.