Salome HOME
b8e245c5317ce6def90d479a0ca7f5e7a95a1155
[modules/visu.git] / src / VISU_I / VISU_IsoSurfaces_i.hh
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  VISU OBJECT : interactive object for VISU entities implementation
23 //  File   : VISU_PrsObject_i.hxx
24 //  Author : Alexey PETROV
25 //  Module : VISU
26 //
27 #ifndef VISU_IsoSurfaces_i_HeaderFile
28 #define VISU_IsoSurfaces_i_HeaderFile
29
30 #include "VISU_I.hxx"
31 //#include "VISU_ScalarMap_i.hh"
32 #include "VISU_MonoColorPrs_i.hh"
33
34 class VISU_IsoSurfacesPL;
35
36 namespace VISU
37 {
38   //----------------------------------------------------------------------------
39   class VISU_I_EXPORT IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
40                                       public virtual MonoColorPrs_i
41   {
42     static int myNbPresent;
43     IsoSurfaces_i(const IsoSurfaces_i&);
44
45   public:
46     //----------------------------------------------------------------------------
47     typedef MonoColorPrs_i TSuperClass;
48     typedef VISU::IsoSurfaces TInterface;
49
50     explicit
51     IsoSurfaces_i(EPublishInStudyMode thePublishInStudyModep);
52
53     virtual void SameAs(const Prs3d_i* theOrigin);
54
55     virtual 
56     ~IsoSurfaces_i();
57
58     virtual
59     VISU::VISUType 
60     GetType() 
61     { 
62       return VISU::TISOSURFACES;
63     }
64
65     virtual
66     void
67     SetNbSurfaces(CORBA::Long theNb);
68
69     virtual
70     CORBA::Long 
71     GetNbSurfaces();
72
73     virtual 
74     void
75     SetSubRange(CORBA::Double theMin, CORBA::Double theMax);
76
77     virtual
78     CORBA::Double 
79     GetSubMin();
80
81     virtual
82     CORBA::Double 
83     GetSubMax();
84
85     virtual
86     void
87     SetSubRangeFixed(CORBA::Boolean theIsFixed);
88
89     virtual
90     CORBA::Boolean
91     IsSubRangeFixed();
92
93     VISU_IsoSurfacesPL* 
94     GetSpecificPL() const
95     { 
96       return myIsoSurfacesPL; 
97     }
98
99
100     virtual CORBA::Boolean IsLabeled();
101     virtual void ShowLabels(CORBA::Boolean theShow, CORBA::Long theNb);
102
103     virtual CORBA::Long GetNbLabels();
104     
105
106   protected:
107     //! Redefines VISU_ColoredPrs3d_i::CreatePipeLine
108     virtual 
109     void 
110     CreatePipeLine(VISU_PipeLine* thePipeLine);
111
112     //! Redefines VISU_ScalarMap_i::DoSetInput
113     virtual 
114     void
115     DoSetInput(bool theIsInitilizePipe, bool theReInit);
116
117     //! Redefines VISU_ScalarMap_i::CheckIsPossible
118     virtual 
119     bool 
120     CheckIsPossible();
121
122     VISU_IsoSurfacesPL* myIsoSurfacesPL;
123
124     bool myIsLabeled;
125     CORBA::Long myNbLabels;
126
127   public:
128     static
129     size_t
130     IsPossible(Result_i* theResult, 
131                const std::string& theMeshName, 
132                VISU::Entity theEntity,
133                const std::string& theFieldName, 
134                CORBA::Long theTimeStampNumber,
135                bool theIsMemoryCheck);
136
137     virtual
138     Storable* 
139     Create(const std::string& theMeshName, 
140            VISU::Entity theEntity,
141            const std::string& theFieldName, 
142            CORBA::Long theTimeStampNumber);
143
144     static const std::string myComment;
145
146     virtual 
147     const char* 
148     GetComment() const;
149
150     virtual
151     QString
152     GenerateName();
153
154     virtual
155     const char* 
156     GetIconName();
157
158     virtual
159     void
160     ToStream(std::ostringstream& theStr);
161
162     virtual
163     Storable* 
164     Restore(SALOMEDS::SObject_ptr theSObject,
165             const Storable::TRestoringMap& theMap);
166
167     virtual 
168     VISU_Actor* 
169     CreateActor();
170     
171     virtual 
172     void 
173     SetMapScale(double theMapScale = 1.0);
174
175     virtual void UpdateActor(VISU_ActorBase* theActor);
176     
177   };
178 }
179
180 #endif