Salome HOME
refs #550: fix crash when myObject is NULL
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_VTKPrs.cxx
index ad2fd3928f879166815b5332f1b7af0de3b2260d..c16dbb01f8309fcaf873fe1eedb65cb939a10234 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include "HYDROGUI_VTKPrs.h"
 
 #include "HYDROGUI_DataObject.h"
+#include <HYDROData_IAltitudeObject.h>
+#include <vtkMapper.h>
 
 //=======================================================================
 // name    : HYDROGUI_VTKPrs
 // Purpose : Constructor
 //=======================================================================
 HYDROGUI_VTKPrs::HYDROGUI_VTKPrs( const Handle(HYDROData_Entity)& theObject ) 
-: myObject( theObject ), 
+: SVTK_Prs( "" ),
+  myObject( theObject ), 
   myIsToUpdate( false )
 {
   // Define IO for actors to be added:
   QString anEntry = HYDROGUI_DataObject::dataObjectEntry( theObject );
   myIO = new SALOME_InteractiveObject(
     anEntry.toAscii(), QString::number( theObject->GetKind() ).toAscii(), theObject->GetName().toAscii() );
+  myZRange[0] = HYDROData_IAltitudeObject::GetInvalidAltitude();
+  myZRange[1] = HYDROData_IAltitudeObject::GetInvalidAltitude();
 }
 
 //=======================================================================
@@ -52,4 +53,20 @@ HYDROGUI_VTKPrs::~HYDROGUI_VTKPrs()
 //=======================================================================
 void HYDROGUI_VTKPrs::compute()
 {
+  setIsToUpdate( false );
+}
+
+//=======================================================================
+// name    : setZRange
+// Purpose : Compute the presentation
+//=======================================================================
+void HYDROGUI_VTKPrs::setZRange( double theRange[] )
+{
+  myZRange[0] = theRange[0];
+  myZRange[1] = theRange[1];
+  vtkMapper* aMapper = mapper();
+  if ( aMapper )
+  {
+    mapper()->SetScalarRange( myZRange );
+  }
 }