#include <TDataStd_Real.hxx>
#include <TDataXtd_Geometry.hxx>
#include <TDataXtd_Plane.hxx>
-#include <TDataXtd_Point.hxx>
#include <XCAFDimTolObjects_GeomToleranceObject.hxx>
#include <TNaming_Tool.hxx>
#include <TNaming_Builder.hxx>
ChildLab_ValueOfZoneModif,
ChildLab_Modifiers,
ChildLab_aMaxValueModif,
- ChildLab_Axis,
- ChildLab_Plane,
+ ChildLab_AxisLoc,
+ ChildLab_AxisN,
+ ChildLab_AxisRef,
+ ChildLab_PlaneLoc,
+ ChildLab_PlaneN,
+ ChildLab_PlaneRef,
ChildLab_Pnt,
ChildLab_PntText,
ChildLab_Presentation,
if (theObject->HasAxis())
{
- TDataXtd_Plane::Set(Label().FindChild(ChildLab_Axis), gp_Pln(gp_Ax3(theObject->GetPlane())));
+ gp_Ax2 anAx = theObject->GetAxis();
+
+ Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aLocArr->SetValue(i, anAx.Location().Coord(i));
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisLoc), 1, 3);
+ if (!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
+
+ Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aNArr->SetValue(i, anAx.Direction().Coord(i));
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisN), 1, 3);
+ if (!aN.IsNull())
+ aN->ChangeArray(aNArr);
+
+ Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aRArr->SetValue(i, anAx.XDirection().Coord(i));
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisRef), 1, 3);
+ if (!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPlane())
{
- TDataXtd_Plane::Set(Label().FindChild(ChildLab_Plane), gp_Pln(gp_Ax3(theObject->GetPlane())));
+ gp_Ax2 anAx = theObject->GetPlane();
+
+ Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aLocArr->SetValue(i, anAx.Location().Coord(i));
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneLoc), 1, 3);
+ if (!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
+
+ Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aNArr->SetValue(i, anAx.Direction().Coord(i));
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneN), 1, 3);
+ if (!aN.IsNull())
+ aN->ChangeArray(aNArr);
+
+ Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aRArr->SetValue(i, anAx.XDirection().Coord(i));
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneRef), 1, 3);
+ if (!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPoint())
{
- TDataXtd_Point::Set(Label().FindChild(ChildLab_Pnt), theObject->GetPoint());
+ gp_Pnt aPnt = theObject->GetPoint();
+
+ Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aLocArr->SetValue(i, aPnt.Coord(i));
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt), 1, 3);
+ if (!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
if (theObject->HasPointText())
{
- TDataXtd_Point::Set(Label().FindChild(ChildLab_PntText), theObject->GetPointTextAttach());
+ gp_Pnt aPntText = theObject->GetPointTextAttach();
+
+ Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
+ for (Standard_Integer i = 1; i <= 3; i++)
+ aLocArr->SetValue(i, aPntText.Coord(i));
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PntText), 1, 3);
+ if (!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
TopoDS_Shape aPresentation = theObject->GetPresentation();
anObj->SetMaxValueModifier(aMaxValueModif->Get());
}
- Handle(TDataXtd_Plane) anAxisAttr;
- if (Label().FindChild(ChildLab_Axis).FindAttribute(TDataXtd_Plane::GetID(), anAxisAttr))
+ Handle(TDataStd_RealArray) aLoc;
+ Handle(TDataStd_RealArray) aN;
+ Handle(TDataStd_RealArray) aR;
+ if (Label().FindChild(ChildLab_AxisLoc).FindAttribute(TDataStd_RealArray::GetID(), aLoc) && aLoc->Length() == 3 &&
+ Label().FindChild(ChildLab_AxisN).FindAttribute(TDataStd_RealArray::GetID(), aN) && aN->Length() == 3 &&
+ Label().FindChild(ChildLab_AxisRef).FindAttribute(TDataStd_RealArray::GetID(), aR) && aR->Length() == 3)
{
- gp_Pln aPlane;
- TDataXtd_Geometry::Plane(anAxisAttr->Label(), aPlane);
- gp_Ax2 anAx(aPlane.Location(), aPlane.Axis().Direction(), aPlane.XAxis().Direction());
+ 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->SetAxis(anAx);
}
- Handle(TDataXtd_Plane) aPlaneAttr;
- if (Label().FindChild(ChildLab_Plane).FindAttribute(TDataXtd_Plane::GetID(), aPlaneAttr))
+ if (Label().FindChild(ChildLab_PlaneLoc).FindAttribute(TDataStd_RealArray::GetID(), aLoc) && aLoc->Length() == 3 &&
+ 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_Pln aPlane;
- TDataXtd_Geometry::Plane(aPlaneAttr->Label(), aPlane);
- gp_Ax2 anAx(aPlane.Location(), aPlane.Axis().Direction(), aPlane.XAxis().Direction());
+ 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);
}
- Handle(TDataXtd_Point) aPntAttr;
- if (Label().FindChild(ChildLab_Pnt).FindAttribute(TDataXtd_Point::GetID(), aPntAttr))
+ Handle(TDataStd_RealArray) aPnt;
+ if (Label().FindChild(ChildLab_Pnt).FindAttribute(TDataStd_RealArray::GetID(), aPnt) && aPnt->Length() == 3)
{
- gp_Pnt aPoint;
- TDataXtd_Geometry::Point(aPntAttr->Label(), aPoint);
- anObj->SetPoint(aPoint);
+ gp_Pnt aP(aLoc->Value(aPnt->Lower()), aPnt->Value(aPnt->Lower() + 1), aPnt->Value(aPnt->Lower() + 2));
+ anObj->SetPoint(aP);
}
- Handle(TDataXtd_Point) aPntTextAttr;
- if (Label().FindChild(ChildLab_PntText).FindAttribute(TDataXtd_Point::GetID(), aPntTextAttr))
+ Handle(TDataStd_RealArray) aPntText;
+ if (Label().FindChild(ChildLab_PntText).FindAttribute(TDataStd_RealArray::GetID(), aPntText) && aPntText->Length() == 3)
{
- gp_Pnt aPoint;
- TDataXtd_Geometry::Point(aPntTextAttr->Label(), aPoint);
- anObj->SetPointTextAttach(aPoint);
+ gp_Pnt aP(aPntText->Value(aPntText->Lower()), aPntText->Value(aPntText->Lower() + 1), aPntText->Value(aPntText->Lower() + 2));
+ anObj->SetPointTextAttach(aP);
}
Handle(TNaming_NamedShape) aNS;