Open CASCADE Technology  7.7.0
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. More...
 
void Init (const TopoDS_Wire &W, const TopoDS_Face &F)
 Initializes by wire and face. More...
 
void Init (const TopoDS_Wire &W, const Handle< Geom_Surface > &S)
 Initializes by wire and surface. More...
 
void Load (const TopoDS_Wire &W)
 Loads working wire. More...
 
void Load (const TopoDS_Edge &E)
 Creates wire of one edge and calls Load for wire. More...
 
void SetFace (const TopoDS_Face &F)
 Sets supporting surface by face. More...
 
void SetSurface (const Handle< Geom_Surface > &S)
 Sets supporting surface. More...
 
void SetSurface (const Handle< Geom_Surface > &S, const TopLoc_Location &L)
 Sets supporting surface with location. More...
 
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. More...
 
const TopoDS_WireWire () const
 Gives the resulting Wire (equal to initial one if not done or Null if not loaded) More...
 
Standard_Boolean 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) More...
 
void SetSplitCurve3dTool (const Handle< ShapeUpgrade_SplitCurve3d > &splitCurve3dTool)
 Sets the tool for splitting 3D curves. More...
 
void SetSplitCurve2dTool (const Handle< ShapeUpgrade_SplitCurve2d > &splitCurve2dTool)
 Sets the tool for splitting pcurves. More...
 
void SetTransferParamTool (const Handle< ShapeAnalysis_TransferParameters > &TransferParam)
 Sets the tool for Transfer parameters between curves and pcurves. More...
 
void SetEdgeDivideTool (const Handle< ShapeUpgrade_EdgeDivide > &edgeDivideTool)
 Sets tool for splitting edge. More...
 
virtual Handle< ShapeUpgrade_EdgeDivideGetEdgeDivideTool () const
 returns tool for splitting edges More...
 
virtual Handle< ShapeAnalysis_TransferParametersGetTransferParamTool ()
 Returns the tool for Transfer of parameters. More...
 
void SetEdgeMode (const Standard_Integer 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. More...
 
void SetFixSmallCurveTool (const Handle< ShapeUpgrade_FixSmallCurves > &FixSmallCurvesTool)
 Sets tool for fixing small curves with specified min tolerance;. More...
 
Handle< ShapeUpgrade_FixSmallCurvesGetFixSmallCurveTool () const
 Returns tool for fixing small curves. More...
 
- Public Member Functions inherited from ShapeUpgrade_Tool
 ShapeUpgrade_Tool ()
 Empty constructor. More...
 
void Set (const Handle< ShapeUpgrade_Tool > &tool)
 Copy all fields from another Root object. More...
 
void SetContext (const Handle< ShapeBuild_ReShape > &context)
 Sets context. More...
 
Handle< ShapeBuild_ReShapeContext () const
 Returns context. More...
 
void SetPrecision (const Standard_Real preci)
 Sets basic precision value. More...
 
Standard_Real Precision () const
 Returns basic precision value. More...
 
void SetMinTolerance (const Standard_Real mintol)
 Sets minimal allowed tolerance. More...
 
Standard_Real MinTolerance () const
 Returns minimal allowed tolerance. More...
 
void SetMaxTolerance (const Standard_Real maxtol)
 Sets maximal allowed tolerance. More...
 
Standard_Real MaxTolerance () const
 Returns maximal allowed tolerance. More...
 
Standard_Real LimitTolerance (const Standard_Real toler) const
 Returns tolerance limited by [myMinTol,myMaxTol]. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
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. More...
 
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. More...
 
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. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Member Functions

virtual Handle< ShapeUpgrade_SplitCurve3dGetSplitCurve3dTool () const
 Returns the tool for splitting 3D curves. More...
 
virtual Handle< ShapeUpgrade_SplitCurve2dGetSplitCurve2dTool () const
 Returns the tool for splitting pcurves. More...
 

Protected Attributes

TopoDS_Face myFace
 
TopoDS_Wire myWire
 
Standard_Integer myStatus
 
Standard_Integer myEdgeMode
 

Additional Inherited Members

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

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 Handle< ShapeUpgrade_EdgeDivide > ShapeUpgrade_WireDivide::GetEdgeDivideTool ( ) const
virtual

returns tool for splitting edges

◆ GetFixSmallCurveTool()

Handle< ShapeUpgrade_FixSmallCurves > ShapeUpgrade_WireDivide::GetFixSmallCurveTool ( ) const

Returns tool for fixing small curves.

◆ GetSplitCurve2dTool()

virtual Handle< ShapeUpgrade_SplitCurve2d > ShapeUpgrade_WireDivide::GetSplitCurve2dTool ( ) const
protectedvirtual

Returns the tool for splitting pcurves.

◆ GetSplitCurve3dTool()

virtual Handle< ShapeUpgrade_SplitCurve3d > ShapeUpgrade_WireDivide::GetSplitCurve3dTool ( ) const
protectedvirtual

Returns the tool for splitting 3D curves.

◆ GetTransferParamTool()

virtual 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 TopoDS_Face F 
)

Initializes by wire and face.

◆ Init() [2/2]

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

Initializes by wire and surface.

◆ Load() [1/2]

void ShapeUpgrade_WireDivide::Load ( const TopoDS_Wire W)

Loads working wire.

◆ Load() [2/2]

void ShapeUpgrade_WireDivide::Load ( const TopoDS_Edge E)

Creates wire of one edge and calls Load for 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 Handle< ShapeUpgrade_EdgeDivide > &  edgeDivideTool)

Sets tool for splitting edge.

◆ SetEdgeMode()

void ShapeUpgrade_WireDivide::SetEdgeMode ( const Standard_Integer  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 Handle< ShapeUpgrade_FixSmallCurves > &  FixSmallCurvesTool)

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

◆ SetSplitCurve2dTool()

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

Sets the tool for splitting pcurves.

◆ SetSplitCurve3dTool()

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

Sets the tool for splitting 3D curves.

◆ SetSurface() [1/2]

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

Sets supporting surface.

◆ SetSurface() [2/2]

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

Sets supporting surface with location.

◆ SetTransferParamTool()

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

Sets the tool for Transfer parameters between curves and pcurves.

◆ Status()

Standard_Boolean 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

Standard_Integer ShapeUpgrade_WireDivide::myEdgeMode
protected

◆ myFace

TopoDS_Face ShapeUpgrade_WireDivide::myFace
protected

◆ myStatus

Standard_Integer ShapeUpgrade_WireDivide::myStatus
protected

◆ myWire

TopoDS_Wire ShapeUpgrade_WireDivide::myWire
protected

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