Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes
ShapeUpgrade_WireDivide Class Reference

Divides edges in the wire lying on the face or free wires or free edges with a criterion. Splits 3D curve and pcurve(s) of the edge on the face. Other pcurves which may be associated with the edge are simply copied. If 3D curve is split then pcurve on the face is split as well, and vice-versa. Input shape is not modified. The modifications made are recorded in external context (ShapeBuild_ReShape). This tool is applied to all edges before splitting them in order to keep sharing. More...

#include <ShapeUpgrade_WireDivide.hxx>

Inheritance diagram for ShapeUpgrade_WireDivide:
Inheritance graph
[legend]

Public Member Functions

 ShapeUpgrade_WireDivide ()
 Empty constructor.
 
void Init (const TopoDS_Wire &W, const TopoDS_Face &F)
 Initializes by wire and face.
 
void Init (const TopoDS_Wire &W, const occ::handle< Geom_Surface > &S)
 Initializes by wire and surface.
 
void Load (const TopoDS_Wire &W)
 Loads working wire.
 
void Load (const TopoDS_Edge &E)
 Creates wire of one edge and calls Load for wire.
 
void SetFace (const TopoDS_Face &F)
 Sets supporting surface by face.
 
void SetSurface (const occ::handle< Geom_Surface > &S)
 Sets supporting surface.
 
void SetSurface (const occ::handle< Geom_Surface > &S, const TopLoc_Location &L)
 Sets supporting surface with location.
 
virtual void Perform ()
 Computes the resulting wire by splitting all the edges according to splitting criteria. All the modifications made are recorded in context (ShapeBuild_ReShape). This tool is applied to all edges before splitting them in order to keep sharings. If no supporting face or surface is defined, only 3d splitting criteria are used.
 
const TopoDS_WireWire () const
 Gives the resulting Wire (equal to initial one if not done or Null if not loaded)
 
bool Status (const ShapeExtend_Status status) const
 Queries status of last call to Perform() OK - no edges were split, wire left untouched DONE1 - some edges were split FAIL1 - some edges have no 3d curve (skipped) FAIL2 - some edges have no pcurve (skipped)
 
void SetSplitCurve3dTool (const occ::handle< ShapeUpgrade_SplitCurve3d > &splitCurve3dTool)
 Sets the tool for splitting 3D curves.
 
void SetSplitCurve2dTool (const occ::handle< ShapeUpgrade_SplitCurve2d > &splitCurve2dTool)
 Sets the tool for splitting pcurves.
 
void SetTransferParamTool (const occ::handle< ShapeAnalysis_TransferParameters > &TransferParam)
 Sets the tool for Transfer parameters between curves and pcurves.
 
void SetEdgeDivideTool (const occ::handle< ShapeUpgrade_EdgeDivide > &edgeDivideTool)
 Sets tool for splitting edge.
 
virtual occ::handle< ShapeUpgrade_EdgeDivideGetEdgeDivideTool () const
 returns tool for splitting edges
 
virtual occ::handle< ShapeAnalysis_TransferParametersGetTransferParamTool ()
 Returns the tool for Transfer of parameters.
 
void SetEdgeMode (const int EdgeMode)
 Sets mode for splitting 3d curves from edges. 0 - only curve 3d from free edges. 1 - only curve 3d from shared edges. 2 - all curve 3d.
 
void SetFixSmallCurveTool (const occ::handle< ShapeUpgrade_FixSmallCurves > &FixSmallCurvesTool)
 Sets tool for fixing small curves with specified min tolerance;.
 
occ::handle< ShapeUpgrade_FixSmallCurvesGetFixSmallCurveTool () const
 Returns tool for fixing small curves.
 
- Public Member Functions inherited from ShapeUpgrade_Tool
 ShapeUpgrade_Tool ()
 Empty constructor.
 
void Set (const occ::handle< ShapeUpgrade_Tool > &tool)
 Copy all fields from another Root object.
 
void SetContext (const occ::handle< ShapeBuild_ReShape > &context)
 Sets context.
 
occ::handle< ShapeBuild_ReShapeContext () const
 Returns context.
 
void SetPrecision (const double preci)
 Sets basic precision value.
 
double Precision () const
 Returns basic precision value.
 
void SetMinTolerance (const double mintol)
 Sets minimal allowed tolerance.
 
double MinTolerance () const
 Returns minimal allowed tolerance.
 
void SetMaxTolerance (const double maxtol)
 Sets maximal allowed tolerance.
 
double MaxTolerance () const
 Returns maximal allowed tolerance.
 
double LimitTolerance (const double toler) const
 Returns tolerance limited by [myMinTol,myMaxTol].
 
- 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 Member Functions

virtual occ::handle< ShapeUpgrade_SplitCurve3dGetSplitCurve3dTool () const
 Returns the tool for splitting 3D curves.
 
virtual occ::handle< ShapeUpgrade_SplitCurve2dGetSplitCurve2dTool () const
 Returns the tool for splitting pcurves.
 

Protected Attributes

TopoDS_Face myFace
 
TopoDS_Wire myWire
 
int myStatus
 
int myEdgeMode
 

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

Divides edges in the wire lying on the face or free wires or free edges with a criterion. Splits 3D curve and pcurve(s) of the edge on the face. Other pcurves which may be associated with the edge are simply copied. If 3D curve is split then pcurve on the face is split as well, and vice-versa. Input shape is not modified. The modifications made are recorded in external context (ShapeBuild_ReShape). This tool is applied to all edges before splitting them in order to keep sharing.

Constructor & Destructor Documentation

◆ ShapeUpgrade_WireDivide()

ShapeUpgrade_WireDivide::ShapeUpgrade_WireDivide ( )

Empty constructor.

Member Function Documentation

◆ GetEdgeDivideTool()

virtual occ::handle< ShapeUpgrade_EdgeDivide > ShapeUpgrade_WireDivide::GetEdgeDivideTool ( ) const
virtual

returns tool for splitting edges

◆ GetFixSmallCurveTool()

occ::handle< ShapeUpgrade_FixSmallCurves > ShapeUpgrade_WireDivide::GetFixSmallCurveTool ( ) const

Returns tool for fixing small curves.

◆ GetSplitCurve2dTool()

virtual occ::handle< ShapeUpgrade_SplitCurve2d > ShapeUpgrade_WireDivide::GetSplitCurve2dTool ( ) const
protectedvirtual

Returns the tool for splitting pcurves.

◆ GetSplitCurve3dTool()

virtual occ::handle< ShapeUpgrade_SplitCurve3d > ShapeUpgrade_WireDivide::GetSplitCurve3dTool ( ) const
protectedvirtual

Returns the tool for splitting 3D curves.

◆ GetTransferParamTool()

virtual occ::handle< ShapeAnalysis_TransferParameters > ShapeUpgrade_WireDivide::GetTransferParamTool ( )
virtual

Returns the tool for Transfer of parameters.

◆ Init() [1/2]

void ShapeUpgrade_WireDivide::Init ( const TopoDS_Wire & W,
const occ::handle< Geom_Surface > & S )

Initializes by wire and surface.

◆ Init() [2/2]

void ShapeUpgrade_WireDivide::Init ( const TopoDS_Wire & W,
const TopoDS_Face & F )

Initializes by wire and face.

◆ Load() [1/2]

void ShapeUpgrade_WireDivide::Load ( const TopoDS_Edge & E)

Creates wire of one edge and calls Load for wire.

◆ Load() [2/2]

void ShapeUpgrade_WireDivide::Load ( const TopoDS_Wire & W)

Loads working wire.

◆ Perform()

virtual void ShapeUpgrade_WireDivide::Perform ( )
virtual

Computes the resulting wire by splitting all the edges according to splitting criteria. All the modifications made are recorded in context (ShapeBuild_ReShape). This tool is applied to all edges before splitting them in order to keep sharings. If no supporting face or surface is defined, only 3d splitting criteria are used.

◆ SetEdgeDivideTool()

void ShapeUpgrade_WireDivide::SetEdgeDivideTool ( const occ::handle< ShapeUpgrade_EdgeDivide > & edgeDivideTool)

Sets tool for splitting edge.

◆ SetEdgeMode()

void ShapeUpgrade_WireDivide::SetEdgeMode ( const int EdgeMode)

Sets mode for splitting 3d curves from edges. 0 - only curve 3d from free edges. 1 - only curve 3d from shared edges. 2 - all curve 3d.

◆ SetFace()

void ShapeUpgrade_WireDivide::SetFace ( const TopoDS_Face & F)

Sets supporting surface by face.

◆ SetFixSmallCurveTool()

void ShapeUpgrade_WireDivide::SetFixSmallCurveTool ( const occ::handle< ShapeUpgrade_FixSmallCurves > & FixSmallCurvesTool)

Sets tool for fixing small curves with specified min tolerance;.

◆ SetSplitCurve2dTool()

void ShapeUpgrade_WireDivide::SetSplitCurve2dTool ( const occ::handle< ShapeUpgrade_SplitCurve2d > & splitCurve2dTool)

Sets the tool for splitting pcurves.

◆ SetSplitCurve3dTool()

void ShapeUpgrade_WireDivide::SetSplitCurve3dTool ( const occ::handle< ShapeUpgrade_SplitCurve3d > & splitCurve3dTool)

Sets the tool for splitting 3D curves.

◆ SetSurface() [1/2]

void ShapeUpgrade_WireDivide::SetSurface ( const occ::handle< Geom_Surface > & S)

Sets supporting surface.

◆ SetSurface() [2/2]

void ShapeUpgrade_WireDivide::SetSurface ( const occ::handle< Geom_Surface > & S,
const TopLoc_Location & L )

Sets supporting surface with location.

◆ SetTransferParamTool()

void ShapeUpgrade_WireDivide::SetTransferParamTool ( const occ::handle< ShapeAnalysis_TransferParameters > & TransferParam)

Sets the tool for Transfer parameters between curves and pcurves.

◆ Status()

bool ShapeUpgrade_WireDivide::Status ( const ShapeExtend_Status status) const

Queries status of last call to Perform() OK - no edges were split, wire left untouched DONE1 - some edges were split FAIL1 - some edges have no 3d curve (skipped) FAIL2 - some edges have no pcurve (skipped)

◆ Wire()

const TopoDS_Wire & ShapeUpgrade_WireDivide::Wire ( ) const

Gives the resulting Wire (equal to initial one if not done or Null if not loaded)

Field Documentation

◆ myEdgeMode

int ShapeUpgrade_WireDivide::myEdgeMode
protected

◆ myFace

TopoDS_Face ShapeUpgrade_WireDivide::myFace
protected

◆ myStatus

int ShapeUpgrade_WireDivide::myStatus
protected

◆ myWire

TopoDS_Wire ShapeUpgrade_WireDivide::myWire
protected

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