]> OCCT Git - occt-copy.git/commitdiff
small corrections CR0-ipdm_aba
authorika <ika@opencascade.com>
Tue, 3 Nov 2015 14:47:18 +0000 (17:47 +0300)
committeraba <aba@opencascade.com>
Tue, 3 Nov 2015 14:51:47 +0000 (17:51 +0300)
src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx
src/XCAFDoc/XCAFDoc_Datum.cxx
src/XCAFDoc/XCAFDoc_Dimension.cxx
src/XCAFDoc/XCAFDoc_GeomTolerance.cxx

index 4d9f6cfc785a0ddd73c2b613149ee6de484d4a57..90adf723ad6f7ac977362f38ee1857714fc25bdd 100644 (file)
@@ -280,6 +280,7 @@ gp_Ax2 XCAFDimTolObjects_DatumObject::GetPlane() const
 void XCAFDimTolObjects_DatumObject::SetPlane(const gp_Ax2& thePlane)
 {
   myPlane = thePlane;
+  myHasPlane = Standard_True;
 }
 
 //=======================================================================
@@ -300,6 +301,7 @@ gp_Pnt XCAFDimTolObjects_DatumObject::GetPoint() const
 void XCAFDimTolObjects_DatumObject::SetPoint(const gp_Pnt& thePnt)
 {
   myPnt = thePnt;
+  myHasPnt = Standard_True;
 }
 
 //=======================================================================
index a604291e028aee21c446541f2a07479a929ada05..47a3698b1eb0db143ef781b0f3fa386eacd1896f 100644 (file)
@@ -276,18 +276,21 @@ void XCAFDoc_Datum::SetObject(const Handle(XCAFDimTolObjects_DatumObject)& theOb
     Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
-    gp_Ax2 anPln = theObject->GetPlane();
-    aLoc->SetValue(aLoc->Upper(),anPln.Location().X());
-    aLoc->SetValue(aLoc->Upper()+1,anPln.Location().Y());
-    aLoc->SetValue(aLoc->Upper()+2,anPln.Location().Z());
-
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
+    gp_Ax2 aPln = theObject->GetPlane();
+    Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aLocArr->SetValue(i, aPln.Location().Coord(i));
+    aLoc->ChangeArray(aLocArr);
+
+    Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aNArr->SetValue(i, aPln.Direction().Coord(i));
+    aN->ChangeArray(aNArr);
+
+    Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aRArr->SetValue(i, aPln.XDirection().Coord(i));
+    aR->ChangeArray(aRArr);
 
     Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
     Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
@@ -298,9 +301,10 @@ void XCAFDoc_Datum::SetObject(const Handle(XCAFDimTolObjects_DatumObject)& theOb
   {
     Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
     gp_Pnt aPnt = theObject->GetPoint();
-    aLoc->SetValue(aLoc->Upper(),aPnt.X());
-    aLoc->SetValue(aLoc->Upper()+1,aPnt.Y());
-    aLoc->SetValue(aLoc->Upper()+2,aPnt.Z());
+    Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aLocArr->SetValue(i, aPnt.Coord(i));
+    aLoc->ChangeArray(aLocArr);
     Label().FindChild(ChildLab_Pnt).AddAttribute(aLoc);
   }
 }
@@ -348,9 +352,9 @@ Handle(XCAFDimTolObjects_DatumObject) XCAFDoc_Datum::GetObject() const
     Label().FindChild(ChildLab_PlaneN).FindAttribute(TDataStd_RealArray::GetID(), aN) && aN->Length() == 3 &&
     Label().FindChild(ChildLab_PlaneRef).FindAttribute(TDataStd_RealArray::GetID(), aR) && aR->Length() == 3 )
   {
-    gp_Pnt aL(aLoc->Value(aLoc->Upper()), aLoc->Value(aLoc->Upper()+1), aLoc->Value(aLoc->Upper()+2));
-    gp_Dir aD(aN->Value(aN->Upper()), aN->Value(aN->Upper()+1), aN->Value(aN->Upper()+2));
-    gp_Dir aDR(aR->Value(aR->Upper()), aR->Value(aR->Upper()+1), aR->Value(aR->Upper()+2));
+    gp_Pnt aL(aLoc->Value(aLoc->Lower()), aLoc->Value(aLoc->Lower()+1), aLoc->Value(aLoc->Lower()+2));
+    gp_Dir aD(aN->Value(aN->Lower()), aN->Value(aN->Lower()+1), aN->Value(aN->Lower()+2));
+    gp_Dir aDR(aR->Value(aR->Lower()), aR->Value(aR->Lower()+1), aR->Value(aR->Lower()+2));
     gp_Ax2 anAx(aL, aD, aDR);
     anObj->SetPlane(anAx);
   }
@@ -358,7 +362,7 @@ Handle(XCAFDimTolObjects_DatumObject) XCAFDoc_Datum::GetObject() const
   Handle(TDataStd_RealArray) aPnt;
   if(Label().FindChild(ChildLab_Pnt).FindAttribute(TDataStd_RealArray::GetID(), aPnt) && aPnt->Length() == 3 )
   {
-    gp_Pnt aP(aLoc->Value(aPnt->Upper()), aPnt->Value(aPnt->Upper()+1), aPnt->Value(aPnt->Upper()+2));
+    gp_Pnt aP(aLoc->Value(aPnt->Lower()), aPnt->Value(aPnt->Lower()+1), aPnt->Value(aPnt->Lower()+2));
     anObj->SetPoint(aP);
   }
 
index f57dde590f5442ded52ac88c82462c088948af36..6a593db85f4dae47fe8b8b6ff45e133fae413faa 100644 (file)
@@ -192,18 +192,21 @@ void XCAFDoc_Dimension::SetObject (const Handle(XCAFDimTolObjects_DimensionObjec
     Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
-    gp_Ax2 anPln = theObject->GetPlane();
-    aLoc->SetValue(aLoc->Upper(),anPln.Location().X());
-    aLoc->SetValue(aLoc->Upper()+1,anPln.Location().Y());
-    aLoc->SetValue(aLoc->Upper()+2,anPln.Location().Z());
-
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-    aN->SetValue(aN->Upper()+1,anPln.Axis().Direction().Y());
-    aN->SetValue(aN->Upper()+2,anPln.Axis().Direction().Z());
-
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
-    aR->SetValue(aR->Upper()+1,anPln.Direction().Y());
-    aR->SetValue(aR->Upper()+2,anPln.Direction().Z());
+    gp_Ax2 aPln = theObject->GetPlane();
+    Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aLocArr->SetValue(i, aPln.Location().Coord(i));
+    aLoc->ChangeArray(aLocArr);
+
+    Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aNArr->SetValue(i, aPln.Direction().Coord(i));
+    aN->ChangeArray(aNArr);
+
+    Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aRArr->SetValue(i, aPln.XDirection().Coord(i));
+    aR->ChangeArray(aRArr);
 
     Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
     Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
@@ -282,9 +285,12 @@ Handle(XCAFDimTolObjects_DimensionObject) XCAFDoc_Dimension::GetObject()  const
   if(Label().FindChild(ChildLab_Pnts).FindAttribute(TDataStd_RealArray::GetID(), aPnts) 
      && !aPnts->Array().IsNull() && aPnts->Array()->Length() > 0)
   {
-    Handle(TColgp_HArray1OfPnt) aP = new TColgp_HArray1OfPnt(1,2);
+    Handle(TColgp_HArray1OfPnt) aP = new TColgp_HArray1OfPnt(1,aPnts->Array()->Length());
     aP->SetValue(1, gp_Pnt(aPnts->Array()->Value(1), aPnts->Array()->Value(2), aPnts->Array()->Value(3)));
-    aP->SetValue(2, gp_Pnt(aPnts->Array()->Value(4), aPnts->Array()->Value(5), aPnts->Array()->Value(6)));
+    if (aPnts->Array()->Length() == 2)
+    {
+      aP->SetValue(2, gp_Pnt(aPnts->Array()->Value(4), aPnts->Array()->Value(5), aPnts->Array()->Value(6)));
+    }
     anObj->SetPoints(aP);
   }
 
@@ -295,9 +301,9 @@ Handle(XCAFDimTolObjects_DimensionObject) XCAFDoc_Dimension::GetObject()  const
     Label().FindChild(ChildLab_PlaneN).FindAttribute(TDataStd_RealArray::GetID(), aN) && aN->Length() == 3 &&
     Label().FindChild(ChildLab_PlaneRef).FindAttribute(TDataStd_RealArray::GetID(), aR) && aR->Length() == 3 )
   {
-    gp_Pnt aL(aLoc->Value(aLoc->Upper()), aLoc->Value(aLoc->Upper()+1), aLoc->Value(aLoc->Upper()+2));
-    gp_Dir aD(aN->Value(aN->Upper()), aN->Value(aN->Upper()+1), aN->Value(aN->Upper()+2));
-    gp_Dir aDR(aR->Value(aR->Upper()), aR->Value(aR->Upper()+1), aR->Value(aR->Upper()+2));
+    gp_Pnt aL(aLoc->Value(aLoc->Lower()), aLoc->Value(aLoc->Lower()+1), aLoc->Value(aLoc->Lower()+2));
+    gp_Dir aD(aN->Value(aN->Lower()), aN->Value(aN->Lower()+1), aN->Value(aN->Lower()+2));
+    gp_Dir aDR(aR->Value(aR->Lower()), aR->Value(aR->Lower()+1), aR->Value(aR->Lower()+2));
     gp_Ax2 anAx(aL, aD, aDR);
     anObj->SetPlane(anAx);
   }
index cd2dd0856a8aa6d6061726991df5ced32a747ba2..8809e956693f02a85c4fb11057ea8b4175763bc3 100644 (file)
@@ -179,18 +179,21 @@ void XCAFDoc_GeomTolerance::SetObject (const Handle(XCAFDimTolObjects_GeomTolera
     Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
     Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
-    gp_Ax2 anPln = theObject->GetPlane();
-    aLoc->SetValue(aLoc->Upper(),anPln.Location().X());
-    aLoc->SetValue(aLoc->Upper()+1,anPln.Location().Y());
-    aLoc->SetValue(aLoc->Upper()+2,anPln.Location().Z());
-
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-    aN->SetValue(aN->Upper(),anPln.Axis().Direction().X());
-
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
-    aR->SetValue(aR->Upper(),anPln.Direction().X());
+    gp_Ax2 aPln = theObject->GetPlane();
+    Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aLocArr->SetValue(i, aPln.Location().Coord(i));
+    aLoc->ChangeArray(aLocArr);
+
+    Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aNArr->SetValue(i, aPln.Direction().Coord(i));
+    aN->ChangeArray(aNArr);
+
+    Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aRArr->SetValue(i, aPln.XDirection().Coord(i));
+    aR->ChangeArray(aRArr);
 
     Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
     Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
@@ -201,9 +204,10 @@ void XCAFDoc_GeomTolerance::SetObject (const Handle(XCAFDimTolObjects_GeomTolera
   {
     Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
     gp_Pnt aPnt = theObject->GetPoint();
-    aLoc->SetValue(aLoc->Upper(),aPnt.X());
-    aLoc->SetValue(aLoc->Upper()+1,aPnt.Y());
-    aLoc->SetValue(aLoc->Upper()+2,aPnt.Z());
+    Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+    for (Standard_Integer i = 1; i <= 3; i++)
+      aLocArr->SetValue(i, aPnt.Coord(i));
+    aLoc->ChangeArray(aLocArr);
     Label().FindChild(ChildLab_Pnt).AddAttribute(aLoc);
   }
 }
@@ -287,9 +291,9 @@ Handle(XCAFDimTolObjects_GeomToleranceObject) XCAFDoc_GeomTolerance::GetObject()
     Label().FindChild(ChildLab_PlaneN).FindAttribute(TDataStd_RealArray::GetID(), aN) && aN->Length() == 3 &&
     Label().FindChild(ChildLab_PlaneRef).FindAttribute(TDataStd_RealArray::GetID(), aR) && aR->Length() == 3 )
   {
-    gp_Pnt aL(aLoc->Value(aLoc->Upper()), aLoc->Value(aLoc->Upper()+1), aLoc->Value(aLoc->Upper()+2));
-    gp_Dir aD(aN->Value(aN->Upper()), aN->Value(aN->Upper()+1), aN->Value(aN->Upper()+2));
-    gp_Dir aDR(aR->Value(aR->Upper()), aR->Value(aR->Upper()+1), aR->Value(aR->Upper()+2));
+    gp_Pnt aL(aLoc->Value(aLoc->Lower()), aLoc->Value(aLoc->Lower()+1), aLoc->Value(aLoc->Lower()+2));
+    gp_Dir aD(aN->Value(aN->Lower()), aN->Value(aN->Lower()+1), aN->Value(aN->Lower()+2));
+    gp_Dir aDR(aR->Value(aR->Lower()), aR->Value(aR->Lower()+1), aR->Value(aR->Lower()+2));
     gp_Ax2 anAx(aL, aD, aDR);
     anObj->SetPlane(anAx);
   }
@@ -297,7 +301,7 @@ Handle(XCAFDimTolObjects_GeomToleranceObject) XCAFDoc_GeomTolerance::GetObject()
   Handle(TDataStd_RealArray) aPnt;
   if(Label().FindChild(ChildLab_PlaneLoc).FindAttribute(TDataStd_RealArray::GetID(), aPnt) && aPnt->Length() == 3 )
   {
-    gp_Pnt aP(aLoc->Value(aPnt->Upper()), aPnt->Value(aPnt->Upper()+1), aPnt->Value(aPnt->Upper()+2));
+    gp_Pnt aP(aLoc->Value(aPnt->Lower()), aPnt->Value(aPnt->Lower()+1), aPnt->Value(aPnt->Lower()+2));
     anObj->SetPoint(aP);
   }
   return anObj;