]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
vtkDataSetMapper moved to VISU_DataSetActor
authorouv <ouv@opencascade.com>
Mon, 25 Dec 2006 09:49:04 +0000 (09:49 +0000)
committerouv <ouv@opencascade.com>
Mon, 25 Dec 2006 09:49:04 +0000 (09:49 +0000)
VISU_GaussPtsAct has its own vtkPolyDataMapper now

14 files changed:
src/OBJECT/Makefile.in
src/OBJECT/VISU_Actor.cxx
src/OBJECT/VISU_Actor.h
src/OBJECT/VISU_DataSetActor.cxx [new file with mode: 0644]
src/OBJECT/VISU_DataSetActor.h [new file with mode: 0644]
src/OBJECT/VISU_GaussPtsAct.cxx
src/OBJECT/VISU_GaussPtsAct.h
src/OBJECT/VISU_MeshAct.h
src/OBJECT/VISU_ScalarMapAct.h
src/PIPELINE/VISU_GaussPointsPL.cxx
src/PIPELINE/VISU_GaussPointsPL.hxx
src/VISUGUI/VisuGUI_FieldFilter.cxx
src/VISU_I/VISU_ColoredPrs3dCache_i.cc
src/VISU_I/VISU_ColoredPrs3d_i.cc

index 92c9b0148cd463bad280b3241022451befd74b48..60cddef1308b73014e704c76ad9f006651164ced 100644 (file)
@@ -39,6 +39,7 @@ EXPORT_HEADERS = \
        VISU_GaussPtsActorFactory.h \
        VISU_Event.h \
        VISU_Actor.h \
+       VISU_DataSetActor.h \
        VISU_MeshAct.h \
        VISU_ScalarMapAct.h \
        VISU_GaussPtsAct.h \
@@ -49,6 +50,7 @@ EXPORT_HEADERS = \
 LIB = libVisuObject.la
 LIB_SRC = \
        VISU_Actor.cxx \
+       VISU_DataSetActor.cxx \
        VISU_MeshAct.cxx \
        VISU_ScalarMapAct.cxx \
        VISU_GaussPtsDeviceActor.cxx \
index 242d4fbb3f5d263e7936fe42efe70dba67662f1d..85197aa3073120d91c071e60db342f2b895aa9d4 100644 (file)
@@ -54,7 +54,6 @@
 #include <vtkShrinkFilter.h>
 #include <vtkShrinkPolyData.h>
 
-#include <vtkDataSetMapper.h>
 #include <vtkGeometryFilter.h>
 #include <vtkObjectFactory.h>
 
@@ -77,7 +76,7 @@ static int MYDEBUG = 0;
 //#define ENABLE_ANNOTATION
 
 //----------------------------------------------------------------------------
-vtkStandardNewMacro(VISU_Actor);
+//vtkStandardNewMacro(VISU_Actor);
 
 //----------------------------------------------------------------------------
 VISU_Actor
@@ -85,7 +84,6 @@ VISU_Actor
   myIsVTKMapping(false),
   myPrs3d(NULL),
   myActorFactory(NULL),
-  myMapper(vtkDataSetMapper::New()),
   myIsShrunk(false),
   myIsShrinkable(false),
   myShrinkFilter(VTKViewer_ShrinkFilter::New()),
@@ -94,7 +92,6 @@ VISU_Actor
 {
   if(MYDEBUG) MESSAGE("VISU_Actor::VISU_Actor - this = "<<this);
 
-  myMapper->Delete();
   myShrinkFilter->Delete();
 
   myStoreMapping = true;
@@ -133,10 +130,6 @@ VISU_Actor
 ::ShallowCopyPL(VISU_PipeLine* thePipeLine)
 {
   myPipeLine->ShallowCopy(thePipeLine, true);
-  vtkDataSetMapper* aTarget = GetDataSetMapper();
-  vtkDataSetMapper* aSource = thePipeLine->GetDataSetMapper();
-  VISU::CopyDataSetMapper(aTarget, aSource, true);
-  aTarget->SetLookupTable(aSource->GetLookupTable());
 }
 
 //----------------------------------------------------------------------------
@@ -217,14 +210,6 @@ VISU_Actor
 }
 
 //----------------------------------------------------------------------------
-void
-VISU_Actor
-::SetMapperInput(vtkDataSet* theDataSet) 
-{
-  myMapper->SetInput(theDataSet);
-  SetMapper(myMapper.GetPointer());
-}
-
 void
 VISU_Actor
 ::SetPipeLine(VISU_PipeLine* thePipeLine) 
@@ -412,14 +397,6 @@ VISU_Actor
   return GetCurrentPL()->GetOutput();
 }
 
-//----------------------------------------------------------------------------
-vtkDataSetMapper* 
-VISU_Actor
-::GetDataSetMapper()
-{
-  return myMapper.GetPointer();
-}
-
 //----------------------------------------------------------------------------
 unsigned long int
 VISU_Actor
index 8d60bf54b14206011793a5439fa82aa4fcecde10..d26cea314cae409d2dd9986310973bac1f3a7ae8 100644 (file)
@@ -39,7 +39,6 @@
 
 class vtkProp;
 class vtkProperty;
-class vtkDataSetMapper;
 class vtkTextMapper;
 class vtkTextActor;
 class vtkInteractorStyle;
@@ -65,9 +64,9 @@ class VTKOCC_EXPORT VISU_Actor :
  public:
   vtkTypeMacro(VISU_Actor,SALOME_Actor);
 
-  static 
-  VISU_Actor* 
-  New();
+  //static 
+  //VISU_Actor* 
+  //New();
 
   //! Copies all properties from the given actor
   virtual
@@ -196,10 +195,6 @@ class VTKOCC_EXPORT VISU_Actor :
   vtkDataSet* 
   GetInput(); 
 
-  virtual 
-  vtkDataSetMapper* 
-  GetDataSetMapper();
-
   //! Gets memory size used by the instance (bytes).
   virtual
   unsigned long int
@@ -239,7 +234,7 @@ class VTKOCC_EXPORT VISU_Actor :
  
   virtual 
   void
-  SetMapperInput(vtkDataSet* theDataSet);
+  SetMapperInput(vtkDataSet* theDataSet) = 0;
 
   virtual
   VISU_PipeLine* 
@@ -249,7 +244,6 @@ class VTKOCC_EXPORT VISU_Actor :
   bool myIsVTKMapping;
   VISU::Prs3d_i* myPrs3d;
   vtkSmartPointer<VISU_PipeLine> myPipeLine;
-  vtkSmartPointer<vtkDataSetMapper> myMapper;
 
   VISU::TActorFactory* myActorFactory;
   vtkTimeStamp myUpdateFromFactoryTime;
diff --git a/src/OBJECT/VISU_DataSetActor.cxx b/src/OBJECT/VISU_DataSetActor.cxx
new file mode 100644 (file)
index 0000000..e24b8a9
--- /dev/null
@@ -0,0 +1,93 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  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 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 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : VISU
+
+#include "VISU_DataSetActor.h"
+#include "VISU_PipeLine.hxx"
+#include "VISU_PipeLineUtils.hxx"
+
+#include <vtkDataSetMapper.h>
+#include <vtkObjectFactory.h>
+
+#include <boost/bind.hpp>
+
+using namespace std;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+//----------------------------------------------------------------------------
+vtkStandardNewMacro(VISU_DataSetActor);
+
+//----------------------------------------------------------------------------
+VISU_DataSetActor
+::VISU_DataSetActor():
+  myMapper(vtkDataSetMapper::New())
+{
+  if(MYDEBUG) MESSAGE("VISU_DataSetActor::VISU_DataSetActor - this = "<<this);
+
+  myMapper->Delete();
+}
+
+//----------------------------------------------------------------------------
+VISU_DataSetActor
+::~VISU_DataSetActor()
+{
+  if(MYDEBUG) MESSAGE("~VISU_DataSetActor() - this = "<<this);
+}
+
+//----------------------------------------------------------------------------
+void
+VISU_DataSetActor
+::ShallowCopyPL(VISU_PipeLine* thePipeLine)
+{
+  Superclass::ShallowCopyPL(thePipeLine);
+
+  vtkDataSetMapper* aTarget = GetDataSetMapper();
+  vtkDataSetMapper* aSource = thePipeLine->GetDataSetMapper();
+  VISU::CopyDataSetMapper(aTarget, aSource, true);
+  aTarget->SetLookupTable(aSource->GetLookupTable());
+}
+
+//----------------------------------------------------------------------------
+void
+VISU_DataSetActor
+::SetMapperInput(vtkDataSet* theDataSet) 
+{
+  myMapper->SetInput(theDataSet);
+  SetMapper(myMapper.GetPointer());
+}
+
+//----------------------------------------------------------------------------
+vtkDataSetMapper* 
+VISU_DataSetActor
+::GetDataSetMapper()
+{
+  return myMapper.GetPointer();
+}
diff --git a/src/OBJECT/VISU_DataSetActor.h b/src/OBJECT/VISU_DataSetActor.h
new file mode 100644 (file)
index 0000000..9e7ef45
--- /dev/null
@@ -0,0 +1,74 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  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 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 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : VISU
+
+#ifndef VISU_DATASETACTOR_H
+#define VISU_DATASETACTOR_H
+
+#include "VISU_Actor.h"
+
+class vtkDataSetMapper;
+
+#ifdef _WIN_32
+#define VTKOCC_EXPORT __declspec (dllexport)
+#else
+#define VTKOCC_EXPORT VTK_EXPORT
+#endif
+
+//----------------------------------------------------------------------------
+class VTKOCC_EXPORT VISU_DataSetActor : public VISU_Actor
+{
+ public:
+  vtkTypeMacro(VISU_DataSetActor,VISU_Actor);
+
+  static 
+  VISU_DataSetActor* 
+  New();
+
+  virtual
+  void
+  ShallowCopyPL(VISU_PipeLine* thePipeLine);
+
+  virtual 
+  vtkDataSetMapper* 
+  GetDataSetMapper();
+
+  //----------------------------------------------------------------------------
+ protected:
+  VISU_DataSetActor();
+
+  virtual
+  ~VISU_DataSetActor();
+  virtual 
+  void
+  SetMapperInput(vtkDataSet* theDataSet);
+
+  //----------------------------------------------------------------------------
+  vtkSmartPointer<vtkDataSetMapper> myMapper;
+};
+
+#endif //VISU_DATASETACTOR_H
index a7a9d09cc591d13954f3028f765a6123950fc2ff..564cda162557bdb2e4b14ebbba1191d9d27435b1 100644 (file)
@@ -70,7 +70,7 @@
 #include <boost/bind.hpp>
 
 #include <vtkUnstructuredGrid.h>
-#include <vtkDataSetMapper.h>
+#include <vtkPolyDataMapper.h>
 #include <vtkRenderWindow.h>
 #include <vtkCellArray.h>
 #include <vtkCell.h>
@@ -112,7 +112,8 @@ VISU_GaussPtsAct
   myBarVisibility(true),
   myPickingSettings(NULL),
   myInsideCursorSettings(NULL),
-  myCurrentPL(NULL)
+  myCurrentPL(NULL),
+  myMapper(vtkPolyDataMapper::New())
 {
   if(MYDEBUG) MESSAGE("VISU_GaussPtsAct::VISU_GaussPtsAct - this = "<<this);
 
@@ -152,6 +153,8 @@ VISU_GaussPtsAct
   myCellActor->GetProperty()->SetDiffuse(0.0);
 
   myScalarBarCtrl->Delete();
+
+  myMapper->Delete();
 }
 
 VISU_GaussPtsAct
@@ -211,12 +214,16 @@ VISU_GaussPtsAct
 
 
 //----------------------------------------------------------------------------
+
 vtkMapper* 
 VISU_GaussPtsAct
 ::GetMapper()
 {
+  //vtkMapper* aMapper = myCurrentPL->GetPSMapper();
+  //aMapper->Update();
+  //return aMapper;
   myMapper->Update();
-  return Superclass::GetMapper();
+  return myMapper.GetPointer();
 }
 
 vtkFloatingPointType* 
@@ -392,6 +399,8 @@ VISU_GaussPtsAct
   myDeviceActor->SetPipeLine(GetGaussPointsPL());
   myCurrentPL = myDeviceActor->GetPipeLine();
 
+  //SetMapper(myCurrentPL->GetPSMapper());
+
   myMapper->SetInput(myCurrentPL->GetPickableDataSet());
   SetMapper(myMapper.GetPointer());
 }
@@ -1111,14 +1120,6 @@ VISU_GaussPtsAct
   Update();
 }
 
-//----------------------------------------------------------------------------
-void
-VISU_GaussPtsAct
-::UpdateFromFactory()
-{
-  Superclass::UpdateFromFactory();
-}
-
 //----------------------------------------------------------------------------
 unsigned long int 
 VISU_GaussPtsAct
index 35583a767900eda8087ea0ff44c64905bcc26378..7396f591323888e833ce2ff229678ac50693c59e 100644 (file)
@@ -53,7 +53,7 @@ class VISU_CursorPyramid;
 class VISU_FramedTextActor;
 
 class vtkUnstructuredGrid;
-class vtkDataSetMapper;
+class vtkPolyDataMapper;
 class vtkDataArray;
 
 class vtkInteractorObserver;
@@ -248,10 +248,6 @@ class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_Actor
   GetPickable();
 
   //----------------------------------------------------------------------------
-  virtual
-  void
-  UpdateFromFactory();
-
   virtual
   unsigned long int 
   GetMTime();
@@ -318,6 +314,8 @@ class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_Actor
   VISU_GaussPointsPL* myCurrentPL;
   vtkSmartPointer<VISU_GaussPointsPL> myGaussPointsPL;
 
+  vtkSmartPointer<vtkPolyDataMapper> myMapper;
+
   vtkIdType myLastObjPointID;
 
   vtkSmartPointer<VISU_FramedTextActor> myTextActor;
index 65fd0bb839e93985472d177db8dca833b1183495..3ca1e471e946d86d0995a52fe1c0c8ea88fc8ccf 100644 (file)
@@ -29,7 +29,7 @@
 #ifndef VISU_MeshAct_HeaderFile
 #define VISU_MeshAct_HeaderFile
 
-#include "VISU_Actor.h"
+#include "VISU_DataSetActor.h"
 #include "SVTK_DeviceActor.h"
 
 namespace SVTK
@@ -40,10 +40,10 @@ namespace SVTK
   }
 }
 
-class VTKOCC_EXPORT VISU_MeshAct : public VISU_Actor 
+class VTKOCC_EXPORT VISU_MeshAct : public VISU_DataSetActor 
 {
  public:
-  vtkTypeMacro(VISU_MeshAct,VISU_Actor);
+  vtkTypeMacro(VISU_MeshAct,VISU_DataSetActor);
   static 
   VISU_MeshAct* 
   New();
index 78d04005f09f831975c1c3260983097b5c89f028..9145403f22f8e76b400e52fc89552c129f1b651e 100644 (file)
 #ifndef VISU_ScalarMapAct_HeaderFile
 #define VISU_ScalarMapAct_HeaderFile
 
-#include "VISU_Actor.h"
+#include "VISU_DataSetActor.h"
 
 class VISU_ScalarBarActor;
 
-class VTKOCC_EXPORT VISU_ScalarMapAct : public VISU_Actor 
+class VTKOCC_EXPORT VISU_ScalarMapAct : public VISU_DataSetActor 
 {
  public:
-  vtkTypeMacro(VISU_ScalarMapAct,VISU_Actor);
+  vtkTypeMacro(VISU_ScalarMapAct,VISU_DataSetActor);
 
   static
   VISU_ScalarMapAct* 
index 12c36f84f5ac77ca890cb7371139b2c9ce267782..02f002c22871b40fcf856c68160285edb2bf26f3 100644 (file)
@@ -211,7 +211,7 @@ VISU_GaussPointsPL
   return myPSMapper;
 }
 
-vtkDataSet
+vtkPolyData
 VISU_GaussPointsPL
 ::GetPickableDataSet()
 {
index d17b732c956e7ba34c5421e954d069832690758d..a30f38664ba8c8a02d06b203406d513c4cfae588 100644 (file)
@@ -74,7 +74,7 @@ public:
   GetPSMapper();
 
   //! Get an intermediate dataset that can be picked  
-  vtkDataSet*
+  vtkPolyData*
   GetPickableDataSet();
 
   //! Redefined method for initialization of the pipeline.
index 3dd45bb1d8ff2a09ffc501e24fca88ef8156f264..fdbc579bd9f394f0431d547874b65f3272d5e4c5 100644 (file)
@@ -63,6 +63,9 @@ bool VisuGUI_FieldFilter::isOk( const SUIT_DataOwner* theDataOwner ) const
 
   if( anOwner && anAppStudy )
   {
+    cout << "Prs3d - " << myPrs3dEntry.latin1() << endl;
+    cout << "Owner - " << anOwner->entry().latin1() << endl;
+
     if(myPrs3dEntry == anOwner->entry())
       return true;
 
index 3cbde11a4747067985e167fc5c655348667e0640..3947b4b65440480aa818f3397a15598bf5e50e5a 100644 (file)
@@ -73,7 +73,7 @@ namespace
   
   
   //----------------------------------------------------------------------------
-  VISU::TPrs3dPtr
+  VISU::ColoredPrs3d_i*
   FindSameFieldPrs(const VISU::TColoredPrs3dHolderMap& theHolderMap,
                   const VISU::ColoredPrs3dHolder::BasicInput& theInput,
                   VISU::VISUType theType)
@@ -90,7 +90,7 @@ namespace
          break;
        VISU::ColoredPrs3dHolder::BasicInput_var anInput = aPrs3d->GetBasicInput();
        if(IsSameField(theInput, anInput))
-         return aPrs3d;
+         return aPrs3d.get();
       }
     }
     return VISU::TPrs3dPtr();
@@ -104,7 +104,7 @@ namespace
                     VISU::VISUType theType,
                     const size_t theRawEstimatedMemorySize)
   {
-    VISU::TPrs3dPtr aPrs3d = FindSameFieldPrs(theHolderMap, theInput, theType);
+    VISU::ColoredPrs3d_i* aPrs3d = FindSameFieldPrs(theHolderMap, theInput, theType);
     if(aPrs3d)
       return aPrs3d->GetMemorySize();
     return CORBA::Float(theRawEstimatedMemorySize/(1024.0*1024.0)); // convert to Mb
index 789ca81f9280e3dad23bb82f34c66c59ff1bf4a7..0f98f149db5e4ecc23ad29275013d977dbea5254 100644 (file)
@@ -461,6 +461,8 @@ VISU::ColoredPrs3d_i
 
     UseFixedRange( anOrigin->IsRangeFixed() );
     myIsTimeStampFixed = anOrigin->IsTimeStampFixed();
+
+    SetHolderEntry( anOrigin->GetHolderEntry() );
   }
 }