]> OCCT Git - occt.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)
committerkgv <kgv@opencascade.com>
Fri, 29 Sep 2017 06:42:13 +0000 (09:42 +0300)
src/SelectMgr/SelectMgr_ViewerSelector.cxx

index 2d3cabfbb2332f21a0a60ed0640115b65a3a1141..eed1b3fc9baec8f732cfcffb4442762b3b33a2b9 100644 (file)
@@ -177,6 +177,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())
     {
@@ -231,6 +234,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(),
@@ -240,7 +244,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();