OCC Main Page | ModelingAlgorithms | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingAlgorithms
TKBO
BOPTools


BOPTools_Tools3D Class Reference

The class contains handy static functions
dealing with the topology
.

#include <BOPTools_Tools3D.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)

Static Public Member Functions

static Standard_EXPORT Standard_Integer SubShapesAmount (const TopoDS_Shape &aS, const TopAbs_ShapeEnum aT)
 Returns amount of sub-shapes of type <at>
for the shape <as>
.
static Standard_EXPORT Standard_Boolean IsConvexWire (const TopoDS_Wire &aW)
 Returns TRUE if
amount of the vertices <= amount of the edges>
for the wire <aw>
.
static Standard_EXPORT void RemoveSims (const TopoDS_Face &aF, IntTools_Context &aContext)
 Remove seam edges from face <af>
.
static Standard_EXPORT void RemoveSims (const TopoDS_Shape &aS, IntTools_Context &aContext)
 Remove seam edges from all faces of shape <as>
.
static Standard_EXPORT TopAbs_Orientation EdgeOrientation (const TopoDS_Edge &aEx, const TopoDS_Face &aF1, const TopoDS_Face &aF2)
 For the draft section edge <aex> computes orientation
in accordance with vector product between normals to
the faces <af1>, <af2>
.
static Standard_EXPORT Standard_Boolean IsSplitToReverse1 (const TopoDS_Edge &aE1, const TopoDS_Edge &aE2, IntTools_Context &aContext)
 Returns TRUE if direction of the edge <ae1> is not
the same as for the edge <ae2>
(using projection)
.
static Standard_EXPORT void DoSplitSEAMOnFace (const TopoDS_Edge &aSp, const TopoDS_Face &aF)
 Make the edge <asp> seam edge for the face <af>
.
static Standard_EXPORT Standard_Boolean DoSplitSEAMOnFace (const TopoDS_Edge &theSplit, const TopoDS_Edge &theSeam, const TopoDS_Face &theFace, Standard_Boolean &IsReversed)
 Make the edge <thesplit> seam edge for the face <theface>
It uses pcurves of <theseam> to make <thesplit> seam edge.
IsReversed is true if pcurves of <thesplit> and <theseam> are
reversed according to each other.
Returns true if <thesplit> was made seam edge for <theface>
.
static Standard_EXPORT Standard_Boolean IsTouchCase (const TopoDS_Edge &aEx, const TopoDS_Face &aF1, const TopoDS_Face &aF2)
 Returns TRUE if the edge <aex> is section edge
between touching faces <af1>, <af2>
.
static Standard_EXPORT Standard_Boolean GetTangentToEdge (const TopoDS_Edge &aE, const Standard_Real aT, gp_Dir &aD)
 Computes tangent (3D) for the edge <ae>
at parameter <at>
Returns TRUE if the edge <ae> is not degenerated.
.
static Standard_EXPORT Standard_Boolean GetTangentToEdge (const TopoDS_Edge &aE, gp_Dir &aD)
 Computes tangent (3D) for the edge <ae>
at arbitrary intermediate parameter
Returns TRUE if the edge <ae> is not degenerated.
.
static Standard_EXPORT void GetNormalToFaceOnEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, const Standard_Real aT, gp_Dir &aD)
 Computes normal to the face <af> for the point on the edge <ae>
at parameter <at>
.
static Standard_EXPORT void GetNormalToFaceOnEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, gp_Dir &aD)
 Computes normal to the face <af> for the point on the edge <ae>
at arbitrary intermediate parameter
.
static Standard_EXPORT void GetBiNormal (const TopoDS_Edge &aE, const TopoDS_Face &aF, const Standard_Real aT, gp_Dir &aD)
 Computes binormal to the face <af> for the point on the edge <ae>
at parameter <at>
.
static Standard_EXPORT void GetBiNormal (const TopoDS_Edge &aE, const TopoDS_Face &aF, gp_Dir &aD)
 Computes binormal to the face <af> for the point on the edge <ae>
at arbitrary intermediate parameter
.
static Standard_EXPORT Standard_Boolean IsSplitToReverse (const TopoDS_Edge &aE, const TopoDS_Edge &aSp)
 Returns TRUE if direction of the edge <ae1> is not
the same as for the edge <ae2>
.
static Standard_EXPORT Standard_Boolean GetAdjacentFace (const TopoDS_Face &aF, const TopoDS_Edge &aE, const TopTools_IndexedDataMapOfShapeListOfShape &aEFMap, TopoDS_Face &anAdjF)
 Get face <anadjf> that is adjacent to the face <af> through
the edge <ae> (using map EF <aefmap>)
Returns FALSE if adjacent face is not found
.
static Standard_EXPORT Standard_Boolean IsKeepTwice (const TopoDS_Face &aF1, const TopoDS_Face &aF2, const TopoDS_Face &aF2Adj, const TopoDS_Edge &aSpEF2)
 Returns TRUE if pair of faces <af2> and <af2adj>
that are adjacent faces through the edge <aspef2>
crosses the face <af1> by <aspef2>
.
static Standard_EXPORT Standard_Integer SenseFlag (const gp_Dir &aNF1, const gp_Dir &aNF2)
 Returns 1 if scalar product aNF1* aNF2>0.
Returns 0 if directions aNF1 aNF2 coinside
Returns -1 if scalar product aNF1* aNF2<0.
.
static Standard_EXPORT Standard_Boolean GetNormalToSurface (const Handle(Geom_Surface)&aS, const Standard_Real U, const Standard_Real V, gp_Dir &aD)
 Compute normal <ad> to surface <as> in point (U,V)
Returns TRUE if directions aD1U, aD1V coinside
.
static Standard_EXPORT void GetPlanes (const TopoDS_Edge &aSp, const TopoDS_Edge &aE2, const TopTools_IndexedDataMapOfShapeListOfShape &aEFMap2, const TopoDS_Edge &aE1, const TopoDS_Face &aF1, TopAbs_State &aST1, IntTools_Context &aContext)
 Internal usage
.
static Standard_EXPORT TopAbs_Orientation Orientation (const TopoDS_Edge &aE, const TopoDS_Face &aF)
 Get the orientation for the edge <ae> on the face <af>
Returns TopAbs_INTERNAL if the edge <ae> is not found
on the face <af>
.
static Standard_EXPORT Standard_Real SignDistance (const gp_Pnt &aP, const gp_Pln &aPL)
 Computes signed distance between the 3D-point <ap>
and the plane <apl>.
.
static Standard_EXPORT void GetApproxNormalToFaceOnEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, const Standard_Real aT, gp_Pnt &aPx, gp_Dir &aD)
 Computes normal to the face <af> for the 3D-point that
belonds to the edge <ae> at parameter <at>.
Output:
aPx - the 3D-point where the normal computed
aD - the normal;
.
static Standard_EXPORT void PointNearEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, const Standard_Real aT, const Standard_Real aDt2D, gp_Pnt2d &aP2D, gp_Pnt &aPx)
 Compute the point <apx>, (<ap2d>) that is near to
the edge <ae> at parameter <at> towards to the
material of the face <af>. The value of shifting in
2D is <adt2d>
.
static Standard_EXPORT void PointNearEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, const Standard_Real aT, gp_Pnt2d &aP2D, gp_Pnt &aPx)
 Computes the point <apx>, (<ap2d>) that is near to
the edge <ae> at parameter <at> towards to the
material of the face <af>. The value of shifting in
2D is dt2D=BOPTools_Tools3D::MinStepIn2d()
.
static Standard_EXPORT void PointNearEdge (const TopoDS_Edge &aE, const TopoDS_Face &aF, gp_Pnt2d &aP2D, gp_Pnt &aPx)
 Compute the point <apx>, (<ap2d>) that is near to
the edge <ae> at arbitrary parameter towards to the
material of the face <af>. The value of shifting in
2D is dt2D=BOPTools_Tools3D::MinStepIn2d()
.
static Standard_EXPORT void PointToCompare (const gp_Pnt &aP1, const gp_Pnt &aP2, const TopoDS_Face &aF, gp_Pnt &aPx, IntTools_Context &aContext)
 For 3D-point <ap1> find projection point <apx> on the face <af>.
If the distance (<ap1>, <apx>) > TolF =>
For 3D-point <ap2> find projection point <apx> on the face <af>.
If the distance (<ap2>, <apx>) > TolF => returns <ap1>
.
static Standard_EXPORT void GetPlane (const TopoDS_Edge &aSp, const TopoDS_Edge &aE1, const TopoDS_Face &aF1, const TopoDS_Face &aF2, TopAbs_State &aST, IntTools_Context &aContext)
 Compute 3D-state for the point on the split edge <asp>
(with base edge <ae1> and the face <af1>) comparing with
the face <af2>
.
static Standard_EXPORT void GetPointState (const TopoDS_Edge &aSp, const TopoDS_Edge &aEF2, const TopoDS_Face &aF2Adj, const TopoDS_Face &aF1, TopAbs_State &aST)
 Compute 3D-state for the point on the split edge <asp>
(with base edge <aef2> and the adjacent face <af2adj>) comparing with
the face <af1>
.
static Standard_EXPORT void OrientEdgeOnFace (const TopoDS_Edge &aE, const TopoDS_Face &aF, TopoDS_Edge &aER)
 Get the edge <aer> from the face <af> that is the same as
the edge <ae>
.
static Standard_EXPORT TopAbs_Orientation OrientTouchEdgeOnF1 (const TopoDS_Edge &aSp, const TopoDS_Edge &aEx, const TopoDS_Face &aF1, const TopoDS_Face &aF2)
 Computes orientation for the split edge <asp>
[with base edge <aex> and face <af2>] on the
face <af1>
.
static Standard_EXPORT void GetSeams (const TopoDS_Face &aF, TopoDS_Edge &aSimm1, TopoDS_Edge &aSimm2)
 Get seam edges <asimm1>, <asimm2> for the face <af>
.
static Standard_EXPORT void GetSeam (const TopoDS_Face &aF, const TopoDS_Edge &aS1, TopoDS_Edge &aS2)
 Get opposite seam edge <as2> for the face <af> with
known seam edge <as1>
.
static Standard_EXPORT Standard_Boolean IsValidArea (const TopoDS_Face &aF, Standard_Boolean &aNegativeFlag)
 Check validity of the area of face <af>.
Returns TRUE if the Abs. value of the area
is greater than 1.e-16
.
static Standard_EXPORT Standard_Real MinStepIn2d ()
 Returns simple step value that is used in 2D-computations
= 1.e-5
.
static Standard_EXPORT Standard_Boolean IsEmptyShape (const TopoDS_Shape &aS)
 Returns TRUE if the shape <as> does not contain
geometry information (e.g. empty compound)
.
static Standard_EXPORT void InvertShape (const TopoDS_Shape &aS, TopoDS_Shape &aSInv)
 Change orientations to opposite for the shape <as>
and all its sub-shapes. Returns <asinv>
.
static Standard_EXPORT TopAbs_State GetStatePartIN2D (const TopoDS_Edge &aSp, const TopoDS_Edge &aEF1, const TopoDS_Face &aF1, const TopoDS_Face &aF2, IntTools_Context &aContext)
 Used in touch case
Compute the 3D-state for the point on the split
edge <asp> (with base edge <aef1> on face <af1>)
comparing with <af2>.
Used in touch case <af1>/<af2>
.
static Standard_EXPORT Standard_Boolean CheckSameDomainFaceInside (const TopoDS_Face &theFace1, const TopoDS_Face &theFace2, IntTools_Context &theContext)
static Standard_EXPORT Standard_Boolean ComputeFaceState (const TopoDS_Face &theFace, const TopoDS_Solid &theRef, IntTools_Context &theContext, TopAbs_State &theState)
static Standard_EXPORT Standard_Boolean TreatedAsAnalytic (const Standard_Real aTx, const gp_Pnt &aPx, const TopoDS_Edge &aEx, const TopoDS_Face &aFx, const TopoDS_Edge &aE1, const TopoDS_Face &aF1, const Standard_Real aTolTangent, const Standard_Real aTolRadius, TopAbs_State &aState, IntTools_Context &aContext)
static Standard_EXPORT Standard_Boolean TreatedAsAnalytic (const TopoDS_Face &aFx, const TopoDS_Edge &aSpE1, const TopoDS_Face &aF1, const Standard_Real aTolTangent, const Standard_Real aTolRadius, TopAbs_State &aState, IntTools_Context &aContext)
static Standard_EXPORT Standard_Boolean HasAnalyticSurfaceType (const TopoDS_Face &aF)


Member Function Documentation

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::CheckSameDomainFaceInside const TopoDS_Face &  theFace1,
const TopoDS_Face &  theFace2,
IntTools_Context theContext
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::ComputeFaceState const TopoDS_Face &  theFace,
const TopoDS_Solid &  theRef,
IntTools_Context theContext,
TopAbs_State &  theState
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::DoSplitSEAMOnFace const TopoDS_Edge &  theSplit,
const TopoDS_Edge &  theSeam,
const TopoDS_Face &  theFace,
Standard_Boolean IsReversed
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::DoSplitSEAMOnFace const TopoDS_Edge &  aSp,
const TopoDS_Face &  aF
[static]
 

static Standard_EXPORT TopAbs_Orientation BOPTools_Tools3D::EdgeOrientation const TopoDS_Edge &  aEx,
const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::GetAdjacentFace const TopoDS_Face &  aF,
const TopoDS_Edge &  aE,
const TopTools_IndexedDataMapOfShapeListOfShape &  aEFMap,
TopoDS_Face &  anAdjF
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetApproxNormalToFaceOnEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
const Standard_Real  aT,
gp_Pnt &  aPx,
gp_Dir &  aD
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetBiNormal const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
gp_Dir &  aD
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetBiNormal const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
const Standard_Real  aT,
gp_Dir &  aD
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetNormalToFaceOnEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
gp_Dir &  aD
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetNormalToFaceOnEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
const Standard_Real  aT,
gp_Dir &  aD
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::GetNormalToSurface const Handle(Geom_Surface)&  aS,
const Standard_Real  U,
const Standard_Real  V,
gp_Dir &  aD
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetPlane const TopoDS_Edge &  aSp,
const TopoDS_Edge &  aE1,
const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2,
TopAbs_State &  aST,
IntTools_Context aContext
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetPlanes const TopoDS_Edge &  aSp,
const TopoDS_Edge &  aE2,
const TopTools_IndexedDataMapOfShapeListOfShape &  aEFMap2,
const TopoDS_Edge &  aE1,
const TopoDS_Face &  aF1,
TopAbs_State &  aST1,
IntTools_Context aContext
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetPointState const TopoDS_Edge &  aSp,
const TopoDS_Edge &  aEF2,
const TopoDS_Face &  aF2Adj,
const TopoDS_Face &  aF1,
TopAbs_State &  aST
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetSeam const TopoDS_Face &  aF,
const TopoDS_Edge &  aS1,
TopoDS_Edge &  aS2
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::GetSeams const TopoDS_Face &  aF,
TopoDS_Edge &  aSimm1,
TopoDS_Edge &  aSimm2
[static]
 

static Standard_EXPORT TopAbs_State BOPTools_Tools3D::GetStatePartIN2D const TopoDS_Edge &  aSp,
const TopoDS_Edge &  aEF1,
const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2,
IntTools_Context aContext
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::GetTangentToEdge const TopoDS_Edge &  aE,
gp_Dir &  aD
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::GetTangentToEdge const TopoDS_Edge &  aE,
const Standard_Real  aT,
gp_Dir &  aD
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::HasAnalyticSurfaceType const TopoDS_Face &  aF  )  [static]
 

static Standard_EXPORT void BOPTools_Tools3D::InvertShape const TopoDS_Shape &  aS,
TopoDS_Shape &  aSInv
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsConvexWire const TopoDS_Wire &  aW  )  [static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsEmptyShape const TopoDS_Shape &  aS  )  [static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsKeepTwice const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2,
const TopoDS_Face &  aF2Adj,
const TopoDS_Edge &  aSpEF2
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsSplitToReverse const TopoDS_Edge &  aE,
const TopoDS_Edge &  aSp
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsSplitToReverse1 const TopoDS_Edge &  aE1,
const TopoDS_Edge &  aE2,
IntTools_Context aContext
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsTouchCase const TopoDS_Edge &  aEx,
const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::IsValidArea const TopoDS_Face &  aF,
Standard_Boolean aNegativeFlag
[static]
 

static Standard_EXPORT Standard_Real BOPTools_Tools3D::MinStepIn2d  )  [static]
 

void BOPTools_Tools3D::operator delete void *  anAddress  )  [inline]
 

void* BOPTools_Tools3D::operator new size_t  size  )  [inline]
 

void* BOPTools_Tools3D::operator new size_t  ,
void *  anAddress
[inline]
 

static Standard_EXPORT TopAbs_Orientation BOPTools_Tools3D::Orientation const TopoDS_Edge &  aE,
const TopoDS_Face &  aF
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::OrientEdgeOnFace const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
TopoDS_Edge &  aER
[static]
 

static Standard_EXPORT TopAbs_Orientation BOPTools_Tools3D::OrientTouchEdgeOnF1 const TopoDS_Edge &  aSp,
const TopoDS_Edge &  aEx,
const TopoDS_Face &  aF1,
const TopoDS_Face &  aF2
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::PointNearEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
gp_Pnt2d &  aP2D,
gp_Pnt &  aPx
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::PointNearEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
const Standard_Real  aT,
gp_Pnt2d &  aP2D,
gp_Pnt &  aPx
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::PointNearEdge const TopoDS_Edge &  aE,
const TopoDS_Face &  aF,
const Standard_Real  aT,
const Standard_Real  aDt2D,
gp_Pnt2d &  aP2D,
gp_Pnt &  aPx
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::PointToCompare const gp_Pnt &  aP1,
const gp_Pnt &  aP2,
const TopoDS_Face &  aF,
gp_Pnt &  aPx,
IntTools_Context aContext
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::RemoveSims const TopoDS_Shape &  aS,
IntTools_Context aContext
[static]
 

static Standard_EXPORT void BOPTools_Tools3D::RemoveSims const TopoDS_Face &  aF,
IntTools_Context aContext
[static]
 

static Standard_EXPORT Standard_Integer BOPTools_Tools3D::SenseFlag const gp_Dir &  aNF1,
const gp_Dir &  aNF2
[static]
 

static Standard_EXPORT Standard_Real BOPTools_Tools3D::SignDistance const gp_Pnt &  aP,
const gp_Pln &  aPL
[static]
 

static Standard_EXPORT Standard_Integer BOPTools_Tools3D::SubShapesAmount const TopoDS_Shape &  aS,
const TopAbs_ShapeEnum  aT
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::TreatedAsAnalytic const TopoDS_Face &  aFx,
const TopoDS_Edge &  aSpE1,
const TopoDS_Face &  aF1,
const Standard_Real  aTolTangent,
const Standard_Real  aTolRadius,
TopAbs_State &  aState,
IntTools_Context aContext
[static]
 

static Standard_EXPORT Standard_Boolean BOPTools_Tools3D::TreatedAsAnalytic const Standard_Real  aTx,
const gp_Pnt &  aPx,
const TopoDS_Edge &  aEx,
const TopoDS_Face &  aFx,
const TopoDS_Edge &  aE1,
const TopoDS_Face &  aF1,
const Standard_Real  aTolTangent,
const Standard_Real  aTolRadius,
TopAbs_State &  aState,
IntTools_Context aContext
[static]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 13:40:48 2008 for OpenCASCADE by  doxygen 1.4.1