4952ec95fcaf01f13f25969c1d65e32b2157cfa7
[occt.git] / src / IGESCAFControl / IGESCAFControl_Reader.hxx
1 // Created on: 2000-08-15
2 // Created by: Andrey BETENEV
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _IGESCAFControl_Reader_HeaderFile
17 #define _IGESCAFControl_Reader_HeaderFile
18
19 #include <Standard.hxx>
20 #include <Standard_DefineAlloc.hxx>
21 #include <Standard_Handle.hxx>
22
23 #include <Standard_Boolean.hxx>
24 #include <IGESControl_Reader.hxx>
25 #include <Standard_CString.hxx>
26 class XSControl_WorkSession;
27 class TDocStd_Document;
28 class TCollection_AsciiString;
29
30
31 //! Provides a tool to read IGES file and put it into
32 //! DECAF document. Besides transfer of shapes (including
33 //! assemblies) provided by IGESControl, supports also
34 //! colors and part names
35 //! IGESCAFControl_Reader reader; Methods for translation of an IGES file:
36 //! reader.ReadFile("filename");
37 //! reader.Transfer(Document); or
38 //! reader.Perform("filename",doc);
39 //! Methods for managing reading attributes.
40 //! Colors
41 //! reader.SetColorMode(colormode);
42 //! Standard_Boolean colormode = reader.GetColorMode();
43 //! Layers
44 //! reader.SetLayerMode(layermode);
45 //! Standard_Boolean layermode = reader.GetLayerMode();
46 //! Names
47 //! reader.SetNameMode(namemode);
48 //! Standard_Boolean namemode = reader.GetNameMode();
49 class IGESCAFControl_Reader  : public IGESControl_Reader
50 {
51 public:
52
53   DEFINE_STANDARD_ALLOC
54
55   
56   //! Creates a reader with an empty
57   //! IGES model and sets ColorMode, LayerMode and NameMode to Standard_True.
58   Standard_EXPORT IGESCAFControl_Reader();
59   
60   //! Creates a reader tool and attaches it to an already existing Session
61   //! Clears the session if it was not yet set for IGES
62   Standard_EXPORT IGESCAFControl_Reader(const Handle(XSControl_WorkSession)& WS, const Standard_Boolean scratch = Standard_True);
63   
64   //! Translates currently loaded IGES file into the document
65   //! Returns True if succeeded, and False in case of fail
66   Standard_EXPORT Standard_Boolean Transfer (Handle(TDocStd_Document)& doc);
67   
68   Standard_EXPORT Standard_Boolean Perform (const TCollection_AsciiString& filename, Handle(TDocStd_Document)& doc);
69   
70   //! Translate IGES file given by filename into the document
71   //! Return True if succeeded, and False in case of fail
72   Standard_EXPORT Standard_Boolean Perform (const Standard_CString filename, Handle(TDocStd_Document)& doc);
73   
74   //! Set ColorMode for indicate read Colors or not.
75   Standard_EXPORT void SetColorMode (const Standard_Boolean colormode);
76   
77   Standard_EXPORT Standard_Boolean GetColorMode() const;
78   
79   //! Set NameMode for indicate read Name or not.
80   Standard_EXPORT void SetNameMode (const Standard_Boolean namemode);
81   
82   Standard_EXPORT Standard_Boolean GetNameMode() const;
83   
84   //! Set LayerMode for indicate read Layers or not.
85   Standard_EXPORT void SetLayerMode (const Standard_Boolean layermode);
86   
87   Standard_EXPORT Standard_Boolean GetLayerMode() const;
88
89
90
91
92 protected:
93
94   
95   //! Reads colors of IGES entities and sets
96   //! corresponding color assignments in the DECAF document
97   Standard_EXPORT Standard_Boolean ReadColors (Handle(TDocStd_Document)& doc) const;
98   
99   //! Reads Names of IGES entities and sets
100   //! corresponding name to label with shape in the DECAF document
101   Standard_EXPORT Standard_Boolean ReadNames (Handle(TDocStd_Document)& doc) const;
102   
103   //! Reads layers of parts defined in the IGES model and
104   //! set reference between shape and layers in the DECAF document
105   Standard_EXPORT Standard_Boolean ReadLayers (Handle(TDocStd_Document)& doc) const;
106
107
108
109
110 private:
111
112
113
114   Standard_Boolean myColorMode;
115   Standard_Boolean myNameMode;
116   Standard_Boolean myLayerMode;
117
118
119 };
120
121
122
123
124
125
126
127 #endif // _IGESCAFControl_Reader_HeaderFile