mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-16 10:54:53 +03:00
Saving notes in the view
This commit is contained in:
parent
2390f514ab
commit
dc921b1ca4
@ -251,7 +251,17 @@ Standard_GUID XCAFDoc::ViewRefPlaneGUID()
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : ViewRefPlaneGUID
|
||||
//function : ViewRefNoteGUID
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
Standard_GUID XCAFDoc::ViewRefNoteGUID()
|
||||
{
|
||||
static Standard_GUID ID("efd213e2-6dfd-11d4-b9c8-0060b0ee281b");
|
||||
return ID;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : ViewRefEnabledShapesGUID
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
|
@ -120,6 +120,9 @@ public:
|
||||
|
||||
//! Return GUIDs for TreeNode representing specified types of View
|
||||
Standard_EXPORT static Standard_GUID ViewRefPlaneGUID();
|
||||
|
||||
//! Return GUIDs for TreeNode representing specified types of View
|
||||
Standard_EXPORT static Standard_GUID ViewRefNoteGUID();
|
||||
|
||||
//! Return GUIDs for TreeNode representing specified types of View
|
||||
Standard_EXPORT static Standard_GUID ViewRefEnabledShapesGUID();
|
||||
|
@ -157,11 +157,10 @@ void XCAFDoc_ViewTool::SetView(const TDF_LabelSequence& theShapeLabels,
|
||||
aPlaneGNode = aChGNode->GetFather(1);
|
||||
aPlaneGNode->UnSetChild(aChGNode);
|
||||
if (aPlaneGNode->NbChildren() == 0)
|
||||
aPlaneGNode->ForgetAttribute(XCAFDoc::ViewRefGDTGUID());
|
||||
aPlaneGNode->ForgetAttribute(XCAFDoc::ViewRefPlaneGUID());
|
||||
}
|
||||
theViewL.ForgetAttribute(XCAFDoc::ViewRefPlaneGUID());
|
||||
}
|
||||
|
||||
if (!theViewL.FindAttribute(XCAFDoc::ViewRefShapeGUID(), aChGNode) && theShapeLabels.Length() > 0) {
|
||||
aChGNode = new XCAFDoc_GraphNode;
|
||||
aChGNode = XCAFDoc_GraphNode::Set(theViewL);
|
||||
@ -296,7 +295,7 @@ void XCAFDoc_ViewTool::SetClippingPlanes(const TDF_LabelSequence& theClippingPla
|
||||
aPlaneGNode = aChGNode->GetFather(1);
|
||||
aPlaneGNode->UnSetChild(aChGNode);
|
||||
if (aPlaneGNode->NbChildren() == 0)
|
||||
aPlaneGNode->ForgetAttribute(XCAFDoc::ViewRefGDTGUID());
|
||||
aPlaneGNode->ForgetAttribute(XCAFDoc::ViewRefPlaneGUID());
|
||||
}
|
||||
theViewL.ForgetAttribute(XCAFDoc::ViewRefPlaneGUID());
|
||||
}
|
||||
@ -329,14 +328,14 @@ void XCAFDoc_ViewTool::SetEnabledShapes(const TDF_LabelSequence& theShapesTransp
|
||||
return;
|
||||
|
||||
Handle(XCAFDoc_GraphNode) aChGNode;
|
||||
Handle(XCAFDoc_GraphNode) aPlaneGNode;
|
||||
Handle(XCAFDoc_GraphNode) aShapeGNode;
|
||||
|
||||
if (theViewL.FindAttribute(XCAFDoc::ViewRefEnabledShapesGUID(), aChGNode)) {
|
||||
while (aChGNode->NbFathers() > 0) {
|
||||
aPlaneGNode = aChGNode->GetFather(1);
|
||||
aPlaneGNode->UnSetChild(aChGNode);
|
||||
if (aPlaneGNode->NbChildren() == 0)
|
||||
aPlaneGNode->ForgetAttribute(XCAFDoc::ViewRefEnabledShapesGUID());
|
||||
aShapeGNode = aChGNode->GetFather(1);
|
||||
aShapeGNode->UnSetChild(aChGNode);
|
||||
if (aShapeGNode->NbChildren() == 0)
|
||||
aShapeGNode->ForgetAttribute(XCAFDoc::ViewRefEnabledShapesGUID());
|
||||
}
|
||||
theViewL.ForgetAttribute(XCAFDoc::ViewRefEnabledShapesGUID());
|
||||
}
|
||||
@ -349,16 +348,55 @@ void XCAFDoc_ViewTool::SetEnabledShapes(const TDF_LabelSequence& theShapesTransp
|
||||
}
|
||||
for (Standard_Integer i = theShapesTransparencyLabels.Lower(); i <= theShapesTransparencyLabels.Upper(); i++)
|
||||
{
|
||||
if (!theShapesTransparencyLabels.Value(i).FindAttribute(XCAFDoc::ViewRefEnabledShapesGUID(), aPlaneGNode)) {
|
||||
aPlaneGNode = new XCAFDoc_GraphNode;
|
||||
aPlaneGNode = XCAFDoc_GraphNode::Set(theShapesTransparencyLabels.Value(i));
|
||||
if (!theShapesTransparencyLabels.Value(i).FindAttribute(XCAFDoc::ViewRefEnabledShapesGUID(), aShapeGNode)) {
|
||||
aShapeGNode = new XCAFDoc_GraphNode;
|
||||
aShapeGNode = XCAFDoc_GraphNode::Set(theShapesTransparencyLabels.Value(i));
|
||||
}
|
||||
aPlaneGNode->SetGraphID(XCAFDoc::ViewRefEnabledShapesGUID());
|
||||
aPlaneGNode->SetChild(aChGNode);
|
||||
aChGNode->SetFather(aPlaneGNode);
|
||||
aShapeGNode->SetGraphID(XCAFDoc::ViewRefEnabledShapesGUID());
|
||||
aShapeGNode->SetChild(aChGNode);
|
||||
aChGNode->SetFather(aShapeGNode);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetNotes
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void XCAFDoc_ViewTool::SetNotes(const TDF_LabelSequence& theNoteLabels,
|
||||
const TDF_Label& theViewL) const
|
||||
{
|
||||
if (!IsView(theViewL))
|
||||
return;
|
||||
|
||||
Handle(XCAFDoc_GraphNode) aChGNode;
|
||||
Handle(XCAFDoc_GraphNode) aNoteGNode;
|
||||
|
||||
if (theViewL.FindAttribute(XCAFDoc::ViewRefNoteGUID(), aChGNode)) {
|
||||
while (aChGNode->NbFathers() > 0) {
|
||||
aNoteGNode = aChGNode->GetFather(1);
|
||||
aNoteGNode->UnSetChild(aChGNode);
|
||||
if (aNoteGNode->NbChildren() == 0)
|
||||
aNoteGNode->ForgetAttribute(XCAFDoc::ViewRefNoteGUID());
|
||||
}
|
||||
theViewL.ForgetAttribute(XCAFDoc::ViewRefNoteGUID());
|
||||
}
|
||||
|
||||
|
||||
if (!theViewL.FindAttribute(XCAFDoc::ViewRefNoteGUID(), aChGNode) && theNoteLabels.Length() > 0) {
|
||||
aChGNode = new XCAFDoc_GraphNode;
|
||||
aChGNode = XCAFDoc_GraphNode::Set(theViewL);
|
||||
aChGNode->SetGraphID(XCAFDoc::ViewRefNoteGUID());
|
||||
}
|
||||
for (Standard_Integer i = theNoteLabels.Lower(); i <= theNoteLabels.Upper(); i++)
|
||||
{
|
||||
if (!theNoteLabels.Value(i).FindAttribute(XCAFDoc::ViewRefNoteGUID(), aNoteGNode)) {
|
||||
aNoteGNode = new XCAFDoc_GraphNode;
|
||||
aNoteGNode = XCAFDoc_GraphNode::Set(theNoteLabels.Value(i));
|
||||
}
|
||||
aNoteGNode->SetGraphID(XCAFDoc::ViewRefNoteGUID());
|
||||
aNoteGNode->SetChild(aChGNode);
|
||||
aChGNode->SetFather(aNoteGNode);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : GetRefShapeLabel
|
||||
//purpose :
|
||||
@ -455,6 +493,30 @@ Standard_Boolean XCAFDoc_ViewTool::GetRefEnabledShapesLabel(const TDF_Label& the
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GetRefNotesLabel
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean XCAFDoc_ViewTool::GetRefNoteLabel(const TDF_Label& theViewL,
|
||||
TDF_LabelSequence& theNoteLabels) const
|
||||
{
|
||||
theNoteLabels.Clear();
|
||||
Handle(TDataStd_TreeNode) aNode;
|
||||
if (!theViewL.FindAttribute(XCAFDoc::ViewRefGUID(), aNode) || !aNode->HasFather()) {
|
||||
Handle(XCAFDoc_GraphNode) aGNode;
|
||||
if (theViewL.FindAttribute(XCAFDoc::ViewRefNoteGUID(), aGNode) && aGNode->NbFathers() > 0) {
|
||||
for (Standard_Integer i = 1; i <= aGNode->NbFathers(); i++)
|
||||
theNoteLabels.Append(aGNode->GetFather(i)->Label());
|
||||
return Standard_True;
|
||||
}
|
||||
else
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
theNoteLabels.Append(aNode->Father()->Label());
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GetViewLabelsForShape
|
||||
//purpose :
|
||||
@ -531,6 +593,24 @@ Standard_Boolean XCAFDoc_ViewTool::GetViewLabelsForEnabledShapesLabel(const TDF_
|
||||
return aResult;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GetViewLabelsForNote
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean XCAFDoc_ViewTool::GetViewLabelsForNote(const TDF_Label& theNoteL, TDF_LabelSequence& theViews)const
|
||||
{
|
||||
Handle(XCAFDoc_GraphNode) aGNode;
|
||||
Standard_Boolean aResult = Standard_False;
|
||||
if (theNoteL.FindAttribute(XCAFDoc::ViewRefNoteGUID(), aGNode) && aGNode->NbChildren() > 0) {
|
||||
for (Standard_Integer i = 1; i <= aGNode->NbChildren(); i++)
|
||||
{
|
||||
theViews.Append(aGNode->GetChild(i)->Label());
|
||||
}
|
||||
aResult = Standard_True;
|
||||
}
|
||||
return aResult;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : IsLocked
|
||||
//purpose :
|
||||
|
@ -78,8 +78,12 @@ public:
|
||||
//! Set Clipping planes to given View
|
||||
Standard_EXPORT void SetClippingPlanes(const TDF_LabelSequence& theClippingPlaneLabels,
|
||||
const TDF_Label& theViewL) const;
|
||||
//! Set Enabled shapes to given View
|
||||
Standard_EXPORT void SetEnabledShapes(const TDF_LabelSequence& theShapesTransparencyLabels,
|
||||
const TDF_Label& theViewL) const;
|
||||
//! Set Notes to given View
|
||||
Standard_EXPORT void SetNotes(const TDF_LabelSequence& theNoteLabels,
|
||||
const TDF_Label& theViewL) const;
|
||||
//! Returns all View labels defined for label ShapeL
|
||||
Standard_EXPORT Standard_Boolean GetViewLabelsForShape(const TDF_Label& theShapeL, TDF_LabelSequence& theViews) const;
|
||||
|
||||
@ -91,6 +95,9 @@ public:
|
||||
|
||||
//! Returns all View labels defined for label Shapes transparency
|
||||
Standard_EXPORT Standard_Boolean GetViewLabelsForEnabledShapesLabel(const TDF_Label& theShapesTransparencyL, TDF_LabelSequence& theViews) const;
|
||||
|
||||
//! Returns all View labels defined for label NotesL
|
||||
Standard_EXPORT Standard_Boolean GetViewLabelsForNote(const TDF_Label& theNoteL, TDF_LabelSequence& theViews) const;
|
||||
|
||||
//! Adds a view definition to a View table and returns its label
|
||||
Standard_EXPORT TDF_Label AddView() ;
|
||||
@ -110,6 +117,11 @@ public:
|
||||
//! Returns shapes transparency labels defined for label theViewL
|
||||
//! Returns False if the theViewL is not in View table
|
||||
Standard_EXPORT Standard_Boolean GetRefEnabledShapesLabel(const TDF_Label& theViewL, TDF_LabelSequence& theShapesTranspanencyLabels) const;
|
||||
|
||||
//! Returns Note labels defined for label theViewL
|
||||
//! Returns False if the theViewL is not in View table
|
||||
Standard_EXPORT Standard_Boolean GetRefNoteLabel(const TDF_Label& theViewL, TDF_LabelSequence& theNoteLabels) const;
|
||||
|
||||
//! Returns true if the given View is marked as locked
|
||||
Standard_EXPORT Standard_Boolean IsLocked(const TDF_Label& theViewL) const;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user