File indexing completed on 2026-09-19 09:29:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _TDataStd_TreeNode_HeaderFile
0018 #define _TDataStd_TreeNode_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <TDataStd_PtrTreeNode.hxx>
0023 #include <Standard_GUID.hxx>
0024 #include <TDF_Attribute.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <Standard_OStream.hxx>
0027 class TDF_Label;
0028 class TDF_AttributeDelta;
0029 class TDF_RelocationTable;
0030 class TDF_DataSet;
0031
0032
0033
0034
0035
0036
0037
0038
0039 class TDataStd_TreeNode : public TDF_Attribute
0040 {
0041
0042 public:
0043
0044
0045
0046
0047 Standard_EXPORT static bool Find(const TDF_Label& L, occ::handle<TDataStd_TreeNode>& T);
0048
0049
0050
0051
0052
0053 Standard_EXPORT static occ::handle<TDataStd_TreeNode> Set(const TDF_Label& L);
0054
0055
0056
0057
0058
0059 Standard_EXPORT static occ::handle<TDataStd_TreeNode> Set(const TDF_Label& L,
0060 const Standard_GUID& ExplicitTreeID);
0061
0062
0063
0064
0065
0066 Standard_EXPORT static const Standard_GUID& GetDefaultTreeID();
0067
0068 Standard_EXPORT TDataStd_TreeNode();
0069
0070
0071
0072 Standard_EXPORT bool Append(const occ::handle<TDataStd_TreeNode>& Child);
0073
0074
0075
0076 Standard_EXPORT bool Prepend(const occ::handle<TDataStd_TreeNode>& Child);
0077
0078
0079
0080 Standard_EXPORT bool InsertBefore(const occ::handle<TDataStd_TreeNode>& Node);
0081
0082
0083
0084 Standard_EXPORT bool InsertAfter(const occ::handle<TDataStd_TreeNode>& Node);
0085
0086
0087
0088 Standard_EXPORT bool Remove();
0089
0090
0091
0092 Standard_EXPORT int Depth() const;
0093
0094
0095
0096
0097 Standard_EXPORT int NbChildren(const bool allLevels = false) const;
0098
0099
0100
0101
0102 Standard_EXPORT bool IsAscendant(const occ::handle<TDataStd_TreeNode>& of) const;
0103
0104
0105
0106
0107 Standard_EXPORT bool IsDescendant(const occ::handle<TDataStd_TreeNode>& of) const;
0108
0109
0110
0111 Standard_EXPORT bool IsRoot() const;
0112
0113
0114 Standard_EXPORT occ::handle<TDataStd_TreeNode> Root() const;
0115
0116
0117 Standard_EXPORT bool IsFather(const occ::handle<TDataStd_TreeNode>& of) const;
0118
0119
0120 Standard_EXPORT bool IsChild(const occ::handle<TDataStd_TreeNode>& of) const;
0121
0122
0123 bool HasFather() const;
0124
0125
0126 Standard_EXPORT occ::handle<TDataStd_TreeNode> Father() const;
0127
0128
0129 bool HasNext() const;
0130
0131
0132
0133
0134
0135 Standard_EXPORT occ::handle<TDataStd_TreeNode> Next() const;
0136
0137
0138 bool HasPrevious() const;
0139
0140
0141
0142
0143 Standard_EXPORT occ::handle<TDataStd_TreeNode> Previous() const;
0144
0145
0146 bool HasFirst() const;
0147
0148
0149 Standard_EXPORT occ::handle<TDataStd_TreeNode> First() const;
0150
0151
0152 bool HasLast() const;
0153
0154
0155 Standard_EXPORT occ::handle<TDataStd_TreeNode> Last();
0156
0157
0158
0159
0160 Standard_EXPORT occ::handle<TDataStd_TreeNode> FindLast();
0161
0162 Standard_EXPORT void SetTreeID(const Standard_GUID& explicitID);
0163
0164 Standard_EXPORT void SetFather(const occ::handle<TDataStd_TreeNode>& F);
0165
0166 Standard_EXPORT void SetNext(const occ::handle<TDataStd_TreeNode>& F);
0167
0168 Standard_EXPORT void SetPrevious(const occ::handle<TDataStd_TreeNode>& F);
0169
0170 Standard_EXPORT void SetFirst(const occ::handle<TDataStd_TreeNode>& F);
0171
0172
0173
0174 Standard_EXPORT void SetLast(const occ::handle<TDataStd_TreeNode>& F);
0175
0176
0177 Standard_EXPORT void AfterAddition() override;
0178
0179
0180 Standard_EXPORT void BeforeForget() override;
0181
0182
0183 Standard_EXPORT void AfterResume() override;
0184
0185
0186 Standard_EXPORT bool BeforeUndo(const occ::handle<TDF_AttributeDelta>& anAttDelta,
0187 const bool forceIt = false) override;
0188
0189
0190
0191
0192 Standard_EXPORT bool AfterUndo(const occ::handle<TDF_AttributeDelta>& anAttDelta,
0193 const bool forceIt = false) override;
0194
0195
0196 Standard_EXPORT const Standard_GUID& ID() const override;
0197
0198 Standard_EXPORT void Restore(const occ::handle<TDF_Attribute>& with) override;
0199
0200 Standard_EXPORT void Paste(const occ::handle<TDF_Attribute>& into,
0201 const occ::handle<TDF_RelocationTable>& RT) const override;
0202
0203 Standard_EXPORT occ::handle<TDF_Attribute> NewEmpty() const override;
0204
0205 Standard_EXPORT void References(const occ::handle<TDF_DataSet>& aDataSet) const override;
0206
0207 Standard_EXPORT Standard_OStream& Dump(Standard_OStream& anOS) const override;
0208
0209
0210 Standard_EXPORT void DumpJson(Standard_OStream& theOStream, int theDepth = -1) const override;
0211
0212 friend class TDataStd_ChildNodeIterator;
0213
0214 DEFINE_STANDARD_RTTIEXT(TDataStd_TreeNode, TDF_Attribute)
0215
0216 private:
0217 TDataStd_PtrTreeNode myFather;
0218 TDataStd_PtrTreeNode myPrevious;
0219 TDataStd_PtrTreeNode myNext;
0220 TDataStd_PtrTreeNode myFirst;
0221 TDataStd_PtrTreeNode myLast;
0222 Standard_GUID myTreeID;
0223 };
0224
0225 #include <TDataStd_TreeNode.lxx>
0226
0227 #endif