Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef GEOMImpl_Block6Explorer_HeaderFile
00027 #define GEOMImpl_Block6Explorer_HeaderFile
00028
00029 #include <TopoDS_Shape.hxx>
00030 #include <TopoDS_Wire.hxx>
00031 #include <TopTools_Array1OfShape.hxx>
00032 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
00033 #include <gp_Trsf.hxx>
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 class GEOMImpl_Block6Explorer
00108 {
00109 public:
00110
00111
00112 GEOMImpl_Block6Explorer ();
00113
00114
00115
00116
00117
00118 void InitByBlock (const TopoDS_Shape& theBlock);
00119
00120
00121 void InitByBlockAndFace (const TopoDS_Shape& theBlock,
00122 const TopoDS_Shape& theFace);
00123
00124
00125
00126 void InitByBlockAndEdges (const TopoDS_Shape& theBlock,
00127 const TopoDS_Shape& theEdge1,
00128 const TopoDS_Shape& theEdge2);
00129
00130
00131
00132
00133 void InitByBlockAndVertices (const TopoDS_Shape& theBlock,
00134 const TopoDS_Shape& theVertex1,
00135 const TopoDS_Shape& theVertex2,
00136 const TopoDS_Shape& theVertex3);
00137
00138
00139
00140
00141
00142 void InitByTwoFaces (const TopoDS_Shape& theFace1,
00143 const TopoDS_Shape& theFace2);
00144
00145
00146
00147
00148
00149 TopoDS_Shape GetVertex (const Standard_Integer theVertexID);
00150
00151 Standard_Integer GetVertexID (const TopoDS_Shape& theVertex);
00152
00153 Standard_Integer GetVertexID (const Standard_Integer theFaceID,
00154 const Standard_Integer theVertexNB);
00155
00156 Standard_Integer GetVertexOnEdgeID (const Standard_Integer theEdgeID,
00157 const Standard_Integer theVertexNB);
00158
00159
00160 TopoDS_Shape GetEdge (const Standard_Integer theEdgeID,
00161 const Standard_Boolean doMake = Standard_False);
00162
00163 Standard_Integer GetEdgeID (const TopoDS_Shape& theEdge);
00164
00165 Standard_Integer GetEdgeID (const Standard_Integer theFaceID,
00166 const Standard_Integer theEdgeNB);
00167
00168 Standard_Integer FindEdgeID (const Standard_Integer theVertex1ID,
00169 const Standard_Integer theVertex2ID);
00170
00171 Standard_Integer FindCommonEdgeID (const Standard_Integer theFace1ID,
00172 const Standard_Integer theFace2ID);
00173
00174
00175 TopoDS_Shape GetFace (const Standard_Integer theFaceID,
00176 const Standard_Boolean doMake = Standard_False);
00177
00178 Standard_Integer GetFaceID (const TopoDS_Shape& theFace);
00179
00180 Standard_Integer FindFaceID (const Standard_Integer theEdge1ID,
00181 const Standard_Integer theEdge2ID);
00182
00183 Standard_Integer GetOppositeFaceID (const Standard_Integer theFaceID);
00184
00185
00186 Standard_Boolean IsSimilarFaces (const Standard_Integer theFace1ID,
00187 const Standard_Integer theFace2ID,
00188 const gp_Trsf theTransformation);
00189
00190
00191 public:
00192
00193 static void MapShapesAndAncestors (const TopoDS_Shape& S,
00194 const TopAbs_ShapeEnum TS,
00195 const TopAbs_ShapeEnum TA,
00196 TopTools_IndexedDataMapOfShapeListOfShape& M);
00197
00198 static Standard_Boolean IsSimilarEdges (const TopoDS_Shape& E1,
00199 const TopoDS_Shape& E2);
00200
00201 static Standard_Integer FindEdge (TopoDS_Shape& theResult,
00202 const TopoDS_Shape& V1,
00203 const TopoDS_Shape& V2,
00204 const TopTools_IndexedDataMapOfShapeListOfShape& MVE,
00205 const Standard_Boolean findAll = Standard_False);
00206
00207
00208 static Standard_Integer FindFace (TopoDS_Shape& theResult,
00209 const TopoDS_Shape& V1,
00210 const TopoDS_Shape& V2,
00211 const TopoDS_Shape& V3,
00212 const TopoDS_Shape& V4,
00213 const TopTools_IndexedDataMapOfShapeListOfShape& MVF,
00214 const Standard_Boolean findAll = Standard_False);
00215
00216
00217 static void MakeFace (const TopoDS_Wire& theWire,
00218 const Standard_Boolean isPlanarWanted,
00219 TopoDS_Shape& theResult);
00220
00221 private:
00222
00223
00224 TopTools_Array1OfShape myFaces;
00225 TopTools_Array1OfShape myEdges;
00226 TopTools_Array1OfShape myVertices;
00227 };
00228
00229 #endif