mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
Saving notes positions in the view
This commit is contained in:
parent
611cd82c38
commit
678c09482c
@ -48,7 +48,8 @@ enum ChildLab
|
||||
ChildLab_ClippingExpression,
|
||||
ChildLab_GDTPoints,
|
||||
ChildLab_Image,
|
||||
ChildLab_EnabledShapes
|
||||
ChildLab_EnabledShapes,
|
||||
ChildLab_NotePoints
|
||||
};
|
||||
|
||||
//=======================================================================
|
||||
@ -170,6 +171,14 @@ void XCAFDoc_View::SetObject (const Handle(XCAFView_Object)& theObject)
|
||||
TDataStd_Integer::Set(aShapeTranspLabel.FindChild(i), aValue);
|
||||
}
|
||||
}
|
||||
//note points
|
||||
if (theObject->HasNotePoints())
|
||||
{
|
||||
TDF_Label aPointsLabel = Label().FindChild(ChildLab_NotePoints);
|
||||
for (Standard_Integer i = 1; i <= theObject->NbNotePoints(); i++) {
|
||||
TDataXtd_Point::Set(aPointsLabel.FindChild(i), theObject->NotePoint(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -298,6 +307,19 @@ Handle(XCAFView_Object) XCAFDoc_View::GetObject() const
|
||||
anObj->SetEnabledShape(i, aValue);
|
||||
}
|
||||
}
|
||||
|
||||
// Note Points
|
||||
if (!Label().FindChild(ChildLab_NotePoints, Standard_False).IsNull()) {
|
||||
TDF_Label aPointsLabel = Label().FindChild(ChildLab_NotePoints);
|
||||
anObj->CreateNotePoints(aPointsLabel.NbChildren());
|
||||
for (Standard_Integer i = 1; i <= aPointsLabel.NbChildren(); i++) {
|
||||
gp_Pnt aPoint;
|
||||
Handle(TDataXtd_Point) aPointAttr;
|
||||
aPointsLabel.FindChild(i).FindAttribute(TDataXtd_Point::GetID(), aPointAttr);
|
||||
TDataXtd_Geometry::Point(aPointAttr->Label(), aPoint);
|
||||
anObj->SetNotePoint(i, aPoint);
|
||||
}
|
||||
}
|
||||
return anObj;
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@ XCAFView_Object::XCAFView_Object()
|
||||
myGDTPoints = NULL;
|
||||
myImage = NULL;
|
||||
myEnabledShapes = NULL;
|
||||
myNotePoints = NULL;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -54,5 +55,6 @@ XCAFView_Object::XCAFView_Object(const Handle(XCAFView_Object)& theObj)
|
||||
myGDTPoints = NULL;
|
||||
myImage = theObj->myImage;
|
||||
myEnabledShapes = NULL;
|
||||
myGDTPoints = NULL;
|
||||
}
|
||||
|
||||
|
@ -270,6 +270,41 @@ public:
|
||||
else
|
||||
return Standard_False;
|
||||
}
|
||||
Standard_EXPORT void CreateNotePoints(const Standard_Integer theLenght)
|
||||
{
|
||||
if (theLenght > 0)
|
||||
myNotePoints = new TColgp_HArray1OfPnt(1, theLenght);
|
||||
}
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasNotePoints()
|
||||
{
|
||||
return (!myNotePoints.IsNull());
|
||||
}
|
||||
|
||||
Standard_EXPORT Standard_Integer NbNotePoints()
|
||||
{
|
||||
if (myNotePoints.IsNull())
|
||||
return 0;
|
||||
return myNotePoints->Length();
|
||||
}
|
||||
|
||||
Standard_EXPORT void SetNotePoint(const Standard_Integer theIndex, const gp_Pnt thePoint)
|
||||
{
|
||||
if (myNotePoints.IsNull())
|
||||
return;
|
||||
if (theIndex > 0 && theIndex <= myNotePoints->Length())
|
||||
myNotePoints->SetValue(theIndex, thePoint);
|
||||
}
|
||||
|
||||
Standard_EXPORT gp_Pnt NotePoint(const Standard_Integer theIndex)
|
||||
{
|
||||
if (myNotePoints.IsNull())
|
||||
return gp_Pnt();
|
||||
if (theIndex > 0 && theIndex <= myNotePoints->Length())
|
||||
return myNotePoints->Value(theIndex);
|
||||
else
|
||||
return gp_Pnt();
|
||||
}
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(XCAFView_Object,Standard_Transient)
|
||||
|
||||
@ -292,6 +327,7 @@ private:
|
||||
Handle(TColgp_HArray1OfPnt) myGDTPoints; // Point for each GDT to describe position of GDT frame in View.
|
||||
Handle(TColStd_HArray1OfByte) myImage;
|
||||
Handle(TColStd_HArray1OfBoolean) myEnabledShapes;
|
||||
Handle(TColgp_HArray1OfPnt) myNotePoints;
|
||||
};
|
||||
|
||||
#endif // _XCAFView_Object_HeaderFile
|
||||
|
Loading…
x
Reference in New Issue
Block a user