]> OCCT Git - occt-copy.git/commitdiff
0029062: Visualization, SelectMgr_ViewerSelector - add NULL-check within ::checkOverl...
authorkgv <kgv@opencascade.com>
Tue, 19 Sep 2017 07:02:37 +0000 (10:02 +0300)
committersan <san@opencascade.com>
Tue, 19 Feb 2019 16:56:00 +0000 (19:56 +0300)
src/SelectMgr/SelectMgr_ViewerSelector.cxx

index bb95574a016522b2948c2a250090719d60c3d42d..958eb90796502b176b0c3adf1cdbf7dab05136be 100644 (file)
@@ -176,6 +176,9 @@ void SelectMgr_ViewerSelector::checkOverlap (const Handle(SelectBasics_Sensitive
   if (!anOwner.IsNull())
   {
     aSelectable = anOwner->Selectable();
+  }
+  if (!aSelectable.IsNull())
+  {
     if (!aSelectable->ClipPlanes().IsNull()
       && aSelectable->ClipPlanes()->ToOverrideGlobal())
     {
@@ -230,6 +233,7 @@ void SelectMgr_ViewerSelector::checkOverlap (const Handle(SelectBasics_Sensitive
   }
 
   if (HasDepthClipping (anOwner)
+  && !aSelectable.IsNull()
   &&  theMgr.GetActiveSelectionType() == SelectMgr_SelectingVolumeManager::Point)
   {
     Standard_Boolean isClipped = mySelectingVolumeMgr.IsClipped (*aSelectable->ClipPlanes(),
@@ -239,7 +243,7 @@ void SelectMgr_ViewerSelector::checkOverlap (const Handle(SelectBasics_Sensitive
   }
 
   SelectMgr_SortCriterion aCriterion;
-  myZLayerOrderMap.Find (aSelectable->ZLayer(), aCriterion.ZLayerPosition);
+  myZLayerOrderMap.Find (!aSelectable.IsNull() ? aSelectable->ZLayer() : Graphic3d_ZLayerId_Default, aCriterion.ZLayerPosition);
   aCriterion.Entity    = theEntity;
   aCriterion.Priority  = anOwner->Priority();
   aCriterion.Depth     = aPickResult.Depth();