|
Open CASCADE Technology 7.8.0
|
Tool class for detection of self-sections in the given shape. This class is based on BRepExtrema_OverlapTool and thus uses shape tessellation to detect incorrect mesh fragments (pairs of overlapped triangles belonging to different faces). Thus, a result depends critically on the quality of mesh generator (e.g., BREP mesh is not always a good choice, because it can contain gaps between adjacent face triangulations, which may not share vertices on common edge; thus false overlap can be detected). As a result, this tool can be used for relatively fast approximated test which provides sub-set of potentially overlapped faces. More...
#include <BRepExtrema_SelfIntersection.hxx>

Public Member Functions | |
| BRepExtrema_SelfIntersection (const Standard_Real theTolerance=0.0) | |
| Creates uninitialized self-intersection tool. | |
| BRepExtrema_SelfIntersection (const TopoDS_Shape &theShape, const Standard_Real theTolerance=0.0) | |
| Creates self-intersection tool for the given shape. | |
| Standard_Real | Tolerance () const |
| Returns tolerance value used for self-intersection test. | |
| void | SetTolerance (const Standard_Real theTolerance) |
| Sets tolerance value used for self-intersection test. | |
| Standard_Boolean | LoadShape (const TopoDS_Shape &theShape) |
| Loads shape for detection of self-intersections. | |
| void | Perform () |
| Performs detection of self-intersections. | |
| Standard_Boolean | IsDone () const |
| True if the detection is completed. | |
| const BRepExtrema_MapOfIntegerPackedMapOfInteger & | OverlapElements () const |
| Returns set of IDs of overlapped sub-shapes (started from 0). | |
| const TopoDS_Face & | GetSubShape (const Standard_Integer theID) const |
| Returns sub-shape from the shape for the given index (started from 0). | |
| const Handle< BRepExtrema_TriangleSet > & | ElementSet () const |
| Returns set of all the face triangles of the shape. | |
Public Member Functions inherited from BRepExtrema_ElementFilter | |
| virtual | ~BRepExtrema_ElementFilter () |
| Releases resources of element filter. | |
Protected Member Functions | |
| virtual BRepExtrema_ElementFilter::FilterResult | PreCheckElements (const Standard_Integer theIndex1, const Standard_Integer theIndex2) |
| Filter out correct adjacent mesh elements. | |
| BRepExtrema_ElementFilter::FilterResult | isRegularSharedVertex (const BVH_Vec3d &theSharedVert, const BVH_Vec3d &theTrng1Vtxs1, const BVH_Vec3d &theTrng1Vtxs2, const BVH_Vec3d &theTrng2Vtxs1, const BVH_Vec3d &theTrng2Vtxs2) |
| Checks if the given triangles have only single common vertex. | |
| BRepExtrema_ElementFilter::FilterResult | isRegularSharedEdge (const BVH_Vec3d &theTrng1Vtxs0, const BVH_Vec3d &theTrng1Vtxs1, const BVH_Vec3d &theTrng1Vtxs2, const BVH_Vec3d &theTrng2Vtxs2) |
| Checks if the given triangles have only single common edge. | |
Additional Inherited Members | |
Public Types inherited from BRepExtrema_ElementFilter | |
| enum | FilterResult { NoCheck , Overlap , DoCheck } |
| Result of filtering function. More... | |
Tool class for detection of self-sections in the given shape. This class is based on BRepExtrema_OverlapTool and thus uses shape tessellation to detect incorrect mesh fragments (pairs of overlapped triangles belonging to different faces). Thus, a result depends critically on the quality of mesh generator (e.g., BREP mesh is not always a good choice, because it can contain gaps between adjacent face triangulations, which may not share vertices on common edge; thus false overlap can be detected). As a result, this tool can be used for relatively fast approximated test which provides sub-set of potentially overlapped faces.
| BRepExtrema_SelfIntersection::BRepExtrema_SelfIntersection | ( | const Standard_Real | theTolerance = 0.0 | ) |
Creates uninitialized self-intersection tool.
| BRepExtrema_SelfIntersection::BRepExtrema_SelfIntersection | ( | const TopoDS_Shape & | theShape, |
| const Standard_Real | theTolerance = 0.0 |
||
| ) |
Creates self-intersection tool for the given shape.
|
inline |
Returns set of all the face triangles of the shape.
|
inline |
Returns sub-shape from the shape for the given index (started from 0).
|
inline |
True if the detection is completed.
|
protected |
Checks if the given triangles have only single common edge.
|
protected |
Checks if the given triangles have only single common vertex.
| Standard_Boolean BRepExtrema_SelfIntersection::LoadShape | ( | const TopoDS_Shape & | theShape | ) |
Loads shape for detection of self-intersections.
|
inline |
Returns set of IDs of overlapped sub-shapes (started from 0).
| void BRepExtrema_SelfIntersection::Perform | ( | ) |
Performs detection of self-intersections.
|
protectedvirtual |
Filter out correct adjacent mesh elements.
Reimplemented from BRepExtrema_ElementFilter.
|
inline |
Sets tolerance value used for self-intersection test.
|
inline |
Returns tolerance value used for self-intersection test.