From 75c9d4f7eeb52f5ce7d62a5aef3915e576b3759f Mon Sep 17 00:00:00 2001 From: ika Date: Tue, 3 Nov 2015 17:47:18 +0300 Subject: [PATCH] small corrections --- .../XCAFDimTolObjects_DatumObject.cxx | 2 + src/XCAFDoc/XCAFDoc_Datum.cxx | 42 ++++++++++--------- src/XCAFDoc/XCAFDoc_Dimension.cxx | 40 ++++++++++-------- src/XCAFDoc/XCAFDoc_GeomTolerance.cxx | 42 ++++++++++--------- 4 files changed, 71 insertions(+), 55 deletions(-) diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx index 4d9f6cfc78..90adf723ad 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx @@ -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; } //======================================================================= diff --git a/src/XCAFDoc/XCAFDoc_Datum.cxx b/src/XCAFDoc/XCAFDoc_Datum.cxx index a604291e02..47a3698b1e 100644 --- a/src/XCAFDoc/XCAFDoc_Datum.cxx +++ b/src/XCAFDoc/XCAFDoc_Datum.cxx @@ -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); } diff --git a/src/XCAFDoc/XCAFDoc_Dimension.cxx b/src/XCAFDoc/XCAFDoc_Dimension.cxx index f57dde590f..6a593db85f 100644 --- a/src/XCAFDoc/XCAFDoc_Dimension.cxx +++ b/src/XCAFDoc/XCAFDoc_Dimension.cxx @@ -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); } diff --git a/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx b/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx index cd2dd0856a..8809e95669 100644 --- a/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx +++ b/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx @@ -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; -- 2.39.5