1 // Created on: 1994-03-22
2 // Created by: Frederic UNTEREINER
3 // Copyright (c) 1994-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #ifndef _IGESToBRep_HeaderFile
18 #define _IGESToBRep_HeaderFile
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
24 #include <Standard_Boolean.hxx>
25 #include <Standard_Integer.hxx>
26 #include <TColStd_HSequenceOfTransient.hxx>
27 class IGESToBRep_AlgoContainer;
28 class IGESData_IGESEntity;
32 class IGESToBRep_CurveAndSurface;
33 class IGESToBRep_BasicSurface;
34 class IGESToBRep_BasicCurve;
35 class IGESToBRep_TopoSurface;
36 class IGESToBRep_TopoCurve;
37 class IGESToBRep_BRepEntity;
38 class IGESToBRep_IGESBoundary;
39 class IGESToBRep_Reader;
40 class IGESToBRep_Actor;
41 class IGESToBRep_AlgoContainer;
42 class IGESToBRep_ToolContainer;
45 //! Provides tools in order to transfer IGES entities
54 //! Creates and initializes default AlgoContainer.
55 Standard_EXPORT static void Init();
57 //! Sets default AlgoContainer
58 Standard_EXPORT static void SetAlgoContainer (const Handle(IGESToBRep_AlgoContainer)& aContainer);
60 //! Returns default AlgoContainer
61 Standard_EXPORT static Handle(IGESToBRep_AlgoContainer) AlgoContainer();
63 //! Return True if the IGESEntity can be transfered by
64 //! TransferCurveAndSurface.
65 //! ex: All IGESEntity from IGESGeom
66 Standard_EXPORT static Standard_Boolean IsCurveAndSurface (const Handle(IGESData_IGESEntity)& start);
68 //! Return True if the IGESEntity can be transfered by
69 //! TransferBasicCurve.
70 //! ex: CircularArc, ConicArc, Line, CopiousData,
71 //! BSplineCurve, SplineCurve... from IGESGeom :
73 Standard_EXPORT static Standard_Boolean IsBasicCurve (const Handle(IGESData_IGESEntity)& start);
75 //! Return True if the IGESEntity can be transfered by
76 //! TransferBasicSurface.
77 //! ex: BSplineSurface, SplineSurface... from IGESGeom :
79 Standard_EXPORT static Standard_Boolean IsBasicSurface (const Handle(IGESData_IGESEntity)& start);
81 //! Return True if the IGESEntity can be transfered by
82 //! TransferTopoCurve.
83 //! ex: all Curves from IGESGeom :
84 //! all basic curves,102,130,142,144
85 Standard_EXPORT static Standard_Boolean IsTopoCurve (const Handle(IGESData_IGESEntity)& start);
87 //! Return True if the IGESEntity can be transfered by
88 //! TransferTopoSurface.
89 //! ex: All Surfaces from IGESGeom :
90 //! all basic surfaces,108,118,120,122,141,143
91 Standard_EXPORT static Standard_Boolean IsTopoSurface (const Handle(IGESData_IGESEntity)& start);
93 //! Return True if the IGESEntity can be transfered by
94 //! TransferBRepEntity.
95 //! ex: VertexList, EdgeList, Loop, Face, Shell,
96 //! Manifold Solid BRep Object from IGESSolid :
97 //! 502, 504, 508, 510, 514, 186.
98 Standard_EXPORT static Standard_Boolean IsBRepEntity (const Handle(IGESData_IGESEntity)& start);
100 //! Creates a file Shape_'number' with the shape being
101 //! able to be restored by Draw.
102 Standard_EXPORT static void WriteShape (const TopoDS_Shape& shape, const Standard_Integer number);
104 Standard_EXPORT static Standard_Integer IGESCurveToSequenceOfIGESCurve (const Handle(IGESData_IGESEntity)& curve, Handle(TColStd_HSequenceOfTransient)& sequence);
106 Standard_EXPORT static Standard_Boolean TransferPCurve (const TopoDS_Edge& fromedge, const TopoDS_Edge& toedge, const TopoDS_Face& face);
122 friend class IGESToBRep_CurveAndSurface;
123 friend class IGESToBRep_BasicSurface;
124 friend class IGESToBRep_BasicCurve;
125 friend class IGESToBRep_TopoSurface;
126 friend class IGESToBRep_TopoCurve;
127 friend class IGESToBRep_BRepEntity;
128 friend class IGESToBRep_IGESBoundary;
129 friend class IGESToBRep_Reader;
130 friend class IGESToBRep_Actor;
131 friend class IGESToBRep_AlgoContainer;
132 friend class IGESToBRep_ToolContainer;
142 #endif // _IGESToBRep_HeaderFile