0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / IGESToBRep / IGESToBRep.hxx
CommitLineData
42cf5bc1 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
5//
6// This file is part of Open CASCADE Technology software library.
7//
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.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _IGESToBRep_HeaderFile
18#define _IGESToBRep_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_DefineAlloc.hxx>
22#include <Standard_Handle.hxx>
23
24#include <Standard_Boolean.hxx>
25#include <Standard_Integer.hxx>
26#include <TColStd_HSequenceOfTransient.hxx>
27class IGESToBRep_AlgoContainer;
28class IGESData_IGESEntity;
29class TopoDS_Shape;
30class TopoDS_Edge;
31class TopoDS_Face;
32class IGESToBRep_CurveAndSurface;
33class IGESToBRep_BasicSurface;
34class IGESToBRep_BasicCurve;
35class IGESToBRep_TopoSurface;
36class IGESToBRep_TopoCurve;
37class IGESToBRep_BRepEntity;
38class IGESToBRep_IGESBoundary;
39class IGESToBRep_Reader;
40class IGESToBRep_Actor;
41class IGESToBRep_AlgoContainer;
42class IGESToBRep_ToolContainer;
43
44
45//! Provides tools in order to transfer IGES entities
46//! to CAS.CADE.
47class IGESToBRep
48{
49public:
50
51 DEFINE_STANDARD_ALLOC
52
53
54 //! Creates and initializes default AlgoContainer.
55 Standard_EXPORT static void Init();
56
57 //! Sets default AlgoContainer
58 Standard_EXPORT static void SetAlgoContainer (const Handle(IGESToBRep_AlgoContainer)& aContainer);
59
60 //! Returns default AlgoContainer
61 Standard_EXPORT static Handle(IGESToBRep_AlgoContainer) AlgoContainer();
62
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);
67
68 //! Return True if the IGESEntity can be transfered by
69 //! TransferBasicCurve.
70 //! ex: CircularArc, ConicArc, Line, CopiousData,
71 //! BSplineCurve, SplineCurve... from IGESGeom :
72 //! 104,110,112,126
73 Standard_EXPORT static Standard_Boolean IsBasicCurve (const Handle(IGESData_IGESEntity)& start);
74
75 //! Return True if the IGESEntity can be transfered by
76 //! TransferBasicSurface.
77 //! ex: BSplineSurface, SplineSurface... from IGESGeom :
78 //! 114,128
79 Standard_EXPORT static Standard_Boolean IsBasicSurface (const Handle(IGESData_IGESEntity)& start);
80
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);
86
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);
92
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);
99
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);
103
104 Standard_EXPORT static Standard_Integer IGESCurveToSequenceOfIGESCurve (const Handle(IGESData_IGESEntity)& curve, Handle(TColStd_HSequenceOfTransient)& sequence);
105
106 Standard_EXPORT static Standard_Boolean TransferPCurve (const TopoDS_Edge& fromedge, const TopoDS_Edge& toedge, const TopoDS_Face& face);
107
108
109
110
111protected:
112
113
114
115
116
117private:
118
119
120
121
122friend class IGESToBRep_CurveAndSurface;
123friend class IGESToBRep_BasicSurface;
124friend class IGESToBRep_BasicCurve;
125friend class IGESToBRep_TopoSurface;
126friend class IGESToBRep_TopoCurve;
127friend class IGESToBRep_BRepEntity;
128friend class IGESToBRep_IGESBoundary;
129friend class IGESToBRep_Reader;
130friend class IGESToBRep_Actor;
131friend class IGESToBRep_AlgoContainer;
132friend class IGESToBRep_ToolContainer;
133
134};
135
136
137
138
139
140
141
142#endif // _IGESToBRep_HeaderFile