File indexing completed on 2025-01-18 10:05:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _TDataStd_IntPackedMap_HeaderFile
0017 #define _TDataStd_IntPackedMap_HeaderFile
0018
0019 #include <Standard.hxx>
0020
0021 #include <Standard_Boolean.hxx>
0022 #include <TDF_Attribute.hxx>
0023 #include <TColStd_HPackedMapOfInteger.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <Standard_OStream.hxx>
0026
0027 class Standard_GUID;
0028 class TDF_Label;
0029 class TDF_RelocationTable;
0030 class TDF_DeltaOnModification;
0031
0032 class TDataStd_IntPackedMap;
0033 DEFINE_STANDARD_HANDLE(TDataStd_IntPackedMap, TDF_Attribute)
0034
0035
0036 class TDataStd_IntPackedMap : public TDF_Attribute
0037 {
0038 friend class TDataStd_DeltaOnModificationOfIntPackedMap;
0039 DEFINE_STANDARD_RTTIEXT(TDataStd_IntPackedMap, TDF_Attribute)
0040 public:
0041
0042
0043
0044
0045 Standard_EXPORT static const Standard_GUID& GetID();
0046
0047
0048
0049
0050
0051
0052
0053
0054 Standard_EXPORT static Handle(TDataStd_IntPackedMap) Set (const TDF_Label& label, const Standard_Boolean isDelta = Standard_False);
0055
0056 Standard_EXPORT TDataStd_IntPackedMap();
0057
0058 Standard_EXPORT Standard_Boolean ChangeMap (const Handle(TColStd_HPackedMapOfInteger)& theMap);
0059
0060 Standard_EXPORT Standard_Boolean ChangeMap (const TColStd_PackedMapOfInteger& theMap);
0061
0062 const TColStd_PackedMapOfInteger& GetMap() const { return myMap->Map(); }
0063
0064 const Handle(TColStd_HPackedMapOfInteger)& GetHMap() const { return myMap; }
0065
0066 Standard_EXPORT Standard_Boolean Clear();
0067
0068 Standard_EXPORT Standard_Boolean Add (const Standard_Integer theKey);
0069
0070 Standard_EXPORT Standard_Boolean Remove (const Standard_Integer theKey);
0071
0072 Standard_EXPORT Standard_Boolean Contains (const Standard_Integer theKey) const;
0073
0074 Standard_Integer Extent() const { return myMap->Map().Extent(); }
0075
0076 Standard_Boolean IsEmpty() const { return myMap->Map().IsEmpty(); }
0077
0078 Standard_Boolean GetDelta() const { return myIsDelta; }
0079
0080
0081 void SetDelta (const Standard_Boolean isDelta) { myIsDelta = isDelta; }
0082
0083 Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
0084
0085 Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
0086
0087 Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
0088
0089 Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
0090
0091 Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
0092
0093
0094
0095 Standard_EXPORT virtual Handle(TDF_DeltaOnModification) DeltaOnModification (const Handle(TDF_Attribute)& anOldAttribute) const Standard_OVERRIDE;
0096
0097
0098 Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
0099
0100 private:
0101
0102 void RemoveMap() { myMap.Nullify(); }
0103
0104 private:
0105
0106 Handle(TColStd_HPackedMapOfInteger) myMap;
0107 Standard_Boolean myIsDelta;
0108
0109 };
0110
0111 #endif