|
||||
File indexing completed on 2025-01-18 10:03:09
0001 // Created on: 1995-12-12 0002 // Created by: Jacques GOUSSARD 0003 // Copyright (c) 1995-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _BRepCheck_Wire_HeaderFile 0018 #define _BRepCheck_Wire_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_Type.hxx> 0022 0023 #include <BRepCheck_Status.hxx> 0024 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx> 0025 #include <BRepCheck_Result.hxx> 0026 class TopoDS_Wire; 0027 class TopoDS_Shape; 0028 class TopoDS_Face; 0029 class TopoDS_Edge; 0030 0031 0032 class BRepCheck_Wire; 0033 DEFINE_STANDARD_HANDLE(BRepCheck_Wire, BRepCheck_Result) 0034 0035 0036 class BRepCheck_Wire : public BRepCheck_Result 0037 { 0038 0039 public: 0040 0041 0042 Standard_EXPORT BRepCheck_Wire(const TopoDS_Wire& W); 0043 0044 //! if <ContextShape> is a face, consequently checks 0045 //! SelfIntersect(), Closed(), Orientation() and 0046 //! Closed2d until faulty is found 0047 Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape) Standard_OVERRIDE; 0048 0049 //! checks that the wire is not empty and "connex". 0050 //! Called by constructor 0051 Standard_EXPORT void Minimum() Standard_OVERRIDE; 0052 0053 //! Does nothing 0054 Standard_EXPORT void Blind() Standard_OVERRIDE; 0055 0056 //! Checks if the oriented edges of the wire give a 0057 //! closed wire. If the wire is closed, returns 0058 //! BRepCheck_NoError. Warning : if the first and 0059 //! last edge are infinite, the wire will be 0060 //! considered as a closed one. If <Update> is set to 0061 //! Standard_True, registers the status in the list. 0062 //! May return (and registers): 0063 //! **BRepCheck_NotConnected, if wire is not 0064 //! topologically closed 0065 //! **BRepCheck_RedundantEdge, if an edge is in wire 0066 //! more than 3 times or in case of 2 occurrences if 0067 //! not with FORWARD and REVERSED orientation. 0068 //! **BRepCheck_NoError 0069 Standard_EXPORT BRepCheck_Status Closed (const Standard_Boolean Update = Standard_False); 0070 0071 //! Checks if edges of the wire give a wire closed in 0072 //! 2d space. 0073 //! Returns BRepCheck_NoError, or BRepCheck_NotClosed 0074 //! If <Update> is set to Standard_True, registers the 0075 //! status in the list. 0076 Standard_EXPORT BRepCheck_Status Closed2d (const TopoDS_Face& F, const Standard_Boolean Update = Standard_False); 0077 0078 //! Checks if the oriented edges of the wire are 0079 //! correctly oriented. An internal call is made to 0080 //! the method Closed. If no face exists, call the 0081 //! method with a null face (TopoDS_face()). If 0082 //! <Update> is set to Standard_True, registers the 0083 //! status in the list. 0084 //! May return (and registers): 0085 //! BRepCheck_InvalidDegeneratedFlag, 0086 //! BRepCheck_BadOrientationOfSubshape, 0087 //! BRepCheck_NotClosed, 0088 //! BRepCheck_NoError 0089 Standard_EXPORT BRepCheck_Status Orientation (const TopoDS_Face& F, const Standard_Boolean Update = Standard_False); 0090 0091 //! Checks if the wire intersect itself on the face 0092 //! <F>. <E1> and <E2> are the first intersecting 0093 //! edges found. <E2> may be a null edge when a 0094 //! self-intersecting edge is found.If <Update> is set 0095 //! to Standard_True, registers the status in the 0096 //! list. 0097 //! May return (and register): 0098 //! BRepCheck_EmptyWire, 0099 //! BRepCheck_SelfIntersectingWire, 0100 //! BRepCheck_NoCurveOnSurface, 0101 //! BRepCheck_NoError 0102 Standard_EXPORT BRepCheck_Status SelfIntersect (const TopoDS_Face& F, TopoDS_Edge& E1, TopoDS_Edge& E2, const Standard_Boolean Update = Standard_False); 0103 0104 //! report SelfIntersect() check would be (is) done 0105 Standard_EXPORT Standard_Boolean GeometricControls() const; 0106 0107 //! set SelfIntersect() to be checked 0108 Standard_EXPORT void GeometricControls (const Standard_Boolean B); 0109 0110 //! Sets status of Wire; 0111 Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus); 0112 0113 0114 0115 0116 DEFINE_STANDARD_RTTIEXT(BRepCheck_Wire,BRepCheck_Result) 0117 0118 protected: 0119 0120 0121 0122 0123 private: 0124 0125 0126 Standard_Boolean myCdone; 0127 BRepCheck_Status myCstat; 0128 TopTools_IndexedDataMapOfShapeListOfShape myMapVE; 0129 Standard_Boolean myGctrl; 0130 0131 0132 }; 0133 0134 0135 0136 0137 0138 0139 0140 #endif // _BRepCheck_Wire_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |