1 // Created by: DAUTRY Philippe 2 // Copyright (c) 1997-1999 Matra Datavision 3 // Copyright (c) 1999-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 _TDF_HeaderFile 17 #define _TDF_HeaderFile 18 19 #include <Standard.hxx> 20 #include <Standard_DefineAlloc.hxx> 21 #include <Standard_Handle.hxx> 22 23 #include <Standard_Boolean.hxx> 24 class Standard_GUID; 25 class TCollection_ExtendedString; 26 class TDF_Data; 27 class TDF_Label; 28 class TDF_Attribute; 29 class TDF_TagSource; 30 class TDF_Reference; 31 class TDF_ClosureMode; 32 class TDF_ClosureTool; 33 class TDF_CopyTool; 34 class TDF_CopyLabel; 35 class TDF_ComparisonTool; 36 class TDF_Transaction; 37 class TDF_Delta; 38 class TDF_AttributeDelta; 39 class TDF_DeltaOnAddition; 40 class TDF_DeltaOnForget; 41 class TDF_DeltaOnResume; 42 class TDF_DeltaOnRemoval; 43 class TDF_DeltaOnModification; 44 class TDF_DefaultDeltaOnRemoval; 45 class TDF_DefaultDeltaOnModification; 46 class TDF_ChildIterator; 47 class TDF_ChildIDIterator; 48 class TDF_DataSet; 49 class TDF_RelocationTable; 50 class TDF_Tool; 51 class TDF_LabelMapHasher; 52 class TDF_IDFilter; 53 54 55 //! This package provides data framework for binding 56 //! features and data structures. 57 //! 58 //! The feature structure is a tree used to bind 59 //! semantic information about each feature together. 60 //! 61 //! The only one concrete attribute defined in this 62 //! package is the TagSource attribute.This attribute 63 //! is used for random creation of child labels under 64 //! a given label. Tags are randomly delivered. 65 class TDF 66 { 67 public: 68 69 DEFINE_STANDARD_ALLOC 70 71 72 //! Returns ID "00000000-0000-0000-0000-000000000000", 73 //! sometimes used as null ID. 74 Standard_EXPORT static const Standard_GUID& LowestID(); 75 76 //! Returns ID "ffffffff-ffff-ffff-ffff-ffffffffffff". 77 Standard_EXPORT static const Standard_GUID& UppestID(); 78 79 //! Sets link between GUID and ProgID in hidden DataMap 80 Standard_EXPORT static void AddLinkGUIDToProgID (const Standard_GUID& ID, const TCollection_ExtendedString& ProgID); 81 82 //! Returns True if there is GUID for given <ProgID> then GUID is returned in <ID> 83 Standard_EXPORT static Standard_Boolean GUIDFromProgID (const TCollection_ExtendedString& ProgID, Standard_GUID& ID); 84 85 //! Returns True if there is ProgID for given <ID> then ProgID is returned in <ProgID> 86 Standard_EXPORT static Standard_Boolean ProgIDFromGUID (const Standard_GUID& ID, TCollection_ExtendedString& ProgID); 87 88 89 90 91 protected: 92 93 94 95 96 97 private: 98 99 100 101 102 friend class TDF_Data; 103 friend class TDF_Label; 104 friend class TDF_Attribute; 105 friend class TDF_TagSource; 106 friend class TDF_Reference; 107 friend class TDF_ClosureMode; 108 friend class TDF_ClosureTool; 109 friend class TDF_CopyTool; 110 friend class TDF_CopyLabel; 111 friend class TDF_ComparisonTool; 112 friend class TDF_Transaction; 113 friend class TDF_Delta; 114 friend class TDF_AttributeDelta; 115 friend class TDF_DeltaOnAddition; 116 friend class TDF_DeltaOnForget; 117 friend class TDF_DeltaOnResume; 118 friend class TDF_DeltaOnRemoval; 119 friend class TDF_DeltaOnModification; 120 friend class TDF_DefaultDeltaOnRemoval; 121 friend class TDF_DefaultDeltaOnModification; 122 friend class TDF_ChildIterator; 123 friend class TDF_ChildIDIterator; 124 friend class TDF_DataSet; 125 friend class TDF_RelocationTable; 126 friend class TDF_Tool; 127 friend class TDF_LabelMapHasher; 128 friend class TDF_IDFilter; 129 130 }; 131 132 133 134 135 136 137 138 #endif // _TDF_HeaderFile 139