| 
    Open CASCADE Technology 7.8.2.dev
    
   | 
 
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.