#include <Prs3d_Presentation.hxx>
#include <Prs3d_Projector.hxx>
#include <Prs3d_ShadingAspect.hxx>
-#include <PrsMgr_ModedPresentation.hxx>
+#include <PrsMgr_Presentation.hxx>
+#include <PrsMgr_PresentationManager.hxx>
#include <Standard_NotImplemented.hxx>
#include <TColStd_MapOfInteger.hxx>
//=======================================================================
PrsMgr_PresentableObject::~PrsMgr_PresentableObject()
{
+ for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
+ {
+ // should never happen - assertion can be used
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.Value();
+ aPrs3d->Erase();
+ aPrs3d->myPresentableObject = NULL;
+ }
+
for (PrsMgr_ListOfPresentableObjectsIter anIter (myChildren); anIter.More(); anIter.Next())
{
anIter.Value()->SetCombinedParentTransform (Handle(Geom_Transformation)());
const Handle(PrsMgr_Presentation)& thePrs,
const Standard_Integer theMode)
{
- Handle(Prs3d_Presentation) aStruct3d = thePrs->Presentation();
+ const Handle(Prs3d_Presentation)& aStruct3d = thePrs;
Compute (thePrsMgr, aStruct3d, theMode);
aStruct3d->SetTransformation (myTransformation);
aStruct3d->SetClipPlanes (myClipPlanes);
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (aModedPrs.Presentation()->MustBeUpdated())
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ if (aModedPrs->MustBeUpdated())
{
if (theToIncludeHidden)
{
return Standard_True;
}
- Handle(PrsMgr_PresentationManager) aPrsMgr = aModedPrs.Presentation()->PresentationManager();
- if (aPrsMgr->IsDisplayed (this, aModedPrs.Mode())
- || aPrsMgr->IsHighlighted(this, aModedPrs.Mode()))
+ Handle(PrsMgr_PresentationManager) aPrsMgr = aModedPrs->PresentationManager();
+ if (aPrsMgr->IsDisplayed (this, aModedPrs->Mode())
+ || aPrsMgr->IsHighlighted(this, aModedPrs->Mode()))
{
return Standard_True;
}
Standard_Boolean hasUpdates = Standard_False;
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (aModedPrs.Presentation()->MustBeUpdated())
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ if (aModedPrs->MustBeUpdated())
{
- Handle(PrsMgr_PresentationManager) aPrsMgr = aModedPrs.Presentation()->PresentationManager();
+ Handle(PrsMgr_PresentationManager) aPrsMgr = aModedPrs->PresentationManager();
if (theToIncludeHidden
- || aPrsMgr->IsDisplayed (this, aModedPrs.Mode())
- || aPrsMgr->IsHighlighted(this, aModedPrs.Mode()))
+ || aPrsMgr->IsDisplayed (this, aModedPrs->Mode())
+ || aPrsMgr->IsHighlighted(this, aModedPrs->Mode()))
{
hasUpdates = Standard_True;
- aPrsMgr->Update (this, aModedPrs.Mode());
+ aPrsMgr->Update (this, aModedPrs->Mode());
}
}
}
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More();)
{
- if (aPrsIter.Value().Mode() == theMode)
+ if (aPrsIter.Value()->Mode() == theMode)
{
- Handle(PrsMgr_PresentationManager) aPrsMgr = aPrsIter.Value().Presentation()->PresentationManager();
+ Handle(PrsMgr_PresentationManager) aPrsMgr = aPrsIter.Value()->PresentationManager();
if (aPrsMgr->IsDisplayed (this, theMode)
|| aPrsMgr->IsHighlighted(this, theMode))
{
aPrsMgr->Update (this, theMode);
- aPrsIter.Value().Presentation()->SetUpdateStatus (Standard_False);
+ aPrsIter.Value()->SetUpdateStatus (Standard_False);
}
else
{
- SetToUpdate (aPrsIter.Value().Mode());
+ SetToUpdate (aPrsIter.Value()->Mode());
}
}
else if (theToClearOther)
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
if (theMode == -1
- || aPrsIter.Value().Mode() == theMode)
+ || aPrsIter.Value()->Mode() == theMode)
{
- aPrsIter.ChangeValue().Presentation()->SetUpdateStatus(Standard_True);
+ aPrsIter.ChangeValue()->SetUpdateStatus (Standard_True);
}
}
}
TColStd_MapOfInteger MI(myPresentations.Length());
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (aModedPrs.Presentation()->MustBeUpdated()
- && MI.Add (aModedPrs.Mode()))
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ if (aModedPrs->MustBeUpdated()
+ && MI.Add (aModedPrs->Mode()))
{
- theOutList.Append (aModedPrs.Mode());
+ theOutList.Append (aModedPrs->Mode());
}
}
}
myTypeOfPresentation3d = theType;
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const Handle(PrsMgr_Presentation)& aPrs = aPrsIter.Value().Presentation();
- aPrs->Presentation()->SetVisual (myTypeOfPresentation3d == PrsMgr_TOP_ProjectorDependant
- ? Graphic3d_TOS_COMPUTED
- : Graphic3d_TOS_ALL);
+ const Handle(PrsMgr_Presentation)& aPrs = aPrsIter.Value();
+ aPrs->SetVisual (myTypeOfPresentation3d == PrsMgr_TOP_ProjectorDependant
+ ? Graphic3d_TOS_COMPUTED
+ : Graphic3d_TOS_ALL);
}
}
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- aPrsIter.ChangeValue().Presentation()->SetTransformation (myTransformation);
+ aPrsIter.ChangeValue()->SetTransformation (myTransformation);
}
for (PrsMgr_ListOfPresentableObjectsIter aChildIter (myChildren); aChildIter.More(); aChildIter.Next())
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.Value().Presentation();
- if (!aPrs3d.IsNull()
- && !aPrs3d->Presentation().IsNull())
- {
- aPrs3d->Presentation()->ReCompute();
- }
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.Value();
+ aPrs3d->ReCompute();
}
}
myTransformPersistence = theTrsfPers;
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.Value().Presentation();
- if (!aPrs3d.IsNull()
- && !aPrs3d->Presentation().IsNull())
- {
- aPrs3d->Presentation()->SetTransformPersistence (myTransformPersistence);
- aPrs3d->Presentation()->ReCompute();
- }
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.Value();
+ aPrs3d->SetTransformPersistence (myTransformPersistence);
+ aPrs3d->ReCompute();
}
}
myDrawer->SetZLayer (theLayerId);
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (aModedPrs.Presentation().IsNull()
- || aModedPrs.Presentation()->Presentation().IsNull())
- {
- continue;
- }
-
- aModedPrs.Presentation()->Presentation()->SetZLayer (theLayerId);
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ aModedPrs->SetZLayer (theLayerId);
}
}
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (!aModedPrs.Presentation().IsNull()
- && !aModedPrs.Presentation()->Presentation().IsNull())
- {
- aModedPrs.Presentation()->Presentation()->SetClipPlanes (myClipPlanes);
- }
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ aModedPrs->SetClipPlanes (myClipPlanes);
}
}
myInfiniteState = theFlag;
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (!aModedPrs.Presentation().IsNull()
- && !aModedPrs.Presentation()->Presentation().IsNull())
- {
- aModedPrs.Presentation()->Presentation()->SetInfiniteState (theFlag);
- }
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ aModedPrs->SetInfiniteState (theFlag);
}
}
myIsMutable = theIsMutable;
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const PrsMgr_ModedPresentation& aModedPrs = aPrsIter.Value();
- if (!aModedPrs.Presentation().IsNull()
- && !aModedPrs.Presentation()->Presentation().IsNull())
- {
- aModedPrs.Presentation()->Presentation()->SetMutable (theIsMutable);
- }
+ const Handle(PrsMgr_Presentation)& aModedPrs = aPrsIter.Value();
+ aModedPrs->SetMutable (theIsMutable);
}
}
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.ChangeValue().Presentation();
- if (aPrs3d.IsNull()
- || aPrs3d->Presentation().IsNull())
- {
- continue;
- }
-
- for (Graphic3d_SequenceOfGroup::Iterator aGroupIter (aPrs3d->Presentation()->Groups()); aGroupIter.More(); aGroupIter.Next())
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.ChangeValue();
+ for (Graphic3d_SequenceOfGroup::Iterator aGroupIter (aPrs3d->Groups()); aGroupIter.More(); aGroupIter.Next())
{
if (!aGroupIter.Value().IsNull())
{
for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.ChangeValue().Presentation();
- if (aPrs3d.IsNull()
- || aPrs3d->Presentation().IsNull())
- {
- continue;
- }
-
- for (Graphic3d_SequenceOfGroup::Iterator aGroupIter (aPrs3d->Presentation()->Groups()); aGroupIter.More(); aGroupIter.Next())
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.ChangeValue();
+ for (Graphic3d_SequenceOfGroup::Iterator aGroupIter (aPrs3d->Groups()); aGroupIter.More(); aGroupIter.Next())
{
if (!aGroupIter.Value().IsNull())
{
{
if (!myPresentations.IsEmpty())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = myPresentations.First().Presentation();
- const Handle(Graphic3d_Structure)& aStruct = aPrs3d->Presentation();
- const Graphic3d_BndBox3d& aBndBox = aStruct->CStructure()->BoundingBox();
+ const Handle(PrsMgr_Presentation)& aPrs3d = myPresentations.First();
+ const Graphic3d_BndBox3d& aBndBox = aPrs3d->CStructure()->BoundingBox();
if (aBndBox.IsValid())
{
theBndBox.Update (aBndBox.CornerMin().x(), aBndBox.CornerMin().y(), aBndBox.CornerMin().z(),
return;
}
- for (Standard_Integer aPrsIter = 1; aPrsIter <= myPresentations.Length(); ++aPrsIter)
+ for (PrsMgr_Presentations::Iterator aPrsIter (myPresentations); aPrsIter.More(); aPrsIter.Next())
{
- if (myPresentations (aPrsIter).Mode() == myDrawer->DisplayMode())
+ const Handle(PrsMgr_Presentation)& aPrs3d = aPrsIter.ChangeValue();
+ if (aPrs3d->Mode() == myDrawer->DisplayMode())
{
- const Handle(PrsMgr_Presentation)& aPrs3d = myPresentations (aPrsIter).Presentation();
- const Handle(Graphic3d_Structure)& aStruct = aPrs3d->Presentation();
- const Graphic3d_BndBox3d& aBndBox = aStruct->CStructure()->BoundingBox();
+ const Graphic3d_BndBox3d& aBndBox = aPrs3d->CStructure()->BoundingBox();
if (aBndBox.IsValid())
{
theBndBox.Update (aBndBox.CornerMin().x(), aBndBox.CornerMin().y(), aBndBox.CornerMin().z(),