Open CASCADE Technology  7.6.0
Public Member Functions | Protected Member Functions

IGESSolid_TopoBuilder Class Reference

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. More...
 
void Clear ()
 Resets the TopoBuilder for an entirely new operation (with a new EdgeList, a new VertexList, new Shells, ...) More...
 
void AddVertex (const gp_XYZ &val)
 Adds a Vertex to the VertexList. More...
 
Standard_Integer NbVertices () const
 Returns the count of already recorded Vertices. More...
 
const gp_XYZVertex (const Standard_Integer num) const
 Returns a Vertex, given its rank. More...
 
Handle< IGESSolid_VertexListVertexList () const
 Returns the VertexList. It can be referenced, but it remains empty until call to EndShell or EndSolid. More...
 
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. More...
 
Standard_Integer NbEdges () const
 Returns the count of recorded Edges (3D) More...
 
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. More...
 
Handle< IGESSolid_EdgeListEdgeList () const
 Returns the EdgeList. It can be referenced, but it remains empty until call to EndShell or EndSolid. More...
 
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) More...
 
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 : More...
 
void AddCurveUV (const Handle< IGESData_IGESEntity > &curve, const Standard_Integer iso)
 Adds a Parametric Curve (UV) to the current Edge(UV) More...
 
void EndEdge ()
 Closes the definition of an Edge(UV) and adds it to the current Loop. More...
 
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) More...
 
void SetOuter ()
 Closes the current Loop and sets it Loop as Outer Loop. If no current Loop has yet been defined, does nothing. More...
 
void AddInner ()
 Closes the current Loop and adds it to the list of Inner Loops for the current Face. More...
 
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) More...
 
void MakeShell ()
 Begins the definition of a new Shell (either Simple or in a Solid) More...
 
void EndSimpleShell ()
 Closes the whole definition as that of a simple Shell. More...
 
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) More...
 
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) More...
 
void EndSolid ()
 Closes the whole definition as that of a ManifoldSolid Its call is exclusive from that of EndSimpleShell. More...
 
Handle< IGESSolid_ShellShell () const
 Returns the current Shell. The current Shell is created empty by MakeShell and filled by EndShell. More...
 
Handle< IGESSolid_ManifoldSolidSolid () const
 Returns the current ManifoldSolid. It is created empty by Create and filled by EndSolid. More...
 

Protected Member Functions

void EndLists ()
 Closes the definition of Vertex and Edge Lists Warning : Called only by EndSimpleShell and EndSolid. More...
 
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. More...
 
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) More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ IGESSolid_TopoBuilder()

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.

Member Function Documentation

◆ AddCurveUV()

void IGESSolid_TopoBuilder::AddCurveUV ( const Handle< IGESData_IGESEntity > &  curve,
const Standard_Integer  iso 
)

Adds a Parametric Curve (UV) to the current Edge(UV)

◆ AddEdge()

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.

◆ AddInner()

void IGESSolid_TopoBuilder::AddInner ( )

Closes the current Loop and adds it to the list of Inner Loops for the current Face.

◆ AddVertex()

void IGESSolid_TopoBuilder::AddVertex ( const gp_XYZ val)

Adds a Vertex to the VertexList.

◆ AddVoidShell()

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)

◆ Clear()

void IGESSolid_TopoBuilder::Clear ( )

Resets the TopoBuilder for an entirely new operation (with a new EdgeList, a new VertexList, new Shells, ...)

◆ Edge()

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.

◆ EdgeList()

Handle< IGESSolid_EdgeList > IGESSolid_TopoBuilder::EdgeList ( ) const

Returns the EdgeList. It can be referenced, but it remains empty until call to EndShell or EndSolid.

◆ EndEdge()

void IGESSolid_TopoBuilder::EndEdge ( )

Closes the definition of an Edge(UV) and adds it to the current Loop.

◆ EndFace()

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)

◆ EndLists()

void IGESSolid_TopoBuilder::EndLists ( )
protected

Closes the definition of Vertex and Edge Lists Warning : Called only by EndSimpleShell and EndSolid.

◆ EndLoop()

void IGESSolid_TopoBuilder::EndLoop ( )
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.

◆ EndShell()

void IGESSolid_TopoBuilder::EndShell ( )
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)

◆ EndSimpleShell()

void IGESSolid_TopoBuilder::EndSimpleShell ( )

Closes the whole definition as that of a simple Shell.

◆ EndSolid()

void IGESSolid_TopoBuilder::EndSolid ( )

Closes the whole definition as that of a ManifoldSolid Its call is exclusive from that of EndSimpleShell.

◆ MakeEdge()

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 :

  • give the parametric curves
  • close the definition of this edge(UV) by EndEdge, else the next call to MakeEdge will erase this one

◆ MakeFace()

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)

◆ MakeLoop()

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)

◆ MakeShell()

void IGESSolid_TopoBuilder::MakeShell ( )

Begins the definition of a new Shell (either Simple or in a Solid)

◆ NbEdges()

Standard_Integer IGESSolid_TopoBuilder::NbEdges ( ) const

Returns the count of recorded Edges (3D)

◆ NbVertices()

Standard_Integer IGESSolid_TopoBuilder::NbVertices ( ) const

Returns the count of already recorded Vertices.

◆ SetMainShell()

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)

◆ SetOuter()

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.

◆ Shell()

Handle< IGESSolid_Shell > IGESSolid_TopoBuilder::Shell ( ) const

Returns the current Shell. The current Shell is created empty by MakeShell and filled by EndShell.

◆ Solid()

Handle< IGESSolid_ManifoldSolid > IGESSolid_TopoBuilder::Solid ( ) const

Returns the current ManifoldSolid. It is created empty by Create and filled by EndSolid.

◆ Vertex()

const gp_XYZ& IGESSolid_TopoBuilder::Vertex ( const Standard_Integer  num) const

Returns a Vertex, given its rank.

◆ VertexList()

Handle< IGESSolid_VertexList > IGESSolid_TopoBuilder::VertexList ( ) const

Returns the VertexList. It can be referenced, but it remains empty until call to EndShell or EndSolid.


The documentation for this class was generated from the following file: