Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/visu.git] / src / VISU_I / VISU_IsoSurfaces_i.hh
index a5a6d208eedee43a6f6b254059af392db9e5e621..86833c534a7f2ac6a7d24613fa67d0df42f088a3 100644 (file)
-//  VISU OBJECT : interactive object for VISU entities implementation
+//  Copyright (C) 2007-2008  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
+//
+//  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.
 //
-//  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//  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_PrsObject_i.hxx
 //  Author : Alexey PETROV
 //  Module : VISU
-
+//
 #ifndef VISU_IsoSurfaces_i_HeaderFile
 #define VISU_IsoSurfaces_i_HeaderFile
 
-#include "VISU_ScalarMap_i.hh"
+#include "VISU_I.hxx"
+//#include "VISU_ScalarMap_i.hh"
+#include "VISU_MonoColorPrs_i.hh"
 
 class VISU_IsoSurfacesPL;
 
-namespace VISU{
-  class IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
-                       public virtual ScalarMap_i
+namespace VISU
+{
+  //----------------------------------------------------------------------------
+  class VISU_I_EXPORT IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
+                                     public virtual MonoColorPrs_i
   {
     static int myNbPresent;
-    IsoSurfaces_i();
     IsoSurfaces_i(const IsoSurfaces_i&);
+
   public:
-    IsoSurfaces_i(Result_i* theResult, bool theAddToStudy = true);
-    virtual void SameAs(const IsoSurfaces_i* theOrigin);
-    virtual ~IsoSurfaces_i();
-    virtual void Destroy();
+    //----------------------------------------------------------------------------
+    typedef MonoColorPrs_i TSuperClass;
+    typedef VISU::IsoSurfaces TInterface;
 
-    virtual VISU::VISUType GetType() { return VISU::TISOSURFACE;};
+    explicit
+    IsoSurfaces_i(EPublishInStudyMode thePublishInStudyModep);
 
-    virtual void SetNbSurfaces(CORBA::Long theNb);
-    virtual CORBA::Long GetNbSurfaces();
+    virtual void SameAs(const Prs3d_i* theOrigin);
 
-    virtual void SetSubRange(CORBA::Double theMin, CORBA::Double theMax);
-    virtual CORBA::Double GetSubMin();
-    virtual CORBA::Double GetSubMax();
+    virtual 
+    ~IsoSurfaces_i();
 
-    typedef VISU::IsoSurfaces TInterface;
-    VISU_IsoSurfacesPL* GetIsoSurfacesPL(){ return myIsoSurfacesPL;}
+    virtual
+    VISU::VISUType 
+    GetType() 
+    { 
+      return VISU::TISOSURFACES;
+    }
+
+    virtual
+    void
+    SetNbSurfaces(CORBA::Long theNb);
+
+    virtual
+    CORBA::Long 
+    GetNbSurfaces();
+
+    virtual 
+    void
+    SetSubRange(CORBA::Double theMin, CORBA::Double theMax);
+
+    virtual
+    CORBA::Double 
+    GetSubMin();
+
+    virtual
+    CORBA::Double 
+    GetSubMax();
+
+    VISU_IsoSurfacesPL* 
+    GetSpecificPL() const
+    { 
+      return myIsoSurfacesPL; 
+    }
+
+
+    virtual CORBA::Boolean IsLabeled();
+    virtual void ShowLabels(CORBA::Boolean theShow, CORBA::Long theNb);
+
+    virtual CORBA::Long GetNbLabels();
+    
 
   protected:
-    virtual void DoHook();
+    //! Redefines VISU_ColoredPrs3d_i::CreatePipeLine
+    virtual 
+    void 
+    CreatePipeLine(VISU_PipeLine* thePipeLine);
+
+    //! Redefines VISU_ScalarMap_i::DoSetInput
+    virtual 
+    void
+    DoSetInput(bool theIsInitilizePipe, bool theReInit);
+
+    //! Redefines VISU_ScalarMap_i::CheckIsPossible
+    virtual 
+    bool 
+    CheckIsPossible();
+
     VISU_IsoSurfacesPL* myIsoSurfacesPL;
 
+    bool myIsLabeled;
+    CORBA::Long myNbLabels;
+
   public:
-    static int IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, 
-                         const char* theFieldName, int theIteration);
-    virtual Storable* Create(const char* theMeshName, VISU::Entity theEntity, 
-                            const char* theFieldName, int theIteration);
+    static
+    size_t
+    IsPossible(Result_i* theResult, 
+              const std::string& theMeshName, 
+              VISU::Entity theEntity,
+              const std::string& theFieldName, 
+              CORBA::Long theTimeStampNumber,
+              bool theIsMemoryCheck);
+
+    virtual
+    Storable* 
+    Create(const std::string& theMeshName, 
+          VISU::Entity theEntity,
+          const std::string& theFieldName, 
+          CORBA::Long theTimeStampNumber);
+
+    static const std::string myComment;
+
+    virtual 
+    const char* 
+    GetComment() const;
+
+    virtual
+    QString
+    GenerateName();
+
+    virtual
+    const char* 
+    GetIconName();
 
-    static const string myComment;
-    virtual const char* GetComment() const;
-    virtual QString GenerateName();
+    virtual
+    void
+    ToStream(std::ostringstream& theStr);
 
-    virtual void ToStream(std::ostringstream& theStr);
+    virtual
+    Storable* 
+    Restore(SALOMEDS::SObject_ptr theSObject,
+           const Storable::TRestoringMap& theMap);
 
-    virtual Storable* Restore(const Storable::TRestoringMap& theMap)
-      throw(std::logic_error&);
-    static Storable* Restore(SALOMEDS::SObject_ptr theSObject, 
-                            const string& thePrefix, const Storable::TRestoringMap& theMap)
-      throw(std::logic_error&);
+    virtual 
+    VISU_Actor* 
+    CreateActor();
+    
+    virtual 
+    void 
+    SetMapScale(double theMapScale = 1.0);
 
-    virtual void SetMapScale(double theMapScale = 1.0);
+    virtual void UpdateActor(VISU_ActorBase* theActor);
+    
   };
 }