0029902: Data Exchange, XCAF - provide extended Material definition for visualization...
[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 const Standard_GUID& AssemblyGUID();
72   
73   //! Returns GUID for TreeNode representing assembly link
74   Standard_EXPORT static const Standard_GUID& ShapeRefGUID();
75   
76   //! Return GUIDs for TreeNode representing specified types of colors
77   Standard_EXPORT static const Standard_GUID& ColorRefGUID (const XCAFDoc_ColorType type);
78   
79   //! Return GUIDs for TreeNode representing specified types of DGT
80   Standard_EXPORT static const Standard_GUID& DimTolRefGUID();
81
82   //! Return GUIDs for TreeNode representing specified types of Dimension
83   Standard_EXPORT static const Standard_GUID& DimensionRefFirstGUID() ;
84
85   //! Return GUIDs for TreeNode representing specified types of Dimension
86   Standard_EXPORT static const Standard_GUID& DimensionRefSecondGUID() ;
87
88   //! Return GUIDs for TreeNode representing specified types of GeomTolerance
89   Standard_EXPORT static const Standard_GUID& GeomToleranceRefGUID() ;
90   
91   //! Return GUIDs for TreeNode representing specified types of datum
92   Standard_EXPORT static const Standard_GUID& DatumRefGUID();
93   
94   //! Return GUIDs for TreeNode representing connections Datum-Toler
95   Standard_EXPORT static const Standard_GUID& DatumTolRefGUID();
96   
97   Standard_EXPORT static const Standard_GUID& LayerRefGUID();
98   
99   Standard_EXPORT static const Standard_GUID& MaterialRefGUID();
100
101   //! Return GUID for TreeNode representing Visualization Material.
102   Standard_EXPORT static const Standard_GUID& VisMaterialRefGUID();
103
104   //! Return GUIDs for representing notes
105   Standard_EXPORT static const Standard_GUID& NoteRefGUID();
106
107   Standard_EXPORT static const Standard_GUID& InvisibleGUID();
108
109   Standard_EXPORT static const Standard_GUID& ColorByLayerGUID();
110   
111   //! Returns GUID for UAttribute identifying external reference on no-step file
112   Standard_EXPORT static const Standard_GUID& ExternRefGUID();
113   
114   //! Returns GUID for UAttribute identifying specified higher usage occurrence
115   Standard_EXPORT static const Standard_GUID& SHUORefGUID();
116
117   //! Return GUIDs for TreeNode representing specified types of View
118   Standard_EXPORT static const Standard_GUID& ViewRefGUID();
119
120   //! Return GUIDs for TreeNode representing specified types of View
121   Standard_EXPORT static const Standard_GUID& ViewRefShapeGUID();
122
123   //! Return GUIDs for TreeNode representing specified types of View
124   Standard_EXPORT static const Standard_GUID& ViewRefGDTGUID();
125   
126   //! Return GUIDs for TreeNode representing specified types of View
127   Standard_EXPORT static const Standard_GUID& ViewRefPlaneGUID();
128
129   //! Return GUIDs for GraphNode representing specified types of View
130   Standard_EXPORT static const Standard_GUID& ViewRefNoteGUID();
131   Standard_EXPORT static const Standard_GUID& ViewRefAnnotationGUID();
132
133   //! Returns GUID for UAttribute identifying lock flag
134   Standard_EXPORT static const Standard_GUID& LockGUID();
135
136 };
137
138 #endif // _XCAFDoc_HeaderFile