return 0;
}
+//========================================================================
+//function : OCC27757
+//purpose : Creates a box that has a sphere as child object and displays it
+//========================================================================
+static Standard_Integer OCC27757 (Draw_Interpretor& /*theDI*/, Standard_Integer /*theArgc*/, const char** theArgv)
+{
+ const Handle(AIS_InteractiveContext)& aCtx = ViewerTest::GetAISContext();
+ if (aCtx.IsNull())
+ {
+ std::cout << "No interactive context. Use 'vinit' command before " << theArgv[0] << "\n";
+ return 1;
+ }
+
+ TopoDS_Shape aBox = BRepPrimAPI_MakeBox (20.0, 20.0, 20.0).Shape();
+ TopoDS_Shape aSphere = BRepPrimAPI_MakeSphere (10.0).Shape();
+ gp_Trsf aTrsf;
+ aTrsf.SetTranslationPart (gp_Vec (20.0, 20.0, 0.0));
+ aSphere.Located (TopLoc_Location (aTrsf));
+
+
+ Handle(AIS_Shape) aBoxObj = new AIS_Shape (aBox);
+ Handle(AIS_Shape) aSphereObj = new AIS_Shape (aSphere);
+ aBoxObj->AddChild (aSphereObj);
+ aCtx->Display (aBoxObj, 1, 0, Standard_False);
+ aCtx->UpdateCurrentViewer();
+
+ return 0;
+}
+
//========================================================================
//function : Commands_19
//purpose :
theCommands.Add ("OCC27700",
"OCC27700: Checks drawing text after setting interior style",
__FILE__, OCC27700, group);
+ theCommands.Add ("OCC27757",
+ "OCC27757: Creates a box that has a sphere as child object and displays it",
+ __FILE__, OCC27757, group);
return;
}
{
if (!myGlobal.Contains (theObject))
{
- if (theObject->HasOwnPresentations())
+ for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
{
- SelectMgr_SequenceOfSelector aSelectors;
- aSelectors.Append (theSelector);
- myLocal.Bind (theObject, aSelectors);
- }
- else
- {
- for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
- {
- Load (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theSelector, theMode);
- }
+ Load (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theSelector, theMode);
}
+ if (!theObject->HasOwnPresentations())
+ return;
+
+ SelectMgr_SequenceOfSelector aSelectors;
+ aSelectors.Append (theSelector);
+ myLocal.Bind (theObject, aSelectors);
}
}
}
//==================================================
void SelectMgr_SelectionManager::Remove (const Handle(SelectMgr_SelectableObject)& theObject)
{
+ for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
+ {
+ Remove (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()));
+ }
+
+ if (!theObject->HasOwnPresentations())
+ return;
+
if (myGlobal.Contains (theObject))
{
for (TColStd_MapIteratorOfMapOfTransient aSelectorsIter (mySelectors); aSelectorsIter.More(); aSelectorsIter.Next())
myLocal.UnBind (theObject);
}
- else if (!theObject->HasOwnPresentations())
- {
- for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
- {
- Remove (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()));
- }
- }
theObject->ClearSelections();
}
if (!theSelector.IsNull() && !mySelectors.Contains (theSelector))
return;
- if (!theObject->HasOwnPresentations())
+ for (PrsMgr_ListOfPresentableObjectsIter anChildIter (theObject->Children()); anChildIter.More(); anChildIter.Next())
{
- for (PrsMgr_ListOfPresentableObjectsIter anChildIter (theObject->Children()); anChildIter.More(); anChildIter.Next())
- {
- Activate (Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()), theMode, theSelector);
- }
+ Activate (Handle(SelectMgr_SelectableObject)::DownCast (anChildIter.Value()), theMode, theSelector);
+ }
+ if (!theObject->HasOwnPresentations())
return;
- }
Standard_Boolean isComputed = Standard_False;
if (theObject->HasSelection (theMode))
const Standard_Integer theMode,
const Handle(SelectMgr_ViewerSelector)& theSelector)
{
-
- if (!theObject->HasOwnPresentations())
+ for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
{
- for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
- {
- Deactivate (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode, theSelector);
- }
+ Deactivate (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode, theSelector);
+ }
+ if (!theObject->HasOwnPresentations())
return;
- }
Standard_Boolean isInGlobal = myGlobal.Contains (theObject);
Standard_Boolean hasSelection = theMode == -1 ? Standard_True : theObject->HasSelection (theMode);
const Standard_Integer theMode,
const Handle(SelectMgr_ViewerSelector)& theSelector) const
{
- if (!theObject->HasOwnPresentations())
+ for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
{
- for (PrsMgr_ListOfPresentableObjectsIter anChildrenIter (theObject->Children()); anChildrenIter.More(); anChildrenIter.Next())
- {
- if (IsActivated (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode, theSelector))
- return Standard_True;
- }
+ if (IsActivated (Handle(SelectMgr_SelectableObject)::DownCast (anChildrenIter.Value()), theMode, theSelector))
+ return Standard_True;
+ }
+ if (!theObject->HasOwnPresentations())
return Standard_False;
- }
if (!(myGlobal.Contains (theObject) || myLocal.IsBound (theObject)))
return Standard_False;