Open CASCADE Technology 7.8.2.dev
TopOpeBRepBuild_HBuilder Class Reference

The HBuilder algorithm constructs topological objects from an existing topology and new geometries attached to the topology. It is used to construct the result of a topological operation; the existing topologies are the parts involved in the topological operation and the new geometries are the intersection lines and points. More...

#include <TopOpeBRepBuild_HBuilder.hxx>

Inheritance diagram for TopOpeBRepBuild_HBuilder:

Public Member Functions

 TopOpeBRepBuild_HBuilder (const TopOpeBRepDS_BuildTool &BT)
 
const TopOpeBRepDS_BuildToolBuildTool () const
 
void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS)
 Stores the data structure <HDS>, Create shapes from the new geometries described in <HDS>.
 
void Perform (const Handle< TopOpeBRepDS_HDataStructure > &HDS, const TopoDS_Shape &S1, const TopoDS_Shape &S2)
 Same as previous + evaluates if an operation performed on shapes S1,S2 is a particular case.
 
void Clear ()
 Removes all split and merge already performed. Does NOT clear the handled DS.
 
Handle< TopOpeBRepDS_HDataStructureDataStructure () const
 returns the DS handled by this builder
 
TopOpeBRepDS_BuildToolChangeBuildTool ()
 
void MergeShapes (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopoDS_Shape &S2, const TopAbs_State TB2)
 Merges the two shapes <S1> and <S2> keeping the parts of states <TB1>,<TB2> in <S1>,<S2>.
 
void MergeSolids (const TopoDS_Shape &S1, const TopAbs_State TB1, const TopoDS_Shape &S2, const TopAbs_State TB2)
 Merges the two solids <S1> and <S2> keeping the parts in each solid of states <TB1> and <TB2>.
 
void MergeSolid (const TopoDS_Shape &S, const TopAbs_State TB)
 Merges the solid keeping the parts of state <TB>.
 
Standard_Boolean IsSplit (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns True if the shape has been split.
 
const TopTools_ListOfShapeSplits (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns the split parts <ToBuild> of shape .
 
Standard_Boolean IsMerged (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns True if the shape has been merged.
 
const TopTools_ListOfShapeMerged (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns the merged parts <ToBuild> of shape .
 
const TopoDS_ShapeNewVertex (const Standard_Integer I) const
 Returns the vertex created on point .
 
const TopTools_ListOfShapeNewEdges (const Standard_Integer I) const
 Returns the edges created on curve .
 
TopTools_ListOfShapeChangeNewEdges (const Standard_Integer I)
 Returns the edges created on curve .
 
const TopTools_ListOfShapeNewFaces (const Standard_Integer I) const
 Returns the faces created on surface .
 
const TopTools_ListOfShapeSection ()
 
void InitExtendedSectionDS (const Standard_Integer k=3)
 
void InitSection (const Standard_Integer k=3)
 
Standard_Boolean MoreSection () const
 
void NextSection ()
 
const TopoDS_ShapeCurrentSection () const
 
Standard_Integer GetDSEdgeFromSectEdge (const TopoDS_Shape &E, const Standard_Integer rank)
 
TColStd_ListOfIntegerGetDSFaceFromDSEdge (const Standard_Integer indexEdg, const Standard_Integer rank)
 
Standard_Integer GetDSCurveFromSectEdge (const TopoDS_Shape &SectEdge)
 
Standard_Integer GetDSFaceFromDSCurve (const Standard_Integer indexCur, const Standard_Integer rank)
 
Standard_Integer GetDSPointFromNewVertex (const TopoDS_Shape &NewVert)
 
Standard_Boolean EdgeCurveAncestors (const TopoDS_Shape &E, TopoDS_Shape &F1, TopoDS_Shape &F2, Standard_Integer &IC)
 search for the couple of face F1,F2 (from arguments of supra Perform(S1,S2,HDS)) method which intersection gives section edge E built on an intersection curve. returns True if F1,F2 have been valued. returns False if E is not a section edge built on intersection curve IC.
 
Standard_Boolean EdgeSectionAncestors (const TopoDS_Shape &E, TopTools_ListOfShape &LF1, TopTools_ListOfShape &LF2, TopTools_ListOfShape &LE1, TopTools_ListOfShape &LE2)
 search for the couple of face F1,F2 (from arguments of supra Perform(S1,S2,HDS)) method which intersection gives section edge E built on at least one edge . returns True if F1,F2 have been valued. returns False if E is not a section edge built on at least one edge of S1 and/or S2. LE1,LE2 are edges of S1,S2 which common part is edge E. LE1 or LE2 may be empty() but not both.
 
Standard_Integer IsKPart ()
 Returns 0 is standard operation, != 0 if particular case.
 
void MergeKPart (const TopAbs_State TB1, const TopAbs_State TB2)
 
TopOpeBRepBuild_BuilderChangeBuilder ()
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Attributes

TopOpeBRepBuild_Builder1 myBuilder
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const char * get_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

The HBuilder algorithm constructs topological objects from an existing topology and new geometries attached to the topology. It is used to construct the result of a topological operation; the existing topologies are the parts involved in the topological operation and the new geometries are the intersection lines and points.

Constructor & Destructor Documentation

◆ TopOpeBRepBuild_HBuilder()

TopOpeBRepBuild_HBuilder::TopOpeBRepBuild_HBuilder ( const TopOpeBRepDS_BuildTool & BT)

Member Function Documentation

◆ BuildTool()

const TopOpeBRepDS_BuildTool & TopOpeBRepBuild_HBuilder::BuildTool ( ) const

◆ ChangeBuilder()

TopOpeBRepBuild_Builder & TopOpeBRepBuild_HBuilder::ChangeBuilder ( )

◆ ChangeBuildTool()

TopOpeBRepDS_BuildTool & TopOpeBRepBuild_HBuilder::ChangeBuildTool ( )

◆ ChangeNewEdges()

TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::ChangeNewEdges ( const Standard_Integer I)

Returns the edges created on curve .

◆ Clear()

void TopOpeBRepBuild_HBuilder::Clear ( )

Removes all split and merge already performed. Does NOT clear the handled DS.

◆ CurrentSection()

const TopoDS_Shape & TopOpeBRepBuild_HBuilder::CurrentSection ( ) const

◆ DataStructure()

Handle< TopOpeBRepDS_HDataStructure > TopOpeBRepBuild_HBuilder::DataStructure ( ) const

returns the DS handled by this builder

◆ EdgeCurveAncestors()

Standard_Boolean TopOpeBRepBuild_HBuilder::EdgeCurveAncestors ( const TopoDS_Shape & E,
TopoDS_Shape & F1,
TopoDS_Shape & F2,
Standard_Integer & IC )

search for the couple of face F1,F2 (from arguments of supra Perform(S1,S2,HDS)) method which intersection gives section edge E built on an intersection curve. returns True if F1,F2 have been valued. returns False if E is not a section edge built on intersection curve IC.

◆ EdgeSectionAncestors()

Standard_Boolean TopOpeBRepBuild_HBuilder::EdgeSectionAncestors ( const TopoDS_Shape & E,
TopTools_ListOfShape & LF1,
TopTools_ListOfShape & LF2,
TopTools_ListOfShape & LE1,
TopTools_ListOfShape & LE2 )

search for the couple of face F1,F2 (from arguments of supra Perform(S1,S2,HDS)) method which intersection gives section edge E built on at least one edge . returns True if F1,F2 have been valued. returns False if E is not a section edge built on at least one edge of S1 and/or S2. LE1,LE2 are edges of S1,S2 which common part is edge E. LE1 or LE2 may be empty() but not both.

◆ GetDSCurveFromSectEdge()

Standard_Integer TopOpeBRepBuild_HBuilder::GetDSCurveFromSectEdge ( const TopoDS_Shape & SectEdge)

◆ GetDSEdgeFromSectEdge()

Standard_Integer TopOpeBRepBuild_HBuilder::GetDSEdgeFromSectEdge ( const TopoDS_Shape & E,
const Standard_Integer rank )

◆ GetDSFaceFromDSCurve()

Standard_Integer TopOpeBRepBuild_HBuilder::GetDSFaceFromDSCurve ( const Standard_Integer indexCur,
const Standard_Integer rank )

◆ GetDSFaceFromDSEdge()

TColStd_ListOfInteger & TopOpeBRepBuild_HBuilder::GetDSFaceFromDSEdge ( const Standard_Integer indexEdg,
const Standard_Integer rank )

◆ GetDSPointFromNewVertex()

Standard_Integer TopOpeBRepBuild_HBuilder::GetDSPointFromNewVertex ( const TopoDS_Shape & NewVert)

◆ InitExtendedSectionDS()

void TopOpeBRepBuild_HBuilder::InitExtendedSectionDS ( const Standard_Integer k = 3)

◆ InitSection()

void TopOpeBRepBuild_HBuilder::InitSection ( const Standard_Integer k = 3)

◆ IsKPart()

Standard_Integer TopOpeBRepBuild_HBuilder::IsKPart ( )

Returns 0 is standard operation, != 0 if particular case.

◆ IsMerged()

Standard_Boolean TopOpeBRepBuild_HBuilder::IsMerged ( const TopoDS_Shape & S,
const TopAbs_State ToBuild ) const

Returns True if the shape has been merged.

◆ IsSplit()

Standard_Boolean TopOpeBRepBuild_HBuilder::IsSplit ( const TopoDS_Shape & S,
const TopAbs_State ToBuild ) const

Returns True if the shape has been split.

◆ Merged()

const TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::Merged ( const TopoDS_Shape & S,
const TopAbs_State ToBuild ) const

Returns the merged parts <ToBuild> of shape .

◆ MergeKPart()

void TopOpeBRepBuild_HBuilder::MergeKPart ( const TopAbs_State TB1,
const TopAbs_State TB2 )

◆ MergeShapes()

void TopOpeBRepBuild_HBuilder::MergeShapes ( const TopoDS_Shape & S1,
const TopAbs_State TB1,
const TopoDS_Shape & S2,
const TopAbs_State TB2 )

Merges the two shapes <S1> and <S2> keeping the parts of states <TB1>,<TB2> in <S1>,<S2>.

◆ MergeSolid()

void TopOpeBRepBuild_HBuilder::MergeSolid ( const TopoDS_Shape & S,
const TopAbs_State TB )

Merges the solid keeping the parts of state <TB>.

◆ MergeSolids()

void TopOpeBRepBuild_HBuilder::MergeSolids ( const TopoDS_Shape & S1,
const TopAbs_State TB1,
const TopoDS_Shape & S2,
const TopAbs_State TB2 )

Merges the two solids <S1> and <S2> keeping the parts in each solid of states <TB1> and <TB2>.

◆ MoreSection()

Standard_Boolean TopOpeBRepBuild_HBuilder::MoreSection ( ) const

◆ NewEdges()

const TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::NewEdges ( const Standard_Integer I) const

Returns the edges created on curve .

◆ NewFaces()

const TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::NewFaces ( const Standard_Integer I) const

Returns the faces created on surface .

◆ NewVertex()

const TopoDS_Shape & TopOpeBRepBuild_HBuilder::NewVertex ( const Standard_Integer I) const

Returns the vertex created on point .

◆ NextSection()

void TopOpeBRepBuild_HBuilder::NextSection ( )

◆ Perform() [1/2]

void TopOpeBRepBuild_HBuilder::Perform ( const Handle< TopOpeBRepDS_HDataStructure > & HDS)

Stores the data structure <HDS>, Create shapes from the new geometries described in <HDS>.

◆ Perform() [2/2]

void TopOpeBRepBuild_HBuilder::Perform ( const Handle< TopOpeBRepDS_HDataStructure > & HDS,
const TopoDS_Shape & S1,
const TopoDS_Shape & S2 )

Same as previous + evaluates if an operation performed on shapes S1,S2 is a particular case.

◆ Section()

const TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::Section ( )

◆ Splits()

const TopTools_ListOfShape & TopOpeBRepBuild_HBuilder::Splits ( const TopoDS_Shape & S,
const TopAbs_State ToBuild ) const

Returns the split parts <ToBuild> of shape .

Field Documentation

◆ myBuilder

TopOpeBRepBuild_Builder1 TopOpeBRepBuild_HBuilder::myBuilder
protected

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