Open CASCADE Technology
6.5.4
|
The class contains handy static functions
dealing with the topology
#include <BOPTools_Tools3D.hxx>
Static Public Member Functions | |
static DEFINE_STANDARD_ALLOC 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_Boolean | IsConvexWire (const TopoDS_Wire &aW) |
Returns TRUE if amount of the vertices <= amount of the edges> for the wire <aW> | |
static void | RemoveSims (const TopoDS_Face &aF, const Handle< IntTools_Context > &aContext) |
Remove seam edges from face <aF> | |
static void | RemoveSims (const TopoDS_Shape &aS, const Handle< IntTools_Context > &aContext) |
Remove seam edges from all faces of shape <aS> | |
static 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_Boolean | IsSplitToReverse1 (const TopoDS_Edge &aE1, const TopoDS_Edge &aE2, const Handle< IntTools_Context > &aContext) |
Returns TRUE if direction of the edge <aE1> is not the same as for the edge <aE2> (using projection) | |
static void | DoSplitSEAMOnFace (const TopoDS_Edge &aSp, const TopoDS_Face &aF) |
Make the edge <aSp> seam edge for the face <aF> | |
static 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_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_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_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 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 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 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 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_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_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_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_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_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 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, const Handle< IntTools_Context > &aContext) |
Internal usage | |
static 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_Real | SignDistance (const gp_Pnt &aP, const gp_Pln &aPL) |
Computes signed distance between the 3D-point <aP> and the plane <aPL>. Warning: The distance is not divided by sqrt(A*A+B*B+C*C) | |
static 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; Warning: The normal is computed not exactly in the point on the edge, but in point that is near to the edge towards to the face material (so, we'll have approx. normal) | |
static 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 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 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 void | PointToCompare (const gp_Pnt &aP1, const gp_Pnt &aP2, const TopoDS_Face &aF, gp_Pnt &aPx, const Handle< 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 void | GetPlane (const TopoDS_Edge &aSp, const TopoDS_Edge &aE1, const TopoDS_Face &aF1, const TopoDS_Face &aF2, TopAbs_State &aST, const Handle< 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 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 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 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 void | GetSeams (const TopoDS_Face &aF, TopoDS_Edge &aSimm1, TopoDS_Edge &aSimm2) |
Get seam edges <aSimm1>, <aSimm2> for the face <aF> | |
static 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_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_Real | MinStepIn2d () |
Returns simple step value that is used in 2D-computations = 1.e-5 | |
static Standard_Boolean | IsEmptyShape (const TopoDS_Shape &aS) |
Returns TRUE if the shape <aS> does not contain geometry information (e.g. empty compound) | |
static 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 TopAbs_State | GetStatePartIN2D (const TopoDS_Edge &aSp, const TopoDS_Edge &aEF1, const TopoDS_Face &aF1, const TopoDS_Face &aF2, const Handle< 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_Boolean | CheckSameDomainFaceInside (const TopoDS_Face &theFace1, const TopoDS_Face &theFace2, const Handle< IntTools_Context > &theContext) |
static Standard_Boolean | ComputeFaceState (const TopoDS_Face &theFace, const TopoDS_Solid &theRef, const Handle< IntTools_Context > &theContext, TopAbs_State &theState) |
static 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, const Handle< IntTools_Context > &aContext) |
static 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, const Handle< IntTools_Context > &aContext) |
static Standard_Boolean | HasAnalyticSurfaceType (const TopoDS_Face &aF) |
static Standard_Boolean BOPTools_Tools3D::CheckSameDomainFaceInside | ( | const TopoDS_Face & | theFace1, |
const TopoDS_Face & | theFace2, | ||
const Handle< IntTools_Context > & | theContext | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::ComputeFaceState | ( | const TopoDS_Face & | theFace, |
const TopoDS_Solid & | theRef, | ||
const Handle< IntTools_Context > & | theContext, | ||
TopAbs_State & | theState | ||
) | [static] |
static void BOPTools_Tools3D::DoSplitSEAMOnFace | ( | const TopoDS_Edge & | aSp, |
const TopoDS_Face & | aF | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::DoSplitSEAMOnFace | ( | const TopoDS_Edge & | theSplit, |
const TopoDS_Edge & | theSeam, | ||
const TopoDS_Face & | theFace, | ||
Standard_Boolean & | IsReversed | ||
) | [static] |
static TopAbs_Orientation BOPTools_Tools3D::EdgeOrientation | ( | const TopoDS_Edge & | aEx, |
const TopoDS_Face & | aF1, | ||
const TopoDS_Face & | aF2 | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::GetAdjacentFace | ( | const TopoDS_Face & | aF, |
const TopoDS_Edge & | aE, | ||
const TopTools_IndexedDataMapOfShapeListOfShape & | aEFMap, | ||
TopoDS_Face & | anAdjF | ||
) | [static] |
static void BOPTools_Tools3D::GetApproxNormalToFaceOnEdge | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
const Standard_Real | aT, | ||
gp_Pnt & | aPx, | ||
gp_Dir & | aD | ||
) | [static] |
static void BOPTools_Tools3D::GetBiNormal | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
const Standard_Real | aT, | ||
gp_Dir & | aD | ||
) | [static] |
static void BOPTools_Tools3D::GetBiNormal | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
gp_Dir & | aD | ||
) | [static] |
static void BOPTools_Tools3D::GetNormalToFaceOnEdge | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
const Standard_Real | aT, | ||
gp_Dir & | aD | ||
) | [static] |
static void BOPTools_Tools3D::GetNormalToFaceOnEdge | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
gp_Dir & | aD | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::GetNormalToSurface | ( | const Handle< Geom_Surface > & | aS, |
const Standard_Real | U, | ||
const Standard_Real | V, | ||
gp_Dir & | aD | ||
) | [static] |
static void BOPTools_Tools3D::GetPlane | ( | const TopoDS_Edge & | aSp, |
const TopoDS_Edge & | aE1, | ||
const TopoDS_Face & | aF1, | ||
const TopoDS_Face & | aF2, | ||
TopAbs_State & | aST, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static 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, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static 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 void BOPTools_Tools3D::GetSeam | ( | const TopoDS_Face & | aF, |
const TopoDS_Edge & | aS1, | ||
TopoDS_Edge & | aS2 | ||
) | [static] |
static void BOPTools_Tools3D::GetSeams | ( | const TopoDS_Face & | aF, |
TopoDS_Edge & | aSimm1, | ||
TopoDS_Edge & | aSimm2 | ||
) | [static] |
static TopAbs_State BOPTools_Tools3D::GetStatePartIN2D | ( | const TopoDS_Edge & | aSp, |
const TopoDS_Edge & | aEF1, | ||
const TopoDS_Face & | aF1, | ||
const TopoDS_Face & | aF2, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::GetTangentToEdge | ( | const TopoDS_Edge & | aE, |
const Standard_Real | aT, | ||
gp_Dir & | aD | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::GetTangentToEdge | ( | const TopoDS_Edge & | aE, |
gp_Dir & | aD | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::HasAnalyticSurfaceType | ( | const TopoDS_Face & | aF | ) | [static] |
static void BOPTools_Tools3D::InvertShape | ( | const TopoDS_Shape & | aS, |
TopoDS_Shape & | aSInv | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsConvexWire | ( | const TopoDS_Wire & | aW | ) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsEmptyShape | ( | const TopoDS_Shape & | aS | ) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsKeepTwice | ( | const TopoDS_Face & | aF1, |
const TopoDS_Face & | aF2, | ||
const TopoDS_Face & | aF2Adj, | ||
const TopoDS_Edge & | aSpEF2 | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsSplitToReverse | ( | const TopoDS_Edge & | aE, |
const TopoDS_Edge & | aSp | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsSplitToReverse1 | ( | const TopoDS_Edge & | aE1, |
const TopoDS_Edge & | aE2, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsTouchCase | ( | const TopoDS_Edge & | aEx, |
const TopoDS_Face & | aF1, | ||
const TopoDS_Face & | aF2 | ||
) | [static] |
static Standard_Boolean BOPTools_Tools3D::IsValidArea | ( | const TopoDS_Face & | aF, |
Standard_Boolean & | aNegativeFlag | ||
) | [static] |
static Standard_Real BOPTools_Tools3D::MinStepIn2d | ( | ) | [static] |
static TopAbs_Orientation BOPTools_Tools3D::Orientation | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF | ||
) | [static] |
static void BOPTools_Tools3D::OrientEdgeOnFace | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
TopoDS_Edge & | aER | ||
) | [static] |
static TopAbs_Orientation BOPTools_Tools3D::OrientTouchEdgeOnF1 | ( | const TopoDS_Edge & | aSp, |
const TopoDS_Edge & | aEx, | ||
const TopoDS_Face & | aF1, | ||
const TopoDS_Face & | aF2 | ||
) | [static] |
static 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 void BOPTools_Tools3D::PointNearEdge | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
const Standard_Real | aT, | ||
gp_Pnt2d & | aP2D, | ||
gp_Pnt & | aPx | ||
) | [static] |
static void BOPTools_Tools3D::PointNearEdge | ( | const TopoDS_Edge & | aE, |
const TopoDS_Face & | aF, | ||
gp_Pnt2d & | aP2D, | ||
gp_Pnt & | aPx | ||
) | [static] |
static void BOPTools_Tools3D::PointToCompare | ( | const gp_Pnt & | aP1, |
const gp_Pnt & | aP2, | ||
const TopoDS_Face & | aF, | ||
gp_Pnt & | aPx, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static void BOPTools_Tools3D::RemoveSims | ( | const TopoDS_Face & | aF, |
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static void BOPTools_Tools3D::RemoveSims | ( | const TopoDS_Shape & | aS, |
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static Standard_Integer BOPTools_Tools3D::SenseFlag | ( | const gp_Dir & | aNF1, |
const gp_Dir & | aNF2 | ||
) | [static] |
static Standard_Real BOPTools_Tools3D::SignDistance | ( | const gp_Pnt & | aP, |
const gp_Pln & | aPL | ||
) | [static] |
static DEFINE_STANDARD_ALLOC Standard_Integer BOPTools_Tools3D::SubShapesAmount | ( | const TopoDS_Shape & | aS, |
const TopAbs_ShapeEnum | aT | ||
) | [static] |
static 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, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |
static 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, | ||
const Handle< IntTools_Context > & | aContext | ||
) | [static] |