Open CASCADE Technology 6.6.0
Static Public Member Functions
BOPTools_AlgoTools Class Reference

#include <BOPTools_AlgoTools.hxx>

Static Public Member Functions

static Standard_Integer ComputeVV (const TopoDS_Vertex &aV1, const gp_Pnt &aP2, const Standard_Real aTolP2)
static Standard_Integer ComputeVV (const TopoDS_Vertex &aV1, const TopoDS_Vertex &aV2)
static void MakeVertex (BOPCol_ListOfShape &aLV, TopoDS_Vertex &aV)
static void MakeEdge (const IntTools_Curve &theCurve, const TopoDS_Vertex &theV1, const Standard_Real theT1, const TopoDS_Vertex &theV2, const Standard_Real theT2, const Standard_Real theTolR3D, TopoDS_Edge &theE)
static void MakePCurve (const TopoDS_Edge &theE, const TopoDS_Face &theF1, const TopoDS_Face &theF2, const IntTools_Curve &theCurve, const Standard_Boolean thePC1, const Standard_Boolean thePC2)
static void MakeContainer (const TopAbs_ShapeEnum theType, TopoDS_Shape &theShape)
static Standard_Boolean IsHole (const TopoDS_Shape &aW, const TopoDS_Shape &aF)
static Standard_Boolean IsSplitToReverse (const TopoDS_Shape &theSplit, const TopoDS_Shape &theShape, Handle< BOPInt_Context > &theContext)
 Returns True if the shape theSplit has opposite
direction than theShape
theContext - cashed geometrical tools

static Standard_Boolean IsSplitToReverse (const TopoDS_Face &theSplit, const TopoDS_Face &theShape, Handle< BOPInt_Context > &theContext)
 Returns True if normal direction of the face
theShape is not the same as for the face
theSplit
theContext - cashed geometrical tools

static Standard_Boolean IsSplitToReverse (const TopoDS_Edge &aE1, const TopoDS_Edge &aE2, Handle< BOPInt_Context > &aContext)
static Standard_Boolean AreFacesSameDomain (const TopoDS_Face &theF1, const TopoDS_Face &theF2, Handle< BOPInt_Context > &theContext)
static Standard_Boolean CheckSameGeom (const TopoDS_Face &theF1, const TopoDS_Face &theF2, Handle< BOPInt_Context > &theContext)
static Standard_Integer Sense (const TopoDS_Face &theF1, const TopoDS_Face &theF2)
static Standard_Boolean GetEdgeOff (const TopoDS_Edge &theEdge, const TopoDS_Face &theFace, TopoDS_Edge &theEdgeOff)
 Returns True if the face theFace contains
the edge theEdge but with opposite orientation.
If the method returns True theEdgeOff is the
edge founded

static void GetFaceOff (const TopoDS_Edge &theEdge, const TopoDS_Face &theFace, BOPTools_ListOfCoupleOfShape &theLCEF, TopoDS_Face &theFaceOff, Handle< BOPInt_Context > &theContext)
 For the face theFace and its edge theEdge
finds the face suitable to produce shell.
theLCEF - set of faces to search. All faces
from theLCEF must share edge theEdge

static Standard_Boolean IsInternalFace (const TopoDS_Face &theFace, const TopoDS_Edge &theEdge, const TopoDS_Face &theFace1, const TopoDS_Face &theFace2, Handle< BOPInt_Context > &theContext)
 Returns True if the face theFace is inside of the
couple of faces theFace1, theFace2.
The faces theFace, theFace1, theFace2 must
share the edge theEdge

static Standard_Boolean IsInternalFace (const TopoDS_Face &theFace, const TopoDS_Edge &theEdge, BOPCol_ListOfShape &theLF, Handle< BOPInt_Context > &theContext)
 Returns True if the face theFace is inside of the
appropriate couple of faces (from the set theLF) .
The faces of the set theLF and theFace must
share the edge theEdge

static Standard_Boolean IsInternalFace (const TopoDS_Face &theFace, const TopoDS_Solid &theSolid, BOPCol_IndexedDataMapOfShapeListOfShape &theMEF, const Standard_Real theTol, Handle< BOPInt_Context > &theContext)
 Returns True if the face theFace is inside the
solid theSolid.
theMEF - Map Edge/Faces for theSolid
theTol - value of precision of computation
theContext- cahed geometrical tools

static Standard_Boolean GetEdgeOnFace (const TopoDS_Edge &theEdge, const TopoDS_Face &theFace, TopoDS_Edge &theEdgeOnF)
 For the face theFace gets the edge theEdgeOnF
that is the same as theEdge
Returns True if such edge exists
Returns False if there is no such edge

static TopAbs_State ComputeState (const gp_Pnt &thePoint, const TopoDS_Solid &theSolid, const Standard_Real theTol, Handle< BOPInt_Context > &theContext)
 Computes the 3-D state of the point thePoint
toward solid theSolid.
theTol - value of precision of computation
theContext- cahed geometrical tools
Returns 3-D state.

static TopAbs_State ComputeState (const TopoDS_Vertex &theVertex, const TopoDS_Solid &theSolid, const Standard_Real theTol, Handle< BOPInt_Context > &theContext)
 Computes the 3-D state of the vertex theVertex
toward solid theSolid.
theTol - value of precision of computation
theContext- cahed geometrical tools
Returns 3-D state.

static TopAbs_State ComputeState (const TopoDS_Edge &theEdge, const TopoDS_Solid &theSolid, const Standard_Real theTol, Handle< BOPInt_Context > &theContext)
 Computes the 3-D state of the edge theEdge
toward solid theSolid.
theTol - value of precision of computation
theContext- cahed geometrical tools
Returns 3-D state.

static TopAbs_State ComputeState (const TopoDS_Face &theFace, const TopoDS_Solid &theSolid, const Standard_Real theTol, BOPCol_IndexedMapOfShape &theBounds, Handle< BOPInt_Context > &theContext)
 Computes the 3-D state of the face theFace
toward solid theSolid.
theTol - value of precision of computation
theBounds - set of edges of theFace to avoid
theContext- cahed geometrical tools
Returns 3-D state.

static TopAbs_State ComputeStateByOnePoint (const TopoDS_Shape &theShape, const TopoDS_Solid &theSolid, const Standard_Real theTol, Handle< BOPInt_Context > &theContext)
 Computes the 3-D state of the shape theShape
toward solid theSolid.
theTol - value of precision of computation
theContext- cahed geometrical tools
Returns 3-D state.

static void MakeConnexityBlock (BOPCol_ListOfShape &theLS, BOPCol_IndexedMapOfShape &theMapAvoid, BOPCol_ListOfShape &theLSCB, const BOPCol_BaseAllocator &theAllocator)
 For the list of faces theLS build block
theLSCB in terms of connexity by edges
theMapAvoid - set of edges to avoid for
the treatment

static void MakeConnexityBlocks (const TopoDS_Shape &theS, const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2, BOPCol_ListOfShape &theLCB)
 For the compound theS build the blocks
theLCB (as list of compounds)
in terms of connexity by the shapes of theType

static void OrientFacesOnShell (TopoDS_Shape &theS)
static void CorrectTolerances (const TopoDS_Shape &theS, const Standard_Real theTolMax=0.0001)
 Provides valid values of tolerances for the shape <theS>
<theTolMax> is max value of the tolerance that can be
accepted for correction. If real value of the tolerance
will be greater than <aTolMax>, the correction does not
perform.


static void CorrectCurveOnSurface (const TopoDS_Shape &theS, const Standard_Real theTolMax=0.0001)
 Provides valid values of tolerances for the shape <theS>
in terms of BRepCheck_InvalidCurveOnSurface.


static void CorrectPointOnCurve (const TopoDS_Shape &theS, const Standard_Real theTolMax=0.0001)
 Provides valid values of tolerances for the shape <theS>
in terms of BRepCheck_InvalidPointOnCurve.


static void MakeNewVertex (const gp_Pnt &aP1, const Standard_Real aTol, TopoDS_Vertex &aNewVertex)
 Make a vertex using 3D-point <aP1> and 3D-tolerance value <aTol>


static void MakeNewVertex (const TopoDS_Vertex &aV1, const TopoDS_Vertex &aV2, TopoDS_Vertex &aNewVertex)
 Make a vertex using couple of vertices <aV1, aV2>


static void MakeNewVertex (const TopoDS_Edge &aE1, const Standard_Real aP1, const TopoDS_Edge &aE2, const Standard_Real aP2, TopoDS_Vertex &aNewVertex)
 Make a vertex in place of intersection between two edges
<aE1, aE2> with parameters <aP1, aP2>


static void MakeNewVertex (const TopoDS_Edge &aE1, const Standard_Real aP1, const TopoDS_Face &aF2, TopoDS_Vertex &aNewVertex)
 Make a vertex in place of intersection between the edge <aE1>
with parameter <aP1> and the face <aF2>


static void PointOnEdge (const TopoDS_Edge &aEdge, const Standard_Real aPrm, gp_Pnt &aP)
 Compute a 3D-point on the edge <aEdge> at parameter <aPrm>


static void MakeSplitEdge (const TopoDS_Edge &aE1, const TopoDS_Vertex &aV1, const Standard_Real aP1, const TopoDS_Vertex &aV2, const Standard_Real aP2, TopoDS_Edge &aNewEdge)
 Make the edge from base edge <aE1> and two vertices <aV1,aV2>
at parameters <aP1,aP2>


static void MakeSectEdge (const IntTools_Curve &aIC, const TopoDS_Vertex &aV1, const Standard_Real aP1, const TopoDS_Vertex &aV2, const Standard_Real aP2, TopoDS_Edge &aNewEdge)
 Make the edge from 3D-Curve <aIC> and two vertices <aV1,aV2>
at parameters <aP1,aP2>


static void UpdateVertex (const IntTools_Curve &aIC, const Standard_Real aT, const TopoDS_Vertex &aV)
 Update the tolerance value for vertex <aV>
taking into account the fact that <aV> lays on
the curve <aIC>


static void UpdateVertex (const TopoDS_Edge &aE, const Standard_Real aT, const TopoDS_Vertex &aV)
 Update the tolerance value for vertex <aV>
taking into account the fact that <aV> lays on
the edge <aE>


static void UpdateVertex (const TopoDS_Vertex &aVF, const TopoDS_Vertex &aVN)
 Update the tolerance value for vertex <aVN>
taking into account the fact that <aVN> should
cover tolerance zone of <aVF>


static void CorrectRange (const TopoDS_Edge &aE1, const TopoDS_Edge &aE2, const IntTools_Range &aSR, IntTools_Range &aNewSR)
 Correct shrunk range <aSR> taking into account 3D-curve
resolution and corresp. tolerances' values of <aE1>, <aE2>


static void CorrectRange (const TopoDS_Edge &aE, const TopoDS_Face &aF, const IntTools_Range &aSR, IntTools_Range &aNewSR)
 Correct shrunk range <aSR> taking into account 3D-curve
resolution and corresp. tolerances' values of <aE>, <aF>


static Standard_Boolean IsBlockInOnFace (const IntTools_Range &aShR, const TopoDS_Face &aF, const TopoDS_Edge &aE, Handle< BOPInt_Context > &aContext)
 Returns TRUE if PaveBlock <aPB> lays on the face <aF>, i.e
the <PB> is IN or ON in 2D of <aF>

static Standard_Boolean IsMicroEdge (const TopoDS_Edge &theEdge, const Handle< BOPInt_Context > &theContext)
 Checks if it is possible to compute shrunk range for the edge <aE>.


static void CorrectShapeTolerances (const TopoDS_Shape &theS)
 Corrects tolerance values of the sub-shapes of the shape <theS> if needed.


static Standard_Integer Dimension (const TopoDS_Shape &theS)
 Retutns dimension of the shape <theS>.


Member Function Documentation

static Standard_Boolean BOPTools_AlgoTools::AreFacesSameDomain ( const TopoDS_Face theF1,
const TopoDS_Face theF2,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::CheckSameGeom ( const TopoDS_Face theF1,
const TopoDS_Face theF2,
Handle< BOPInt_Context > &  theContext 
) [static]
static TopAbs_State BOPTools_AlgoTools::ComputeState ( const gp_Pnt thePoint,
const TopoDS_Solid theSolid,
const Standard_Real  theTol,
Handle< BOPInt_Context > &  theContext 
) [static]
static TopAbs_State BOPTools_AlgoTools::ComputeState ( const TopoDS_Vertex theVertex,
const TopoDS_Solid theSolid,
const Standard_Real  theTol,
Handle< BOPInt_Context > &  theContext 
) [static]
static TopAbs_State BOPTools_AlgoTools::ComputeState ( const TopoDS_Edge theEdge,
const TopoDS_Solid theSolid,
const Standard_Real  theTol,
Handle< BOPInt_Context > &  theContext 
) [static]
static TopAbs_State BOPTools_AlgoTools::ComputeState ( const TopoDS_Face theFace,
const TopoDS_Solid theSolid,
const Standard_Real  theTol,
BOPCol_IndexedMapOfShape theBounds,
Handle< BOPInt_Context > &  theContext 
) [static]
static TopAbs_State BOPTools_AlgoTools::ComputeStateByOnePoint ( const TopoDS_Shape theShape,
const TopoDS_Solid theSolid,
const Standard_Real  theTol,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Integer BOPTools_AlgoTools::ComputeVV ( const TopoDS_Vertex aV1,
const gp_Pnt aP2,
const Standard_Real  aTolP2 
) [static]
static Standard_Integer BOPTools_AlgoTools::ComputeVV ( const TopoDS_Vertex aV1,
const TopoDS_Vertex aV2 
) [static]
static void BOPTools_AlgoTools::CorrectCurveOnSurface ( const TopoDS_Shape theS,
const Standard_Real  theTolMax = 0.0001 
) [static]
static void BOPTools_AlgoTools::CorrectPointOnCurve ( const TopoDS_Shape theS,
const Standard_Real  theTolMax = 0.0001 
) [static]
static void BOPTools_AlgoTools::CorrectRange ( const TopoDS_Edge aE1,
const TopoDS_Edge aE2,
const IntTools_Range aSR,
IntTools_Range aNewSR 
) [static]
static void BOPTools_AlgoTools::CorrectRange ( const TopoDS_Edge aE,
const TopoDS_Face aF,
const IntTools_Range aSR,
IntTools_Range aNewSR 
) [static]
static void BOPTools_AlgoTools::CorrectShapeTolerances ( const TopoDS_Shape theS) [static]
static void BOPTools_AlgoTools::CorrectTolerances ( const TopoDS_Shape theS,
const Standard_Real  theTolMax = 0.0001 
) [static]
static Standard_Integer BOPTools_AlgoTools::Dimension ( const TopoDS_Shape theS) [static]
static Standard_Boolean BOPTools_AlgoTools::GetEdgeOff ( const TopoDS_Edge theEdge,
const TopoDS_Face theFace,
TopoDS_Edge theEdgeOff 
) [static]
static Standard_Boolean BOPTools_AlgoTools::GetEdgeOnFace ( const TopoDS_Edge theEdge,
const TopoDS_Face theFace,
TopoDS_Edge theEdgeOnF 
) [static]
static void BOPTools_AlgoTools::GetFaceOff ( const TopoDS_Edge theEdge,
const TopoDS_Face theFace,
BOPTools_ListOfCoupleOfShape theLCEF,
TopoDS_Face theFaceOff,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsBlockInOnFace ( const IntTools_Range aShR,
const TopoDS_Face aF,
const TopoDS_Edge aE,
Handle< BOPInt_Context > &  aContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsHole ( const TopoDS_Shape aW,
const TopoDS_Shape aF 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsInternalFace ( const TopoDS_Face theFace,
const TopoDS_Edge theEdge,
BOPCol_ListOfShape theLF,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsInternalFace ( const TopoDS_Face theFace,
const TopoDS_Edge theEdge,
const TopoDS_Face theFace1,
const TopoDS_Face theFace2,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsInternalFace ( const TopoDS_Face theFace,
const TopoDS_Solid theSolid,
BOPCol_IndexedDataMapOfShapeListOfShape theMEF,
const Standard_Real  theTol,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsMicroEdge ( const TopoDS_Edge theEdge,
const Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse ( const TopoDS_Shape theSplit,
const TopoDS_Shape theShape,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse ( const TopoDS_Face theSplit,
const TopoDS_Face theShape,
Handle< BOPInt_Context > &  theContext 
) [static]
static Standard_Boolean BOPTools_AlgoTools::IsSplitToReverse ( const TopoDS_Edge aE1,
const TopoDS_Edge aE2,
Handle< BOPInt_Context > &  aContext 
) [static]
static void BOPTools_AlgoTools::MakeConnexityBlock ( BOPCol_ListOfShape theLS,
BOPCol_IndexedMapOfShape theMapAvoid,
BOPCol_ListOfShape theLSCB,
const BOPCol_BaseAllocator theAllocator 
) [static]
static void BOPTools_AlgoTools::MakeConnexityBlocks ( const TopoDS_Shape theS,
const TopAbs_ShapeEnum  theType1,
const TopAbs_ShapeEnum  theType2,
BOPCol_ListOfShape theLCB 
) [static]
static void BOPTools_AlgoTools::MakeContainer ( const TopAbs_ShapeEnum  theType,
TopoDS_Shape theShape 
) [static]
static void BOPTools_AlgoTools::MakeEdge ( const IntTools_Curve theCurve,
const TopoDS_Vertex theV1,
const Standard_Real  theT1,
const TopoDS_Vertex theV2,
const Standard_Real  theT2,
const Standard_Real  theTolR3D,
TopoDS_Edge theE 
) [static]
static void BOPTools_AlgoTools::MakeNewVertex ( const TopoDS_Vertex aV1,
const TopoDS_Vertex aV2,
TopoDS_Vertex aNewVertex 
) [static]
static void BOPTools_AlgoTools::MakeNewVertex ( const TopoDS_Edge aE1,
const Standard_Real  aP1,
const TopoDS_Face aF2,
TopoDS_Vertex aNewVertex 
) [static]
static void BOPTools_AlgoTools::MakeNewVertex ( const TopoDS_Edge aE1,
const Standard_Real  aP1,
const TopoDS_Edge aE2,
const Standard_Real  aP2,
TopoDS_Vertex aNewVertex 
) [static]
static void BOPTools_AlgoTools::MakeNewVertex ( const gp_Pnt aP1,
const Standard_Real  aTol,
TopoDS_Vertex aNewVertex 
) [static]
static void BOPTools_AlgoTools::MakePCurve ( const TopoDS_Edge theE,
const TopoDS_Face theF1,
const TopoDS_Face theF2,
const IntTools_Curve theCurve,
const Standard_Boolean  thePC1,
const Standard_Boolean  thePC2 
) [static]
static void BOPTools_AlgoTools::MakeSectEdge ( const IntTools_Curve aIC,
const TopoDS_Vertex aV1,
const Standard_Real  aP1,
const TopoDS_Vertex aV2,
const Standard_Real  aP2,
TopoDS_Edge aNewEdge 
) [static]
static void BOPTools_AlgoTools::MakeSplitEdge ( const TopoDS_Edge aE1,
const TopoDS_Vertex aV1,
const Standard_Real  aP1,
const TopoDS_Vertex aV2,
const Standard_Real  aP2,
TopoDS_Edge aNewEdge 
) [static]
static void BOPTools_AlgoTools::MakeVertex ( BOPCol_ListOfShape aLV,
TopoDS_Vertex aV 
) [static]
static void BOPTools_AlgoTools::OrientFacesOnShell ( TopoDS_Shape theS) [static]
static void BOPTools_AlgoTools::PointOnEdge ( const TopoDS_Edge aEdge,
const Standard_Real  aPrm,
gp_Pnt aP 
) [static]
static Standard_Integer BOPTools_AlgoTools::Sense ( const TopoDS_Face theF1,
const TopoDS_Face theF2 
) [static]
static void BOPTools_AlgoTools::UpdateVertex ( const TopoDS_Edge aE,
const Standard_Real  aT,
const TopoDS_Vertex aV 
) [static]
static void BOPTools_AlgoTools::UpdateVertex ( const IntTools_Curve aIC,
const Standard_Real  aT,
const TopoDS_Vertex aV 
) [static]
static void BOPTools_AlgoTools::UpdateVertex ( const TopoDS_Vertex aVF,
const TopoDS_Vertex aVN 
) [static]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines