anIter.Value().ForgetAllAttributes();
}
if (!theObject->GetName().IsNull() && !theObject->GetName()->IsEmpty())
- Handle(TDataStd_AsciiString) anAttName = TDataStd_AsciiString::Set(Label().FindChild(ChildLab_Name),
- theObject->GetName()->String());
+ Handle(TDataStd_AsciiString) anAttName = TDataStd_AsciiString::Set(Label().FindChild(ChildLab_Name),
+ theObject->GetName()->String());
Handle(TDataStd_Integer) aPosition = TDataStd_Integer::Set(Label().FindChild(ChildLab_Position),
- theObject->GetPosition());
+ theObject->GetPosition());
if(theObject->GetModifiers().Length() > 0)
- {
- Handle(TDataStd_IntegerArray) aModifiers;
- if(!Label().FindChild(ChildLab_Modifiers).FindAttribute(TDataStd_IntegerArray::GetID(), aModifiers))
- {
- aModifiers = new TDataStd_IntegerArray();
- Label().FindChild(ChildLab_Modifiers).AddAttribute(aModifiers);
- }
+ {
Handle(TColStd_HArray1OfInteger) anArr = new TColStd_HArray1OfInteger(1,theObject->GetModifiers().Length());
for(Standard_Integer i = 1; i <= theObject->GetModifiers().Length(); i++)
anArr->SetValue(i,theObject->GetModifiers().Value(i));
- aModifiers->ChangeArray(anArr);
+ Handle(TDataStd_IntegerArray) aModifiers = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Modifiers),
+ 1, theObject->GetModifiers().Length());
+ if(!aModifiers.IsNull())
+ aModifiers->ChangeArray(anArr);
}
XCAFDimTolObjects_DatumModifWithValue aM;
if(aM != XCAFDimTolObjects_DatumModifWithValue_None)
{
Handle(TDataStd_Integer) aModifierWithValueM =
- TDataStd_Integer::Set(Label().FindChild(ChildLab_ModifierWithValue), aM);
+ TDataStd_Integer::Set(Label().FindChild(ChildLab_ModifierWithValue), aM);
Handle(TDataStd_Real) aModifierWithValueV =
- TDataStd_Real::Set(Label().FindChild(ChildLab_ModifierWithValue), aV);
+ TDataStd_Real::Set(Label().FindChild(ChildLab_ModifierWithValue), aV);
}
Handle(TDataStd_Integer) aIsTarget = TDataStd_Integer::Set(Label().FindChild(ChildLab_IsDTarget),
- theObject->IsDatumTarget());
+ theObject->IsDatumTarget());
if(theObject->IsDatumTarget())
{
Handle(TDataStd_Integer) aType = TDataStd_Integer::Set(Label().FindChild(ChildLab_DTargetType),
- theObject->GetDatumTargetType());
+ theObject->GetDatumTargetType());
if(theObject->GetDatumTargetType() == XCAFDimTolObjects_DatumTargetType_Area)
{
}
else if (theObject->HasDatumTargetParams())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetDatumTargetAxis();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ 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));
- aN->ChangeArray(aNArr);
+ 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));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_AxisLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_AxisN).AddAttribute(aN);
- Label().FindChild(ChildLab_AxisRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
if(theObject->GetDatumTargetType() != XCAFDimTolObjects_DatumTargetType_Point)
{
Handle(TDataStd_Real) aLen = TDataStd_Real::Set(Label().FindChild(ChildLab_DTargetLength),
- theObject->GetDatumTargetLength());
+ theObject->GetDatumTargetLength());
if(theObject->GetDatumTargetType() == XCAFDimTolObjects_DatumTargetType_Rectangle)
Handle(TDataStd_Real) aWidth = TDataStd_Real::Set(Label().FindChild(ChildLab_DTargetWidth),
- theObject->GetDatumTargetWidth());
+ theObject->GetDatumTargetWidth());
}
}
Handle(TDataStd_Integer) aNum = TDataStd_Integer::Set(Label().FindChild(ChildLab_DTargetNumber),
- theObject->GetDatumTargetNumber());
+ theObject->GetDatumTargetNumber());
}
if (theObject->HasPlane())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
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));
- aLoc->ChangeArray(aLocArr);
+ 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));
- aN->ChangeArray(aNArr);
+ 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));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
- Label().FindChild(ChildLab_PlaneRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPoint())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
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));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_Pnt).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
if (theObject->HasPointText())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
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));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_PntText).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PntText), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
TopoDS_Shape aPresentation = theObject->GetPresentation();
if( !aPresentation.IsNull())