0026689: Necessary to improve STEPCAFControl_Reader to read GD&T data from STEP model...
[occt.git] / src / XCAFDoc / XCAFDoc.hxx
CommitLineData
42cf5bc1 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>
24class Standard_GUID;
25class XCAFDoc_DocumentTool;
26class XCAFDoc_Location;
27class XCAFDoc_Color;
28class XCAFDoc_DimTol;
9ebaae37 29class XCAFDoc_Dimension;
30class XCAFDoc_GeomTolerance;
42cf5bc1 31class XCAFDoc_Datum;
32class XCAFDoc_Material;
33class XCAFDoc_Volume;
34class XCAFDoc_Area;
35class XCAFDoc_Centroid;
36class XCAFDoc_ShapeTool;
37class XCAFDoc_ShapeMapTool;
38class XCAFDoc_ColorTool;
39class XCAFDoc_DimTolTool;
40class XCAFDoc_LayerTool;
41class XCAFDoc_MaterialTool;
42class XCAFDoc_GraphNode;
5f07d05d 43class XCAFDoc_Editor;
42cf5bc1 44
45
46//! Definition of general structure of DECAF document
47//! and tools to work with it
48//!
49//! The document is composed of sections, each section
50//! storing its own kind of data and managing by corresponding
51//! tool
52//! Some properties can be attached directly to shapes. These properties are:
53//! * Name (the standard definition from OCAF) - class TDataStd_Name
54//! * Centroid (for the validation of transfer) - class XCAFDoc_Centroid
55//! * Volume (for the validation of transfer) - class XCAFDoc_Volume
56//! * Area (for the validation of transfer) - class XCafDoc_Area
57//! Management of these attributes is realized by OCAF. For getting
58//! the attributes attached to a label the method class
59//! TDF_Label::FindAttribute() should be used.
60class XCAFDoc
61{
62public:
63
64 DEFINE_STANDARD_ALLOC
65
66
67 //! class for containing GraphNodes.
68 //! Returns GUID for UAttribute identifying assembly
69 Standard_EXPORT static Standard_GUID AssemblyGUID();
70
71 //! Returns GUID for TreeNode representing assembly link
72 Standard_EXPORT static Standard_GUID ShapeRefGUID();
73
74 //! Return GUIDs for TreeNode representing specified types of colors
75 Standard_EXPORT static Standard_GUID ColorRefGUID (const XCAFDoc_ColorType type);
76
77 //! Return GUIDs for TreeNode representing specified types of DGT
78 Standard_EXPORT static Standard_GUID DimTolRefGUID();
9ebaae37 79
80 //! Return GUIDs for TreeNode representing specified types of Dimension
1c9d3225 81 Standard_EXPORT static Standard_GUID DimensionRefFirstGUID() ;
82
83 //! Return GUIDs for TreeNode representing specified types of Dimension
84 Standard_EXPORT static Standard_GUID DimensionRefSecondGUID() ;
9ebaae37 85
86 //! Return GUIDs for TreeNode representing specified types of GeomTolerance
87 Standard_EXPORT static Standard_GUID GeomToleranceRefGUID() ;
42cf5bc1 88
89 //! Return GUIDs for TreeNode representing specified types of datum
90 Standard_EXPORT static Standard_GUID DatumRefGUID();
91
92 //! Return GUIDs for TreeNode representing connections Datum-Toler
93 Standard_EXPORT static Standard_GUID DatumTolRefGUID();
94
95 Standard_EXPORT static Standard_GUID LayerRefGUID();
96
97 Standard_EXPORT static Standard_GUID MaterialRefGUID();
98
99 Standard_EXPORT static Standard_GUID InvisibleGUID();
100
101 //! Returns GUID for UAttribute identifying external reference on no-step file
102 Standard_EXPORT static Standard_GUID ExternRefGUID();
103
104 //! Returns GUID for UAttribute identifying specified higher usage occurrence
105 Standard_EXPORT static Standard_GUID SHUORefGUID();
106
107
108
109
110protected:
111
112
113
114
115
116private:
117
118
119
120
121friend class XCAFDoc_DocumentTool;
122friend class XCAFDoc_Location;
123friend class XCAFDoc_Color;
124friend class XCAFDoc_DimTol;
125friend class XCAFDoc_Datum;
126friend class XCAFDoc_Material;
127friend class XCAFDoc_Volume;
128friend class XCAFDoc_Area;
129friend class XCAFDoc_Centroid;
130friend class XCAFDoc_ShapeTool;
131friend class XCAFDoc_ShapeMapTool;
132friend class XCAFDoc_ColorTool;
133friend class XCAFDoc_DimTolTool;
134friend class XCAFDoc_LayerTool;
135friend class XCAFDoc_MaterialTool;
136friend class XCAFDoc_GraphNode;
5f07d05d 137friend class XCAFDoc_Editor;
42cf5bc1 138
139};
140
141
142
143
144
145
146
147#endif // _XCAFDoc_HeaderFile