File indexing completed on 2026-10-09 09:33:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepToIGESBRep_Entity_HeaderFile
0018 #define _BRepToIGESBRep_Entity_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <TopTools_ShapeMapHasher.hxx>
0025 #include <NCollection_IndexedMap.hxx>
0026 #include <Standard_Transient.hxx>
0027 #include <NCollection_Sequence.hxx>
0028 #include <BRepToIGES_BREntity.hxx>
0029 #include <Standard_Integer.hxx>
0030 #include <Message_ProgressRange.hxx>
0031
0032 class IGESSolid_EdgeList;
0033 class IGESSolid_VertexList;
0034 class TopoDS_Vertex;
0035 class TopoDS_Edge;
0036 class IGESData_IGESEntity;
0037 class TopoDS_Shape;
0038 class TopoDS_Face;
0039 class IGESSolid_Loop;
0040 class TopoDS_Wire;
0041 class IGESSolid_Face;
0042 class IGESSolid_Shell;
0043 class TopoDS_Shell;
0044 class IGESSolid_ManifoldSolid;
0045 class TopoDS_Solid;
0046 class TopoDS_CompSolid;
0047 class TopoDS_Compound;
0048
0049
0050 class BRepToIGESBRep_Entity : public BRepToIGES_BREntity
0051 {
0052 public:
0053 DEFINE_STANDARD_ALLOC
0054
0055
0056 Standard_EXPORT BRepToIGESBRep_Entity();
0057
0058
0059 Standard_EXPORT void Clear();
0060
0061
0062 Standard_EXPORT void TransferVertexList();
0063
0064
0065 Standard_EXPORT int IndexVertex(const TopoDS_Vertex& myvertex) const;
0066
0067
0068
0069 Standard_EXPORT int AddVertex(const TopoDS_Vertex& myvertex);
0070
0071
0072 Standard_EXPORT void TransferEdgeList();
0073
0074
0075 Standard_EXPORT int IndexEdge(const TopoDS_Edge& myedge) const;
0076
0077
0078
0079 Standard_EXPORT int AddEdge(const TopoDS_Edge& myedge,
0080 const occ::handle<IGESData_IGESEntity>& mycurve3d);
0081
0082
0083
0084 Standard_EXPORT occ::handle<IGESData_IGESEntity> TransferShape(
0085 const TopoDS_Shape& start,
0086 const Message_ProgressRange& theProgress = Message_ProgressRange()) override;
0087
0088
0089
0090 Standard_EXPORT occ::handle<IGESData_IGESEntity> TransferEdge(const TopoDS_Edge& myedge);
0091
0092
0093
0094 Standard_EXPORT occ::handle<IGESData_IGESEntity> TransferEdge(const TopoDS_Edge& myedge,
0095 const TopoDS_Face& myface,
0096 const double length);
0097
0098
0099
0100
0101 Standard_EXPORT occ::handle<IGESSolid_Loop> TransferWire(const TopoDS_Wire& mywire,
0102 const TopoDS_Face& myface,
0103 const double length);
0104
0105
0106
0107 Standard_EXPORT occ::handle<IGESSolid_Face> TransferFace(const TopoDS_Face& start);
0108
0109
0110
0111 Standard_EXPORT occ::handle<IGESSolid_Shell> TransferShell(
0112 const TopoDS_Shell& start,
0113 const Message_ProgressRange& theProgress = Message_ProgressRange());
0114
0115
0116
0117 Standard_EXPORT occ::handle<IGESSolid_ManifoldSolid> TransferSolid(
0118 const TopoDS_Solid& start,
0119 const Message_ProgressRange& theProgress = Message_ProgressRange());
0120
0121
0122
0123 Standard_EXPORT occ::handle<IGESData_IGESEntity> TransferCompSolid(
0124 const TopoDS_CompSolid& start,
0125 const Message_ProgressRange& theProgress = Message_ProgressRange());
0126
0127
0128
0129 Standard_EXPORT occ::handle<IGESData_IGESEntity> TransferCompound(
0130 const TopoDS_Compound& start,
0131 const Message_ProgressRange& theProgress = Message_ProgressRange());
0132
0133 private:
0134 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher> myVertices;
0135 NCollection_IndexedMap<TopoDS_Shape, TopTools_ShapeMapHasher> myEdges;
0136 NCollection_Sequence<occ::handle<Standard_Transient>> myCurves;
0137 occ::handle<IGESSolid_EdgeList> myEdgeList;
0138 occ::handle<IGESSolid_VertexList> myVertexList;
0139 };
0140
0141 #endif