Salome HOME
Bug IPAL22927: TC6.5.0: bounding box is not updated for Point Map 3D
[modules/visu.git] / src / PIPELINE / VISU_Plot3DPL.hxx
index cb237fa78a8261c6d4e6ff57e7bde9ea1efa2738..328fa3bd361e8bfd68b2962c9cf456099895b96b 100644 (file)
@@ -1,56 +1,60 @@
-//  VISU OBJECT : interactive object for VISU entities implementation
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  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.
+// 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.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-//
+
+//  VISU OBJECT : interactive object for VISU entities implementation
 // File:    VISU_CutPlanesPL.hxx
 // Author:  Alexey PETROV
 // Module : VISU
-
+//
 #ifndef VISU_Plot3DPL_HeaderFile
 #define VISU_Plot3DPL_HeaderFile
 
+#include "VISUPipeline.hxx"
 #include "VISU_ScalarMapPL.hxx"
 #include "VISU_CutPlanesPL.hxx"
 
 class vtkWarpScalar;
 class vtkContourFilter;
 class vtkGeometryFilter;
-class vtkCellDataToPointData;
+class VISU_CellDataToPointData;
 
-class VISU_Plot3DPL : public VISU_ScalarMapPL{
-protected:
-  VISU_Plot3DPL();
-  VISU_Plot3DPL(const VISU_Plot3DPL&);
 
+//----------------------------------------------------------------------------
+class VISU_PIPELINE_EXPORT VISU_Plot3DPL : public VISU_ScalarMapPL
+{
 public:
-  vtkTypeMacro(VISU_Plot3DPL,VISU_ScalarMapPL);
-  static VISU_Plot3DPL* New();
-  virtual ~VISU_Plot3DPL();
+  vtkTypeMacro(VISU_Plot3DPL, VISU_ScalarMapPL);
+
+  static
+  VISU_Plot3DPL* 
+  New();
 
   virtual
-  void
-  ShallowCopy(VISU_PipeLine *thePipeLine);
+  unsigned long int 
+  GetMTime();
 
+  //----------------------------------------------------------------------------
   VISU_CutPlanesPL::PlaneOrientation
-  GetPlaneOrientation() const;
+  GetPlaneOrientation();
 
   vtkFloatingPointType
   GetRotateX();
@@ -60,70 +64,101 @@ public:
 
   void
   SetOrientation(VISU_CutPlanesPL::PlaneOrientation theOrientation,
-                vtkFloatingPointType theXAngle = 0.0,
-                vtkFloatingPointType theYAngle = 0.0);
+                 vtkFloatingPointType theXAngle = 0.0,
+                 vtkFloatingPointType theYAngle = 0.0);
 
   vtkFloatingPointType
-  GetPlanePosition() const;
+  GetPlanePosition();
 
   bool
-  IsPositionRelative() const;
+  IsPositionRelative();
 
   void
   SetPlanePosition(vtkFloatingPointType thePosition,
-                  bool theIsRelative);
+                   bool theIsRelative);
 
   void
   SetScaleFactor(vtkFloatingPointType theScaleFactor);
 
   vtkFloatingPointType
-  GetScaleFactor() const;
+  GetScaleFactor();
 
   void
-  SetContourPrs (bool theIsContourPrs ) { myIsContour = theIsContourPrs; }
+  SetContourPrs(bool theIsContourPrs );
 
   bool
-  GetIsContourPrs() { return myIsContour; }
+  GetIsContourPrs();
 
   void
   SetNumberOfContours(int theNumber);
 
   int
-  GetNumberOfContours() const;
+  GetNumberOfContours();
 
-  void GetBasePlane (vtkFloatingPointType theOrigin[3],
-                     vtkFloatingPointType theNormal[3],
-                     bool  theCenterOrigine = false ) const;
+  void
+  GetBasePlane (vtkFloatingPointType theOrigin[3],
+                vtkFloatingPointType theNormal[3],
+                bool  theCenterOrigine = false );
+  
+  void
+  GetMinMaxPosition( vtkFloatingPointType& minPos, 
+                     vtkFloatingPointType& maxPos );
+  
+public:
+  virtual
+  void
+  Init();
 
-  void GetMinMaxPosition( vtkFloatingPointType& minPos, 
-                         vtkFloatingPointType& maxPos ) const;
+  virtual
+  void
+  Update();
 
-public:
-  virtual void Init();
-  virtual void Update();
+  //! Gets memory size used by the instance (bytes).
+  virtual
+  unsigned long int
+  GetMemorySize();
 
   static
   VISU_CutPlanesPL::PlaneOrientation
   GetOrientation(vtkDataSet* theDataSet);
 
+  static
   vtkFloatingPointType
-  GetScaleFactor(vtkDataSet* theDataSet);
+  GetScaleFactor( VISU_ColoredPL* theColoredPL,
+                  vtkDataSet* theDataSet );
 
-  void SetMapScale(vtkFloatingPointType theMapScale);
+  void 
+  SetMapScale(vtkFloatingPointType theMapScale);
 
 protected:
-  virtual THook* DoHook();
+  VISU_Plot3DPL();
+
+  virtual 
+  ~VISU_Plot3DPL();
+
+  virtual
+  vtkDataSet* 
+  InsertCustomPL();
+
+  virtual
+  void
+  DoShallowCopy(VISU_PipeLine *thePipeLine,
+                bool theIsCopyInput);
 
   vtkFloatingPointType myAngle[3];
   bool myIsRelative, myIsContour;
-  vtkFloatingPointType myPosition, myScaleFactor;
+  vtkFloatingPointType myPosition, myScaleFactor, myMapScaleFactor;
   VISU_CutPlanesPL::PlaneOrientation myOrientation;
 
-  TVTKSmartPtr<vtkCellDataToPointData> myCellDataToPointData;
-  TVTKSmartPtr<vtkAppendPolyData> myAppendPolyData;
-  TVTKSmartPtr<vtkGeometryFilter> myGeometryFilter;
-  TVTKSmartPtr<vtkContourFilter> myContourFilter;
-  TVTKSmartPtr<vtkWarpScalar> myWarpScalar;
+  vtkSmartPointer<VISU_CellDataToPointData> myCellDataToPointData;
+  vtkSmartPointer<vtkAppendPolyData> myAppendPolyData;
+  vtkSmartPointer<vtkGeometryFilter> myGeometryFilter;
+  vtkSmartPointer<vtkContourFilter> myContourFilter;
+  vtkSmartPointer<vtkWarpScalar> myWarpScalar;
+
+private:
+  VISU_Plot3DPL(const VISU_Plot3DPL&);;  // Not implemented.
+  void operator=(const VISU_Plot3DPL&);  // Not implemented.
 };
 
 #endif