c59edef99d63431feb7ac47a6e425e07f03cd9f4
[occt.git] / src / XCAFDoc / XCAFDoc.hxx
1 // Created on: 2000-08-08
2 // Created by: data exchange team
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 _XCAFDoc_HeaderFile
17 #define _XCAFDoc_HeaderFile
18
19 #include <Standard.hxx>
20 #include <Standard_DefineAlloc.hxx>
21 #include <Standard_Handle.hxx>
22
23 #include <XCAFDoc_ColorType.hxx>
24 class Standard_GUID;
25 class XCAFDoc_DocumentTool;
26 class XCAFDoc_Location;
27 class XCAFDoc_Color;
28 class XCAFDoc_DimTol;
29 class XCAFDoc_Dimension;
30 class XCAFDoc_GeomTolerance;
31 class XCAFDoc_Datum;
32 class XCAFDoc_Material;
33 class XCAFDoc_Volume;
34 class XCAFDoc_Area;
35 class XCAFDoc_Centroid;
36 class XCAFDoc_ClippingPlaneTool;
37 class XCAFDoc_ShapeTool;
38 class XCAFDoc_ShapeMapTool;
39 class XCAFDoc_ColorTool;
40 class XCAFDoc_DimTolTool;
41 class XCAFDoc_LayerTool;
42 class XCAFDoc_MaterialTool;
43 class XCAFDoc_GraphNode;
44 class XCAFDoc_Editor;
45 class XCAFDoc_ViewTool;
46
47
48 //! Definition of general structure of DECAF document
49 //! and tools to work with it
50 //!
51 //! The document is composed of sections, each section
52 //! storing its own kind of data and managing by corresponding
53 //! tool
54 //! Some properties can be attached directly to shapes. These properties are:
55 //! * Name (the standard definition from OCAF) - class TDataStd_Name
56 //! * Centroid (for the validation of transfer) - class XCAFDoc_Centroid
57 //! * Volume (for the validation of transfer) - class XCAFDoc_Volume
58 //! * Area (for the validation of transfer) - class XCafDoc_Area
59 //! Management of these attributes is realized by OCAF. For getting
60 //! the attributes attached to a label the method class
61 //! TDF_Label::FindAttribute() should be used.
62 class XCAFDoc 
63 {
64 public:
65
66   DEFINE_STANDARD_ALLOC
67
68   
69   //! class for containing GraphNodes.
70   //! Returns GUID for UAttribute identifying assembly
71   Standard_EXPORT static Standard_GUID AssemblyGUID();
72   
73   //! Returns GUID for TreeNode representing assembly link
74   Standard_EXPORT static Standard_GUID ShapeRefGUID();
75   
76   //! Return GUIDs for TreeNode representing specified types of colors
77   Standard_EXPORT static Standard_GUID ColorRefGUID (const XCAFDoc_ColorType type);
78   
79   //! Return GUIDs for TreeNode representing specified types of DGT
80   Standard_EXPORT static Standard_GUID DimTolRefGUID();
81
82   //! Return GUIDs for TreeNode representing specified types of Dimension
83   Standard_EXPORT static   Standard_GUID DimensionRefFirstGUID() ;
84
85   //! Return GUIDs for TreeNode representing specified types of Dimension
86   Standard_EXPORT static   Standard_GUID DimensionRefSecondGUID() ;
87
88   //! Return GUIDs for TreeNode representing specified types of GeomTolerance
89   Standard_EXPORT static   Standard_GUID GeomToleranceRefGUID() ;
90   
91   //! Return GUIDs for TreeNode representing specified types of datum
92   Standard_EXPORT static Standard_GUID DatumRefGUID();
93   
94   //! Return GUIDs for TreeNode representing connections Datum-Toler
95   Standard_EXPORT static Standard_GUID DatumTolRefGUID();
96   
97   Standard_EXPORT static Standard_GUID LayerRefGUID();
98   
99   Standard_EXPORT static Standard_GUID MaterialRefGUID();
100
101   //! Return GUIDs for representing notes
102   Standard_EXPORT static Standard_GUID NoteRefGUID();
103
104   Standard_EXPORT static Standard_GUID InvisibleGUID();
105   
106   //! Returns GUID for UAttribute identifying external reference on no-step file
107   Standard_EXPORT static Standard_GUID ExternRefGUID();
108   
109   //! Returns GUID for UAttribute identifying specified higher usage occurrence
110   Standard_EXPORT static Standard_GUID SHUORefGUID();
111
112   //! Return GUIDs for TreeNode representing specified types of View
113   Standard_EXPORT static Standard_GUID ViewRefGUID();
114
115   //! Return GUIDs for TreeNode representing specified types of View
116   Standard_EXPORT static Standard_GUID ViewRefShapeGUID();
117
118   //! Return GUIDs for TreeNode representing specified types of View
119   Standard_EXPORT static Standard_GUID ViewRefGDTGUID();
120   
121   //! Return GUIDs for TreeNode representing specified types of View
122   Standard_EXPORT static Standard_GUID ViewRefPlaneGUID();
123
124   //! Return GUIDs for GraphNode representing specified types of View
125   Standard_EXPORT static Standard_GUID ViewRefNoteGUID();
126   Standard_EXPORT static Standard_GUID ViewRefAnnotationGUID();
127
128   //! Returns GUID for UAttribute identifying lock flag
129   Standard_EXPORT static Standard_GUID LockGUID();
130
131 protected:
132
133
134
135
136
137 private:
138
139
140
141
142 friend class XCAFDoc_DocumentTool;
143 friend class XCAFDoc_Location;
144 friend class XCAFDoc_Color;
145 friend class XCAFDoc_DimTol;
146 friend class XCAFDoc_Datum;
147 friend class XCAFDoc_Material;
148 friend class XCAFDoc_Volume;
149 friend class XCAFDoc_Area;
150 friend class XCAFDoc_Centroid;
151 friend class XCAFDoc_ClippingPlaneTool;
152 friend class XCAFDoc_ShapeTool;
153 friend class XCAFDoc_ShapeMapTool;
154 friend class XCAFDoc_ColorTool;
155 friend class XCAFDoc_DimTolTool;
156 friend class XCAFDoc_LayerTool;
157 friend class XCAFDoc_MaterialTool;
158 friend class XCAFDoc_GraphNode;
159 friend class XCAFDoc_Editor;
160 friend class XCAFDoc_ViewTool;
161
162 };
163
164
165
166
167
168
169
170 #endif // _XCAFDoc_HeaderFile