0028714: Dimension of TDataStd_Real is not serialized to document
[occt.git] / src / TDataStd / TDataStd_Real.cxx
index 3a7affe..4f4f229 100644 (file)
@@ -36,6 +36,23 @@ const Standard_GUID& TDataStd_Real::GetID()
   return TDataStd_RealID;
 }
 
+//=======================================================================
+//function : SetAttr
+//purpose  : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_Real) SetAttr(const TDF_Label&     label,
+                                     const Standard_Real  V,
+                                     const Standard_GUID& theGuid)
+{
+  Handle(TDataStd_Real) A;
+  if (!label.FindAttribute(theGuid, A)) {
+    A = new TDataStd_Real ();
+    A->SetID(theGuid);
+    label.AddAttribute(A);
+  }
+  A->Set (V); 
+  return A;
+}
 
 //=======================================================================
 //function : Set
@@ -45,14 +62,7 @@ const Standard_GUID& TDataStd_Real::GetID()
 Handle(TDataStd_Real) TDataStd_Real::Set (const TDF_Label&    L,
                                           const Standard_Real V) 
 {
-  Handle(TDataStd_Real) A;
-  if (!L.FindAttribute(TDataStd_Real::GetID(), A)) {
-    A = new TDataStd_Real ();
-   A->SetID(GetID());
-    L.AddAttribute(A);
-  }
-  A->Set (V); 
-  return A;
+  return SetAttr(L, V, GetID());
 }
 
 //=======================================================================
@@ -60,17 +70,11 @@ Handle(TDataStd_Real) TDataStd_Real::Set (const TDF_Label&    L,
 //purpose  : User defined attribute
 //=======================================================================
 
-Handle(TDataStd_Real) TDataStd_Real::Set (const TDF_Label&    L, const Standard_GUID& theGuid,
+Handle(TDataStd_Real) TDataStd_Real::Set (const TDF_Label&    L,
+                                          const Standard_GUID& theGuid,
                                           const Standard_Real V) 
 {
-  Handle(TDataStd_Real) A;
-  if (!L.FindAttribute(theGuid, A)) {
-    A = new TDataStd_Real ();
-    A->SetID(theGuid);
-    L.AddAttribute(A);
-  }
-  A->Set (V); 
-  return A;
+  return SetAttr(L, V, theGuid);
 }
 
 //=======================================================================
@@ -80,8 +84,7 @@ Handle(TDataStd_Real) TDataStd_Real::Set (const TDF_Label&    L, const Standard_
 
 TDataStd_Real::TDataStd_Real ()
      : myValue     (RealFirst()),
-       myDimension (TDataStd_SCALAR), 
-       myID (GetID())
+       myDimension (TDataStd_SCALAR)
 {}
 
 
@@ -172,16 +175,24 @@ void TDataStd_Real::SetID( const Standard_GUID&  theGuid)
   Backup();
   myID = theGuid;
 }
+
+//=======================================================================
+//function : SetID
+//purpose  : sets default ID
+//=======================================================================
+void TDataStd_Real::SetID()
+{
+  Backup();
+  myID = GetID();
+}
 //=======================================================================
 //function : NewEmpty
 //purpose  : 
 //=======================================================================
 
 Handle(TDF_Attribute) TDataStd_Real::NewEmpty () const
-{  
-  Handle(TDataStd_Real) Att = new TDataStd_Real();
-  Att->SetID(myID);
-  return Att; 
+{
+  return new TDataStd_Real();
 }
 
 //=======================================================================
@@ -193,7 +204,9 @@ void TDataStd_Real::Restore(const Handle(TDF_Attribute)& With)
 {
   Handle(TDataStd_Real) R = Handle(TDataStd_Real)::DownCast (With);
   myValue = R->Get();
+  Standard_DISABLE_DEPRECATION_WARNINGS
   myDimension = R->GetDimension();
+  Standard_ENABLE_DEPRECATION_WARNINGS
   myID = R->ID();
 }
 
@@ -209,7 +222,9 @@ void TDataStd_Real::Paste (const Handle(TDF_Attribute)& Into,
 { 
   Handle(TDataStd_Real) R = Handle(TDataStd_Real)::DownCast (Into);
   R->Set(myValue);
+  Standard_DISABLE_DEPRECATION_WARNINGS
   R->SetDimension(myDimension);
+  Standard_ENABLE_DEPRECATION_WARNINGS
   R->SetID(myID);
 }
 
@@ -221,7 +236,9 @@ void TDataStd_Real::Paste (const Handle(TDF_Attribute)& Into,
 Standard_OStream& TDataStd_Real::Dump (Standard_OStream& anOS) const
 {  
   anOS << "Real "; 
-  TDataStd::Print(GetDimension(),anOS);
+  Standard_DISABLE_DEPRECATION_WARNINGS
+  TDataStd::Print(GetDimension(), anOS);
+  Standard_ENABLE_DEPRECATION_WARNINGS
   anOS << myValue; 
   Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
   myID.ToCString(sguid);