1 // Created on: 2000-08-08
2 // Created by: data exchange team
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef _XCAFDoc_HeaderFile
17 #define _XCAFDoc_HeaderFile
19 #include <Standard.hxx>
20 #include <Standard_DefineAlloc.hxx>
21 #include <Standard_Handle.hxx>
23 #include <XCAFDoc_ColorType.hxx>
25 class XCAFDoc_DocumentTool;
26 class XCAFDoc_Location;
29 class XCAFDoc_Dimension;
30 class XCAFDoc_GeomTolerance;
32 class XCAFDoc_Material;
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;
45 class XCAFDoc_ViewTool;
48 //! Definition of general structure of DECAF document
49 //! and tools to work with it
51 //! The document is composed of sections, each section
52 //! storing its own kind of data and managing by corresponding
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.
69 //! class for containing GraphNodes.
70 //! Returns GUID for UAttribute identifying assembly
71 Standard_EXPORT static Standard_GUID AssemblyGUID();
73 //! Returns GUID for TreeNode representing assembly link
74 Standard_EXPORT static Standard_GUID ShapeRefGUID();
76 //! Return GUIDs for TreeNode representing specified types of colors
77 Standard_EXPORT static Standard_GUID ColorRefGUID (const XCAFDoc_ColorType type);
79 //! Return GUIDs for TreeNode representing specified types of DGT
80 Standard_EXPORT static Standard_GUID DimTolRefGUID();
82 //! Return GUIDs for TreeNode representing specified types of Dimension
83 Standard_EXPORT static Standard_GUID DimensionRefFirstGUID() ;
85 //! Return GUIDs for TreeNode representing specified types of Dimension
86 Standard_EXPORT static Standard_GUID DimensionRefSecondGUID() ;
88 //! Return GUIDs for TreeNode representing specified types of GeomTolerance
89 Standard_EXPORT static Standard_GUID GeomToleranceRefGUID() ;
91 //! Return GUIDs for TreeNode representing specified types of datum
92 Standard_EXPORT static Standard_GUID DatumRefGUID();
94 //! Return GUIDs for TreeNode representing connections Datum-Toler
95 Standard_EXPORT static Standard_GUID DatumTolRefGUID();
97 Standard_EXPORT static Standard_GUID LayerRefGUID();
99 Standard_EXPORT static Standard_GUID MaterialRefGUID();
101 //! Return GUIDs for representing notes
102 Standard_EXPORT static Standard_GUID NoteRefGUID();
104 Standard_EXPORT static Standard_GUID InvisibleGUID();
106 //! Returns GUID for UAttribute identifying external reference on no-step file
107 Standard_EXPORT static Standard_GUID ExternRefGUID();
109 //! Returns GUID for UAttribute identifying specified higher usage occurrence
110 Standard_EXPORT static Standard_GUID SHUORefGUID();
112 //! Return GUIDs for TreeNode representing specified types of View
113 Standard_EXPORT static Standard_GUID ViewRefGUID();
115 //! Return GUIDs for TreeNode representing specified types of View
116 Standard_EXPORT static Standard_GUID ViewRefShapeGUID();
118 //! Return GUIDs for TreeNode representing specified types of View
119 Standard_EXPORT static Standard_GUID ViewRefGDTGUID();
121 //! Return GUIDs for TreeNode representing specified types of View
122 Standard_EXPORT static Standard_GUID ViewRefPlaneGUID();
124 //! Return GUIDs for GraphNode representing specified types of View
125 Standard_EXPORT static Standard_GUID ViewRefNoteGUID();
126 Standard_EXPORT static Standard_GUID ViewRefAnnotationGUID();
128 //! Returns GUID for UAttribute identifying lock flag
129 Standard_EXPORT static Standard_GUID LockGUID();
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;
170 #endif // _XCAFDoc_HeaderFile