summaryrefslogtreecommitdiff
path: root/inc/XCAFDoc_LayerTool.hxx
blob: 2e43d4762da0e9ec733d617b4175e733d85ea406 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _XCAFDoc_LayerTool_HeaderFile
#define _XCAFDoc_LayerTool_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_XCAFDoc_LayerTool_HeaderFile
#include <Handle_XCAFDoc_LayerTool.hxx>
#endif

#ifndef _Handle_XCAFDoc_ShapeTool_HeaderFile
#include <Handle_XCAFDoc_ShapeTool.hxx>
#endif
#ifndef _TDF_Attribute_HeaderFile
#include <TDF_Attribute.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TColStd_HSequenceOfExtendedString_HeaderFile
#include <Handle_TColStd_HSequenceOfExtendedString.hxx>
#endif
#ifndef _Handle_TDF_Attribute_HeaderFile
#include <Handle_TDF_Attribute.hxx>
#endif
#ifndef _Handle_TDF_RelocationTable_HeaderFile
#include <Handle_TDF_RelocationTable.hxx>
#endif
class XCAFDoc_ShapeTool;
class TDF_Label;
class Standard_GUID;
class TCollection_ExtendedString;
class TDF_LabelSequence;
class TColStd_HSequenceOfExtendedString;
class TopoDS_Shape;
class TDF_Attribute;
class TDF_RelocationTable;


//! Provides tools to store and retrieve attributes (Layers) <br>
//!          of TopoDS_Shape in and from TDocStd_Document <br>
//!          A Document is intended to hold different <br>
//!          attributes of ONE shape and it's sub-shapes <br>
class XCAFDoc_LayerTool : public TDF_Attribute {

public:

  
  Standard_EXPORT   XCAFDoc_LayerTool();
  //! Creates (if not exist) LayerTool. <br>
  Standard_EXPORT   static  Handle_XCAFDoc_LayerTool Set(const TDF_Label& L) ;
  
  Standard_EXPORT   static const Standard_GUID& GetID() ;
  //! returns the label under which Layers are stored <br>
  Standard_EXPORT     TDF_Label BaseLabel() const;
  //! Returns internal XCAFDoc_ShapeTool tool <br>
  Standard_EXPORT    const Handle_XCAFDoc_ShapeTool& ShapeTool() ;
  //! Returns True if label belongs to a Layertable and <br>
//!          is a Layer definition <br>
  Standard_EXPORT     Standard_Boolean IsLayer(const TDF_Label& lab) const;
  //! Returns Layer defined by label lab <br>
//!          Returns False if the label is not in Layertable <br>
//!          or does not define a Layer <br>
  Standard_EXPORT     Standard_Boolean GetLayer(const TDF_Label& lab,TCollection_ExtendedString& aLayer) const;
  //! Finds a Layer definition in a Layertable and returns <br>
//!          its label if found <br>
//!          Returns False if Layer is not found in Layertable <br>
  Standard_EXPORT     Standard_Boolean FindLayer(const TCollection_ExtendedString& aLayer,TDF_Label& lab) const;
  //! Finds a Layer definition in a Layertable and returns <br>
//!          its label if found (or Null label else) <br>
  Standard_EXPORT     TDF_Label FindLayer(const TCollection_ExtendedString& aLayer) const;
  //! Adds a Layer definition to a Layertable and returns <br>
//!          its label (returns existing label if the same Layer <br>
//!          is already defined) <br>
  Standard_EXPORT     TDF_Label AddLayer(const TCollection_ExtendedString& aLayer) const;
  //! Removes Layer from the Layertable <br>
  Standard_EXPORT     void RemoveLayer(const TDF_Label& lab) const;
  //! Returns a sequence of Layers currently stored <br>
//!          in the Layertable <br>
  Standard_EXPORT     void GetLayerLabels(TDF_LabelSequence& Labels) const;
  //! Sets a link from label <L> to Layer <br>
//!          defined by <LayerL> <br>
//!          optional parametr <shapeInOneLayer> show could shape be <br>
//!          in number of layers or only in one. <br>
  Standard_EXPORT     void SetLayer(const TDF_Label& L,const TDF_Label& LayerL,const Standard_Boolean shapeInOneLayer = Standard_False) const;
  //! Sets a link from label <L> to Layer <aLayer> <br>
//!          in the Layertable <br>
//!          Adds a Layer as necessary <br>
//!          optional parametr <shapeInOneLayer> show could shape be <br>
//!          in number of layers or only in one. <br>
  Standard_EXPORT     void SetLayer(const TDF_Label& L,const TCollection_ExtendedString& aLayer,const Standard_Boolean shapeInOneLayer = Standard_False) const;
  //! Removes a link from label <L> to all layers <br>
  Standard_EXPORT     void UnSetLayers(const TDF_Label& L) const;
  //! Remove link from label <L> and Layer <aLayer>. <br>
//!          returns FALSE if no such layer. <br>
  Standard_EXPORT     Standard_Boolean UnSetOneLayer(const TDF_Label& L,const TCollection_ExtendedString& aLayer) const;
  //! Returns True if label <L> has a Layer assosiated <br>
//!          with the <aLayer>. <br>
  Standard_EXPORT     Standard_Boolean IsSet(const TDF_Label& L,const TCollection_ExtendedString& aLayer) const;
  //! Return sequence of strings <aLayerS> that assosiated with label <L>. <br>
  Standard_EXPORT     Standard_Boolean GetLayers(const TDF_Label& L,Handle(TColStd_HSequenceOfExtendedString)& aLayerS) ;
  //! Return sequence of strings that assosiated with label <L>. <br>
  Standard_EXPORT     Handle_TColStd_HSequenceOfExtendedString GetLayers(const TDF_Label& L) ;
  //! Return sequanese of shape labels that assigned with layers to <ShLabels>. <br>
  Standard_EXPORT     void GetShapesOfLayer(const TDF_Label& layerL,TDF_LabelSequence& ShLabels) const;
  //! Return TRUE if layer is visible, FALSE if invisible. <br>
  Standard_EXPORT     Standard_Boolean IsVisible(const TDF_Label& layerL) const;
  //! Set the visibility of layer. If layer is invisible when on it's layer <br>
//!          will set UAttribute with corresponding GUID. <br>
  Standard_EXPORT     void SetVisibility(const TDF_Label& layerL,const Standard_Boolean isvisible = Standard_True) const;
  //! Sets a link from label that containig shape <Sh> <br>
//!          with layer that situated at label <LayerL>. <br>
//!          optional parametr <shapeInOneLayer> show could shape be <br>
//!          in number of layers or only in one. <br>
//!          return FALSE if no such shape <Sh> or label <LayerL> <br>
  Standard_EXPORT     Standard_Boolean SetLayer(const TopoDS_Shape& Sh,const TDF_Label& LayerL,const Standard_Boolean shapeInOneLayer = Standard_False) ;
  //! Sets a link from label that containig shape <Sh> <br>
//!          with layer <aLayer>. Add <aLayer> to LayerTable if nessesery. <br>
//!          optional parametr <shapeInOneLayer> show could shape be <br>
//!          in number of layers or only in one. <br>
//!          return FALSE if no such shape <Sh>. <br>
  Standard_EXPORT     Standard_Boolean SetLayer(const TopoDS_Shape& Sh,const TCollection_ExtendedString& aLayer,const Standard_Boolean shapeInOneLayer = Standard_False) ;
  //! Remove link between shape <Sh> and all Layers at LayerTable. <br>
//!          return FALSE if no such shape <Sh> in XCAF Document. <br>
  Standard_EXPORT     Standard_Boolean UnSetLayers(const TopoDS_Shape& Sh) ;
  //! Remove link between shape <Sh> and layer <aLayer>. <br>
//!          returns FALSE if no such layer <aLayer> or shape <Sh>. <br>
  Standard_EXPORT     Standard_Boolean UnSetOneLayer(const TopoDS_Shape& Sh,const TCollection_ExtendedString& aLayer) ;
  //! Returns True if shape <Sh> has a Layer assosiated <br>
//!          with the <aLayer>. <br>
  Standard_EXPORT     Standard_Boolean IsSet(const TopoDS_Shape& Sh,const TCollection_ExtendedString& aLayer) ;
  //! Return sequence of strings <aLayerS> that assosiated with shape <Sh>. <br>
  Standard_EXPORT     Standard_Boolean GetLayers(const TopoDS_Shape& Sh,Handle(TColStd_HSequenceOfExtendedString)& aLayerS) ;
  //! Return sequence of strings that assosiated with shape <Sh>. <br>
  Standard_EXPORT     Handle_TColStd_HSequenceOfExtendedString GetLayers(const TopoDS_Shape& Sh) ;
  
  Standard_EXPORT    const Standard_GUID& ID() const;
  
  Standard_EXPORT     void Restore(const Handle(TDF_Attribute)& with) ;
  
  Standard_EXPORT     Handle_TDF_Attribute NewEmpty() const;
  
  Standard_EXPORT     void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const;




  DEFINE_STANDARD_RTTI(XCAFDoc_LayerTool)

protected:




private: 


Handle_XCAFDoc_ShapeTool myShapeTool;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif