summaryrefslogtreecommitdiff
path: root/inc/TDataXtd_Constraint.hxx
blob: aa797d6c724c8f8b6fda3cf48d773dabcc0fb473 (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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
// 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 _TDataXtd_Constraint_HeaderFile
#define _TDataXtd_Constraint_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_TDataXtd_Constraint_HeaderFile
#include <Handle_TDataXtd_Constraint.hxx>
#endif

#ifndef _TDataXtd_ConstraintEnum_HeaderFile
#include <TDataXtd_ConstraintEnum.hxx>
#endif
#ifndef _Handle_TDataStd_Real_HeaderFile
#include <Handle_TDataStd_Real.hxx>
#endif
#ifndef _Handle_TDF_Attribute_HeaderFile
#include <Handle_TDF_Attribute.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TDF_Attribute_HeaderFile
#include <TDF_Attribute.hxx>
#endif
#ifndef _Handle_TNaming_NamedShape_HeaderFile
#include <Handle_TNaming_NamedShape.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_TDF_RelocationTable_HeaderFile
#include <Handle_TDF_RelocationTable.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
#ifndef _Handle_TDF_DataSet_HeaderFile
#include <Handle_TDF_DataSet.hxx>
#endif
class TDataStd_Real;
class TDF_Attribute;
class Standard_GUID;
class TDF_Label;
class TNaming_NamedShape;
class TDF_LabelList;
class TDF_RelocationTable;
class TDF_DataSet;


//! The groundwork to define constraint attributes. <br>
//! The constraint attribute contains the following sorts of data: <br>
//! -   Type whether the constraint attribute is a <br>
//!   geometric constraint or a dimension <br>
//! -   Value the real number value of a numeric <br>
//!   constraint such as an angle or a radius <br>
//! -   Geometries to identify the geometries <br>
//!   underlying the topological attributes which <br>
//!   define the constraint (up to 4) <br>
//! -   Plane for 2D constraints. <br>
class TDataXtd_Constraint : public TDF_Attribute {

public:

  //! Returns the GUID for constraints. <br>
  Standard_EXPORT   static const Standard_GUID& GetID() ;
  //!  Finds or creates the 2D constraint attribute <br>
//! defined by the planar topological attribute plane <br>
//! and the label label. <br>//! Constraint methods <br>
//!          ================== <br>
  Standard_EXPORT   static  Handle_TDataXtd_Constraint Set(const TDF_Label& label) ;
  
  Standard_EXPORT   TDataXtd_Constraint();
  
//! Finds or creates the constraint attribute defined <br>
//! by the topological attribute G1 and the constraint type type. <br>
  Standard_EXPORT     void Set(const TDataXtd_ConstraintEnum type,const Handle(TNaming_NamedShape)& G1) ;
  
//! Finds or creates the constraint attribute defined <br>
//! by the topological attributes G1 and G2, and by <br>
//! the constraint type type. <br>
  Standard_EXPORT     void Set(const TDataXtd_ConstraintEnum type,const Handle(TNaming_NamedShape)& G1,const Handle(TNaming_NamedShape)& G2) ;
  
//! Finds or creates the constraint attribute defined <br>
//! by the topological attributes G1, G2 and G3, and <br>
//! by the constraint type type. <br>
  Standard_EXPORT     void Set(const TDataXtd_ConstraintEnum type,const Handle(TNaming_NamedShape)& G1,const Handle(TNaming_NamedShape)& G2,const Handle(TNaming_NamedShape)& G3) ;
  
//! Finds or creates the constraint attribute defined <br>
//! by the topological attributes G1, G2, G3 and G4, <br>
//! and by the constraint type type. <br>//! methods to read constraint fields <br>
//!          ================================= <br>
  Standard_EXPORT     void Set(const TDataXtd_ConstraintEnum type,const Handle(TNaming_NamedShape)& G1,const Handle(TNaming_NamedShape)& G2,const Handle(TNaming_NamedShape)& G3,const Handle(TNaming_NamedShape)& G4) ;
  
//! Returns true if this constraint attribute is valid. <br>
//! By default, true is returned. <br>
//! When the value of a dimension is changed or <br>
//! when a geometry is moved, false is returned <br>
//! until the solver sets it back to true. <br>
  Standard_EXPORT     Standard_Boolean Verified() const;
  
//! Returns the type of constraint. <br>
//! This will be an element of the <br>
//! TDataXtd_ConstraintEnum enumeration. <br>
  Standard_EXPORT     TDataXtd_ConstraintEnum GetType() const;
  //!    Returns true if this constraint attribute is <br>
//! two-dimensional. <br>
  Standard_EXPORT     Standard_Boolean IsPlanar() const;
  //! Returns the topological attribute of the plane <br>
//! used for planar - i.e., 2D - constraints. <br>
//! This plane is attached to another label. <br>
//! If the constraint is not planar, in other words, 3D, <br>
//! this function will return a null handle. <br>
  Standard_EXPORT    const Handle_TNaming_NamedShape& GetPlane() const;
  //! Returns true if this constraint attribute is a <br>
//! dimension, and therefore has a value. <br>
  Standard_EXPORT     Standard_Boolean IsDimension() const;
  //! Returns the value of a dimension. <br>
//! This value is a reference to a TDataStd_Real attribute. <br>
//! If the attribute is not a dimension, this value will <br>
//! be 0. Use IsDimension to test this condition. <br>
  Standard_EXPORT    const Handle_TDataStd_Real& GetValue() const;
  
//! Returns the number of geometry attributes in this constraint attribute. <br>
//! This number will be between 1 and 4. <br>
  Standard_EXPORT     Standard_Integer NbGeometries() const;
  //! Returns the integer index Index used to access <br>
//! the array of the constraint or stored geometries of a dimension <br>
//!  Index has a value between 1 and 4. <br>//! methods to write constraint fields (use builder) <br>
//!          ================================== <br>
  Standard_EXPORT     Handle_TNaming_NamedShape GetGeometry(const Standard_Integer Index) const;
  //! Removes the geometries involved in the <br>
//! constraint or dimension from the array of <br>
//! topological attributes where they are stored. <br>
  Standard_EXPORT     void ClearGeometries() ;
  //! Finds or creates the type of constraint CTR. <br>
  Standard_EXPORT     void SetType(const TDataXtd_ConstraintEnum CTR) ;
  //! Finds or creates the plane of the 2D constraint <br>
//! attribute, defined by the planar topological attribute plane. <br>
  Standard_EXPORT     void SetPlane(const Handle(TNaming_NamedShape)& plane) ;
  
//! Finds or creates the real number value V of the dimension constraint attribute. <br>
  Standard_EXPORT     void SetValue(const Handle(TDataStd_Real)& V) ;
  
//! Finds or creates the underlying geometry of the <br>
//! constraint defined by the topological attribute G <br>
//! and the integer index Index. <br>
  Standard_EXPORT     void SetGeometry(const Standard_Integer Index,const Handle(TNaming_NamedShape)& G) ;
  
//! Returns true if this constraint attribute defined by status is valid. <br>
//! By default, true is returned. <br>
//! When the value of a dimension is changed or <br>
//! when a geometry is moved, false is returned until <br>
//! the solver sets it back to true. <br>
//! If status is false, Verified is set to false. <br>
  Standard_EXPORT     void Verified(const Standard_Boolean status) ;
  
  Standard_EXPORT     void Inverted(const Standard_Boolean status) ;
  
  Standard_EXPORT     Standard_Boolean Inverted() const;
  
  Standard_EXPORT     void Reversed(const Standard_Boolean status) ;
  
  Standard_EXPORT     Standard_Boolean Reversed() const;
  //! collects constraints on Childs for label <aLabel> <br>
  Standard_EXPORT   static  void CollectChildConstraints(const TDF_Label& aLabel,TDF_LabelList& TheList) ;
  
  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;
  
  Standard_EXPORT   virtual  Standard_OStream& Dump(Standard_OStream& anOS) const;
  
  Standard_EXPORT   virtual  void References(const Handle(TDF_DataSet)& DS) const;




  DEFINE_STANDARD_RTTI(TDataXtd_Constraint)

protected:




private: 


TDataXtd_ConstraintEnum myType;
Handle_TDataStd_Real myValue;
Handle_TDF_Attribute myGeometries[4];
Handle_TDF_Attribute myPlane;
Standard_Boolean myIsReversed;
Standard_Boolean myIsInverted;
Standard_Boolean myIsVerified;


};





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


#endif