Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes
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:
Inheritance graph
[legend]

Public Member Functions

 TopOpeBRepBuild_HBuilder (const TopOpeBRepDS_BuildTool &BT)
 
const TopOpeBRepDS_BuildToolBuildTool () const
 
void Perform (const occ::handle< TopOpeBRepDS_HDataStructure > &HDS)
 Stores the data structure <HDS>, Create shapes from the new geometries described in <HDS>.
 
void Perform (const occ::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.
 
occ::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>.
 
bool IsSplit (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns True if the shape has been split.
 
const NCollection_List< TopoDS_Shape > & Splits (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns the split parts <ToBuild> of shape .
 
bool IsMerged (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns True if the shape has been merged.
 
const NCollection_List< TopoDS_Shape > & Merged (const TopoDS_Shape &S, const TopAbs_State ToBuild) const
 Returns the merged parts <ToBuild> of shape .
 
const TopoDS_ShapeNewVertex (const int I) const
 Returns the vertex created on point .
 
const NCollection_List< TopoDS_Shape > & NewEdges (const int I) const
 Returns the edges created on curve .
 
NCollection_List< TopoDS_Shape > & ChangeNewEdges (const int I)
 Returns the edges created on curve .
 
const NCollection_List< TopoDS_Shape > & NewFaces (const int I) const
 Returns the faces created on surface .
 
const NCollection_List< TopoDS_Shape > & Section ()
 
void InitExtendedSectionDS (const int k=3)
 
void InitSection (const int k=3)
 
bool MoreSection () const
 
void NextSection ()
 
const TopoDS_ShapeCurrentSection () const
 
int GetDSEdgeFromSectEdge (const TopoDS_Shape &E, const int rank)
 
NCollection_List< int > & GetDSFaceFromDSEdge (const int indexEdg, const int rank)
 
int GetDSCurveFromSectEdge (const TopoDS_Shape &SectEdge)
 
int GetDSFaceFromDSCurve (const int indexCur, const int rank)
 
int GetDSPointFromNewVertex (const TopoDS_Shape &NewVert)
 
bool EdgeCurveAncestors (const TopoDS_Shape &E, TopoDS_Shape &F1, TopoDS_Shape &F2, int &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.
 
bool EdgeSectionAncestors (const TopoDS_Shape &E, NCollection_List< TopoDS_Shape > &LF1, NCollection_List< TopoDS_Shape > &LF2, NCollection_List< TopoDS_Shape > &LE1, NCollection_List< TopoDS_Shape > &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.
 
int 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 ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool 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.
 
bool IsKind (const char *const 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.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
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 charget_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()

NCollection_List< TopoDS_Shape > & TopOpeBRepBuild_HBuilder::ChangeNewEdges ( const int 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()

occ::handle< TopOpeBRepDS_HDataStructure > TopOpeBRepBuild_HBuilder::DataStructure ( ) const

returns the DS handled by this builder

◆ EdgeCurveAncestors()

bool TopOpeBRepBuild_HBuilder::EdgeCurveAncestors ( const TopoDS_Shape & E,
TopoDS_Shape & F1,
TopoDS_Shape & F2,
int & 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()

bool TopOpeBRepBuild_HBuilder::EdgeSectionAncestors ( const TopoDS_Shape & E,
NCollection_List< TopoDS_Shape > & LF1,
NCollection_List< TopoDS_Shape > & LF2,
NCollection_List< TopoDS_Shape > & LE1,
NCollection_List< TopoDS_Shape > & 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()

int TopOpeBRepBuild_HBuilder::GetDSCurveFromSectEdge ( const TopoDS_Shape & SectEdge)

◆ GetDSEdgeFromSectEdge()

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

◆ GetDSFaceFromDSCurve()

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

◆ GetDSFaceFromDSEdge()

NCollection_List< int > & TopOpeBRepBuild_HBuilder::GetDSFaceFromDSEdge ( const int indexEdg,
const int rank )

◆ GetDSPointFromNewVertex()

int TopOpeBRepBuild_HBuilder::GetDSPointFromNewVertex ( const TopoDS_Shape & NewVert)

◆ InitExtendedSectionDS()

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

◆ InitSection()

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

◆ IsKPart()

int TopOpeBRepBuild_HBuilder::IsKPart ( )

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

◆ IsMerged()

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

Returns True if the shape has been merged.

◆ IsSplit()

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

Returns True if the shape has been split.

◆ Merged()

const NCollection_List< TopoDS_Shape > & 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()

bool TopOpeBRepBuild_HBuilder::MoreSection ( ) const

◆ NewEdges()

const NCollection_List< TopoDS_Shape > & TopOpeBRepBuild_HBuilder::NewEdges ( const int I) const

Returns the edges created on curve .

◆ NewFaces()

const NCollection_List< TopoDS_Shape > & TopOpeBRepBuild_HBuilder::NewFaces ( const int I) const

Returns the faces created on surface .

◆ NewVertex()

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

Returns the vertex created on point .

◆ NextSection()

void TopOpeBRepBuild_HBuilder::NextSection ( )

◆ Perform() [1/2]

void TopOpeBRepBuild_HBuilder::Perform ( const occ::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 occ::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 NCollection_List< TopoDS_Shape > & TopOpeBRepBuild_HBuilder::Section ( )

◆ Splits()

const NCollection_List< TopoDS_Shape > & 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: