Open CASCADE Technology  7.4.0
Static Public Member Functions

BRepLib Class Reference

The BRepLib package provides general utilities for BRep. More...

#include <BRepLib.hxx>

Static Public Member Functions

static void Precision (const Standard_Real P)
 Computes the max distance between edge and its 2d representation on the face. Sets the default precision. The current Precision is returned. More...
 
static Standard_Real Precision ()
 Returns the default precision. More...
 
static void Plane (const Handle< Geom_Plane > &P)
 Sets the current plane to P. More...
 
static const Handle< Geom_Plane > & Plane ()
 Returns the current plane. More...
 
static Standard_Boolean CheckSameRange (const TopoDS_Edge &E, const Standard_Real Confusion=1.0e-12)
 checks if the Edge is same range IGNORING the same range flag of the edge Confusion argument is to compare real numbers idenpendently of any model space tolerance More...
 
static void SameRange (const TopoDS_Edge &E, const Standard_Real Tolerance=1.0e-5)
 will make all the curve representation have the same range domain for the parameters. This will IGNORE the same range flag value to proceed. If there is a 3D curve there it will the range of that curve. If not the first curve representation encountered in the list will give its range to the all the other curves. More...
 
static Standard_Boolean BuildCurve3d (const TopoDS_Edge &E, const Standard_Real Tolerance=1.0e-5, const GeomAbs_Shape Continuity=GeomAbs_C1, const Standard_Integer MaxDegree=14, const Standard_Integer MaxSegment=0)
 Computes the 3d curve for the edge <E> if it does not exist. Returns True if the curve was computed or existed. Returns False if there is no planar pcurve or the computation failed. <MaxSegment> >= 30 in approximation. More...
 
static Standard_Boolean BuildCurves3d (const TopoDS_Shape &S, const Standard_Real Tolerance, const GeomAbs_Shape Continuity=GeomAbs_C1, const Standard_Integer MaxDegree=14, const Standard_Integer MaxSegment=0)
 Computes the 3d curves for all the edges of <S> return False if one of the computation failed. <MaxSegment> >= 30 in approximation. More...
 
static Standard_Boolean BuildCurves3d (const TopoDS_Shape &S)
 Computes the 3d curves for all the edges of <S> return False if one of the computation failed. More...
 
static void BuildPCurveForEdgeOnPlane (const TopoDS_Edge &theE, const TopoDS_Face &theF)
 Builds pcurve of edge on face if the surface is plane, and updates the edge. More...
 
static void BuildPCurveForEdgeOnPlane (const TopoDS_Edge &theE, const TopoDS_Face &theF, Handle< Geom2d_Curve > &aC2D, Standard_Boolean &bToUpdate)
 Builds pcurve of edge on face if the surface is plane, but does not update the edge. The output are the pcurve and the flag telling that pcurve was built. More...
 
template<class TCont >
static void BuildPCurveForEdgesOnPlane (const TCont &theLE, const TopoDS_Face &theF)
 Builds pcurves of edges on face if the surface is plane, and update the edges. More...
 
static Standard_Boolean UpdateEdgeTol (const TopoDS_Edge &E, const Standard_Real MinToleranceRequest, const Standard_Real MaxToleranceToCheck)
 Checks if the edge has a Tolerance smaller than – – – – MaxToleranceToCheck if so it will compute the radius of – the cylindrical pipe surface that MinToleranceRequest is the minimum tolerance before it is usefull to start testing. Usually it should be arround 10e-5 contains all – the curve represenation of the edge returns True if the Edge tolerance had to be updated. More...
 
static Standard_Boolean UpdateEdgeTolerance (const TopoDS_Shape &S, const Standard_Real MinToleranceRequest, const Standard_Real MaxToleranceToCheck)
 – Checks all the edges of the shape whose – – – Tolerance is smaller than MaxToleranceToCheck – Returns True if at least one edge was updated – MinToleranceRequest is the minimum tolerance before – it – is usefull to start testing. Usually it should be arround – 10e-5– More...
 
static void SameParameter (const TopoDS_Edge &theEdge, const Standard_Real Tolerance=1.0e-5)
 Computes new 2d curve(s) for the edge <theEdge> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on the Edge. More...
 
static TopoDS_Edge SameParameter (const TopoDS_Edge &theEdge, const Standard_Real theTolerance, Standard_Real &theNewTol, const Standard_Boolean IsUseOldEdge)
 Computes new 2d curve(s) for the edge <theEdge> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on the Edge.
theNewTol is a new tolerance of vertices of the input edge (not applied inside the algorithm, but pre-computed). If IsUseOldEdge is true then the input edge will be modified, otherwise the new copy of input edge will be created. Returns the new edge as a result, can be ignored if IsUseOldEdge is true. More...
 
static void SameParameter (const TopoDS_Shape &S, const Standard_Real Tolerance=1.0e-5, const Standard_Boolean forced=Standard_False)
 Computes new 2d curve(s) for all the edges of <S> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on an Edge. More...
 
static void SameParameter (const TopoDS_Shape &S, BRepTools_ReShape &theReshaper, const Standard_Real Tolerance=1.0e-5, const Standard_Boolean forced=Standard_False)
 Computes new 2d curve(s) for all the edges of <S> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on an Edge.
theReshaper is used to record the modifications of input shape <S> to prevent any modifications on the shape itself. Thus the input shape (and its subshapes) will not be modified, instead the reshaper will contain a modified empty-copies of original subshapes as substitutions. More...
 
static void UpdateTolerances (const TopoDS_Shape &S, const Standard_Boolean verifyFaceTolerance=Standard_False)
 Replaces tolerance of FACE EDGE VERTEX by the tolerance Max of their connected handling shapes. It is not necessary to use this call after SameParameter. (called in) More...
 
static void UpdateTolerances (const TopoDS_Shape &S, BRepTools_ReShape &theReshaper, const Standard_Boolean verifyFaceTolerance=Standard_False)
 Replaces tolerance of FACE EDGE VERTEX by the tolerance Max of their connected handling shapes. It is not necessary to use this call after SameParameter. (called in)
theReshaper is used to record the modifications of input shape <S> to prevent any modifications on the shape itself. Thus the input shape (and its subshapes) will not be modified, instead the reshaper will contain a modified empty-copies of original subshapes as substitutions. More...
 
static void UpdateInnerTolerances (const TopoDS_Shape &S)
 Checks tolerances of edges (including inner points) and vertices of a shape and updates them to satisfy "SameParameter" condition. More...
 
static Standard_Boolean OrientClosedSolid (TopoDS_Solid &solid)
 Orients the solid forward and the shell with the orientation to have matter in the solid. Returns False if the solid is unOrientable (open or incoherent) More...
 
static void EncodeRegularity (const TopoDS_Shape &S, const Standard_Real TolAng=1.0e-10)
 Encodes the Regularity of edges on a Shape. Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edges's regularity are coded before, nothing is done. More...
 
static void EncodeRegularity (const TopoDS_Shape &S, const TopTools_ListOfShape &LE, const Standard_Real TolAng=1.0e-10)
 Encodes the Regularity of edges in list <LE> on the shape <S> Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edges's regularity are coded before, nothing is done. More...
 
static void EncodeRegularity (TopoDS_Edge &E, const TopoDS_Face &F1, const TopoDS_Face &F2, const Standard_Real TolAng=1.0e-10)
 Encodes the Regularity beetween <F1> and <F2> by <E> Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edge's regularity is coded before, nothing is done. More...
 
static void SortFaces (const TopoDS_Shape &S, TopTools_ListOfShape &LF)
 Sorts in LF the Faces of S on the complexity of their surfaces (Plane,Cylinder,Cone,Sphere,Torus,other) More...
 
static void ReverseSortFaces (const TopoDS_Shape &S, TopTools_ListOfShape &LF)
 Sorts in LF the Faces of S on the reverse complexity of their surfaces (other,Torus,Sphere,Cone,Cylinder,Plane) More...
 
static Standard_Boolean EnsureNormalConsistency (const TopoDS_Shape &S, const Standard_Real theAngTol=0.001, const Standard_Boolean ForceComputeNormals=Standard_False)
 Corrects the normals in Poly_Triangulation of faces, in such way that normals at nodes lying along smooth edges have the same value on both adjacent triangulations. Returns TRUE if any correction is done. More...
 
static void BoundingVertex (const NCollection_List< TopoDS_Shape > &theLV, gp_Pnt &theNewCenter, Standard_Real &theNewTol)
 Calculates the bounding sphere around the set of vertexes from the theLV list. Returns the center (theNewCenter) and the radius (theNewTol) of this sphere. This can be used to construct the new vertex which covers the given set of other vertices. More...
 
static Standard_Boolean FindValidRange (const Adaptor3d_Curve &theCurve, const Standard_Real theTolE, const Standard_Real theParV1, const gp_Pnt &thePntV1, const Standard_Real theTolV1, const Standard_Real theParV2, const gp_Pnt &thePntV2, const Standard_Real theTolV2, Standard_Real &theFirst, Standard_Real &theLast)
 For an edge defined by 3d curve and tolerance and vertices defined by points, parameters on curve and tolerances, finds a range of curve between vertices not covered by vertices tolerances. Returns false if there is no such range. Otherwise, sets theFirst and theLast as its bounds. More...
 
static Standard_Boolean FindValidRange (const TopoDS_Edge &theEdge, Standard_Real &theFirst, Standard_Real &theLast)
 Finds a range of 3d curve of the edge not covered by vertices tolerances. Returns false if there is no such range. Otherwise, sets theFirst and theLast as its bounds. More...
 
static void ExtendFace (const TopoDS_Face &theF, const Standard_Real theExtVal, const Standard_Boolean theExtUMin, const Standard_Boolean theExtUMax, const Standard_Boolean theExtVMin, const Standard_Boolean theExtVMax, TopoDS_Face &theFExtended)
 Enlarges the face on the given value. More...
 

Detailed Description

The BRepLib package provides general utilities for BRep.

Member Function Documentation

◆ BoundingVertex()

static void BRepLib::BoundingVertex ( const NCollection_List< TopoDS_Shape > &  theLV,
gp_Pnt theNewCenter,
Standard_Real theNewTol 
)
static

Calculates the bounding sphere around the set of vertexes from the theLV list. Returns the center (theNewCenter) and the radius (theNewTol) of this sphere. This can be used to construct the new vertex which covers the given set of other vertices.

◆ BuildCurve3d()

static Standard_Boolean BRepLib::BuildCurve3d ( const TopoDS_Edge E,
const Standard_Real  Tolerance = 1.0e-5,
const GeomAbs_Shape  Continuity = GeomAbs_C1,
const Standard_Integer  MaxDegree = 14,
const Standard_Integer  MaxSegment = 0 
)
static

Computes the 3d curve for the edge <E> if it does not exist. Returns True if the curve was computed or existed. Returns False if there is no planar pcurve or the computation failed. <MaxSegment> >= 30 in approximation.

◆ BuildCurves3d() [1/2]

static Standard_Boolean BRepLib::BuildCurves3d ( const TopoDS_Shape S,
const Standard_Real  Tolerance,
const GeomAbs_Shape  Continuity = GeomAbs_C1,
const Standard_Integer  MaxDegree = 14,
const Standard_Integer  MaxSegment = 0 
)
static

Computes the 3d curves for all the edges of <S> return False if one of the computation failed. <MaxSegment> >= 30 in approximation.

◆ BuildCurves3d() [2/2]

static Standard_Boolean BRepLib::BuildCurves3d ( const TopoDS_Shape S)
static

Computes the 3d curves for all the edges of <S> return False if one of the computation failed.

◆ BuildPCurveForEdgeOnPlane() [1/2]

static void BRepLib::BuildPCurveForEdgeOnPlane ( const TopoDS_Edge theE,
const TopoDS_Face theF 
)
static

Builds pcurve of edge on face if the surface is plane, and updates the edge.

◆ BuildPCurveForEdgeOnPlane() [2/2]

static void BRepLib::BuildPCurveForEdgeOnPlane ( const TopoDS_Edge theE,
const TopoDS_Face theF,
Handle< Geom2d_Curve > &  aC2D,
Standard_Boolean bToUpdate 
)
static

Builds pcurve of edge on face if the surface is plane, but does not update the edge. The output are the pcurve and the flag telling that pcurve was built.

◆ BuildPCurveForEdgesOnPlane()

template<class TCont >
static void BRepLib::BuildPCurveForEdgesOnPlane ( const TCont &  theLE,
const TopoDS_Face theF 
)
inlinestatic

Builds pcurves of edges on face if the surface is plane, and update the edges.

◆ CheckSameRange()

static Standard_Boolean BRepLib::CheckSameRange ( const TopoDS_Edge E,
const Standard_Real  Confusion = 1.0e-12 
)
static

checks if the Edge is same range IGNORING the same range flag of the edge Confusion argument is to compare real numbers idenpendently of any model space tolerance

◆ EncodeRegularity() [1/3]

static void BRepLib::EncodeRegularity ( const TopoDS_Shape S,
const Standard_Real  TolAng = 1.0e-10 
)
static

Encodes the Regularity of edges on a Shape. Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edges's regularity are coded before, nothing is done.

◆ EncodeRegularity() [2/3]

static void BRepLib::EncodeRegularity ( const TopoDS_Shape S,
const TopTools_ListOfShape LE,
const Standard_Real  TolAng = 1.0e-10 
)
static

Encodes the Regularity of edges in list <LE> on the shape <S> Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edges's regularity are coded before, nothing is done.

◆ EncodeRegularity() [3/3]

static void BRepLib::EncodeRegularity ( TopoDS_Edge E,
const TopoDS_Face F1,
const TopoDS_Face F2,
const Standard_Real  TolAng = 1.0e-10 
)
static

Encodes the Regularity beetween <F1> and <F2> by <E> Warning: <TolAng> is an angular tolerance, expressed in Rad. Warning: If the edge's regularity is coded before, nothing is done.

◆ EnsureNormalConsistency()

static Standard_Boolean BRepLib::EnsureNormalConsistency ( const TopoDS_Shape S,
const Standard_Real  theAngTol = 0.001,
const Standard_Boolean  ForceComputeNormals = Standard_False 
)
static

Corrects the normals in Poly_Triangulation of faces, in such way that normals at nodes lying along smooth edges have the same value on both adjacent triangulations. Returns TRUE if any correction is done.

◆ ExtendFace()

static void BRepLib::ExtendFace ( const TopoDS_Face theF,
const Standard_Real  theExtVal,
const Standard_Boolean  theExtUMin,
const Standard_Boolean  theExtUMax,
const Standard_Boolean  theExtVMin,
const Standard_Boolean  theExtVMax,
TopoDS_Face theFExtended 
)
static

Enlarges the face on the given value.

Parameters
theF[in] The face to extend
theExtVal[in] The extension value
theExtUMin[in] Defines whether to extend the face in UMin direction
theExtUMax[in] Defines whether to extend the face in UMax direction
theExtVMin[in] Defines whether to extend the face in VMin direction
theExtVMax[in] Defines whether to extend the face in VMax direction
theFExtended[in] The extended face

◆ FindValidRange() [1/2]

static Standard_Boolean BRepLib::FindValidRange ( const Adaptor3d_Curve theCurve,
const Standard_Real  theTolE,
const Standard_Real  theParV1,
const gp_Pnt thePntV1,
const Standard_Real  theTolV1,
const Standard_Real  theParV2,
const gp_Pnt thePntV2,
const Standard_Real  theTolV2,
Standard_Real theFirst,
Standard_Real theLast 
)
static

For an edge defined by 3d curve and tolerance and vertices defined by points, parameters on curve and tolerances, finds a range of curve between vertices not covered by vertices tolerances. Returns false if there is no such range. Otherwise, sets theFirst and theLast as its bounds.

◆ FindValidRange() [2/2]

static Standard_Boolean BRepLib::FindValidRange ( const TopoDS_Edge theEdge,
Standard_Real theFirst,
Standard_Real theLast 
)
static

Finds a range of 3d curve of the edge not covered by vertices tolerances. Returns false if there is no such range. Otherwise, sets theFirst and theLast as its bounds.

◆ OrientClosedSolid()

static Standard_Boolean BRepLib::OrientClosedSolid ( TopoDS_Solid solid)
static

Orients the solid forward and the shell with the orientation to have matter in the solid. Returns False if the solid is unOrientable (open or incoherent)

◆ Plane() [1/2]

static void BRepLib::Plane ( const Handle< Geom_Plane > &  P)
static

Sets the current plane to P.

◆ Plane() [2/2]

static const Handle< Geom_Plane >& BRepLib::Plane ( )
static

Returns the current plane.

◆ Precision() [1/2]

static void BRepLib::Precision ( const Standard_Real  P)
static

Computes the max distance between edge and its 2d representation on the face. Sets the default precision. The current Precision is returned.

◆ Precision() [2/2]

static Standard_Real BRepLib::Precision ( )
static

Returns the default precision.

◆ ReverseSortFaces()

static void BRepLib::ReverseSortFaces ( const TopoDS_Shape S,
TopTools_ListOfShape LF 
)
static

Sorts in LF the Faces of S on the reverse complexity of their surfaces (other,Torus,Sphere,Cone,Cylinder,Plane)

◆ SameParameter() [1/4]

static void BRepLib::SameParameter ( const TopoDS_Edge theEdge,
const Standard_Real  Tolerance = 1.0e-5 
)
static

Computes new 2d curve(s) for the edge <theEdge> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on the Edge.

◆ SameParameter() [2/4]

static TopoDS_Edge BRepLib::SameParameter ( const TopoDS_Edge theEdge,
const Standard_Real  theTolerance,
Standard_Real theNewTol,
const Standard_Boolean  IsUseOldEdge 
)
static

Computes new 2d curve(s) for the edge <theEdge> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on the Edge.
theNewTol is a new tolerance of vertices of the input edge (not applied inside the algorithm, but pre-computed). If IsUseOldEdge is true then the input edge will be modified, otherwise the new copy of input edge will be created. Returns the new edge as a result, can be ignored if IsUseOldEdge is true.

◆ SameParameter() [3/4]

static void BRepLib::SameParameter ( const TopoDS_Shape S,
const Standard_Real  Tolerance = 1.0e-5,
const Standard_Boolean  forced = Standard_False 
)
static

Computes new 2d curve(s) for all the edges of <S> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on an Edge.

◆ SameParameter() [4/4]

static void BRepLib::SameParameter ( const TopoDS_Shape S,
BRepTools_ReShape theReshaper,
const Standard_Real  Tolerance = 1.0e-5,
const Standard_Boolean  forced = Standard_False 
)
static

Computes new 2d curve(s) for all the edges of <S> to have the same parameter as the 3d curve. The algorithm is not done if the flag SameParameter was True on an Edge.
theReshaper is used to record the modifications of input shape <S> to prevent any modifications on the shape itself. Thus the input shape (and its subshapes) will not be modified, instead the reshaper will contain a modified empty-copies of original subshapes as substitutions.

◆ SameRange()

static void BRepLib::SameRange ( const TopoDS_Edge E,
const Standard_Real  Tolerance = 1.0e-5 
)
static

will make all the curve representation have the same range domain for the parameters. This will IGNORE the same range flag value to proceed. If there is a 3D curve there it will the range of that curve. If not the first curve representation encountered in the list will give its range to the all the other curves.

◆ SortFaces()

static void BRepLib::SortFaces ( const TopoDS_Shape S,
TopTools_ListOfShape LF 
)
static

Sorts in LF the Faces of S on the complexity of their surfaces (Plane,Cylinder,Cone,Sphere,Torus,other)

◆ UpdateEdgeTol()

static Standard_Boolean BRepLib::UpdateEdgeTol ( const TopoDS_Edge E,
const Standard_Real  MinToleranceRequest,
const Standard_Real  MaxToleranceToCheck 
)
static

Checks if the edge has a Tolerance smaller than – – – – MaxToleranceToCheck if so it will compute the radius of – the cylindrical pipe surface that MinToleranceRequest is the minimum tolerance before it is usefull to start testing. Usually it should be arround 10e-5 contains all – the curve represenation of the edge returns True if the Edge tolerance had to be updated.

◆ UpdateEdgeTolerance()

static Standard_Boolean BRepLib::UpdateEdgeTolerance ( const TopoDS_Shape S,
const Standard_Real  MinToleranceRequest,
const Standard_Real  MaxToleranceToCheck 
)
static

– Checks all the edges of the shape whose – – – Tolerance is smaller than MaxToleranceToCheck – Returns True if at least one edge was updated – MinToleranceRequest is the minimum tolerance before – it – is usefull to start testing. Usually it should be arround – 10e-5–

Warning :The method is very slow as it checks all. Use only in interfaces or processing assimilate batch

◆ UpdateInnerTolerances()

static void BRepLib::UpdateInnerTolerances ( const TopoDS_Shape S)
static

Checks tolerances of edges (including inner points) and vertices of a shape and updates them to satisfy "SameParameter" condition.

◆ UpdateTolerances() [1/2]

static void BRepLib::UpdateTolerances ( const TopoDS_Shape S,
const Standard_Boolean  verifyFaceTolerance = Standard_False 
)
static

Replaces tolerance of FACE EDGE VERTEX by the tolerance Max of their connected handling shapes. It is not necessary to use this call after SameParameter. (called in)

◆ UpdateTolerances() [2/2]

static void BRepLib::UpdateTolerances ( const TopoDS_Shape S,
BRepTools_ReShape theReshaper,
const Standard_Boolean  verifyFaceTolerance = Standard_False 
)
static

Replaces tolerance of FACE EDGE VERTEX by the tolerance Max of their connected handling shapes. It is not necessary to use this call after SameParameter. (called in)
theReshaper is used to record the modifications of input shape <S> to prevent any modifications on the shape itself. Thus the input shape (and its subshapes) will not be modified, instead the reshaper will contain a modified empty-copies of original subshapes as substitutions.


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