Salome HOME
Update copyright information
[modules/visu.git] / src / VISU_I / VISU_IsoSurfaces_i.hh
1 // Copyright (C) 2007-2012  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
23 //  VISU OBJECT : interactive object for VISU entities implementation
24 //  File   : VISU_PrsObject_i.hxx
25 //  Author : Alexey PETROV
26 //  Module : VISU
27 //
28 #ifndef VISU_IsoSurfaces_i_HeaderFile
29 #define VISU_IsoSurfaces_i_HeaderFile
30
31 #include "VISU_I.hxx"
32 //#include "VISU_ScalarMap_i.hh"
33 #include "VISU_MonoColorPrs_i.hh"
34
35 class VISU_IsoSurfacesPL;
36
37 namespace VISU
38 {
39   //----------------------------------------------------------------------------
40   class VISU_I_EXPORT IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces,
41                                       public virtual MonoColorPrs_i
42   {
43     static int myNbPresent;
44     IsoSurfaces_i(const IsoSurfaces_i&);
45
46   public:
47     //----------------------------------------------------------------------------
48     typedef MonoColorPrs_i TSuperClass;
49     typedef VISU::IsoSurfaces TInterface;
50
51     explicit
52     IsoSurfaces_i(EPublishInStudyMode thePublishInStudyModep);
53
54     virtual void SameAs(const Prs3d_i* theOrigin);
55
56     virtual 
57     ~IsoSurfaces_i();
58
59     virtual
60     VISU::VISUType 
61     GetType() 
62     { 
63       return VISU::TISOSURFACES;
64     }
65
66     virtual
67     void
68     SetNbSurfaces(CORBA::Long theNb);
69
70     virtual
71     CORBA::Long 
72     GetNbSurfaces();
73
74     virtual 
75     void
76     SetSubRange(CORBA::Double theMin, CORBA::Double theMax);
77
78     virtual
79     CORBA::Double 
80     GetSubMin();
81
82     virtual
83     CORBA::Double 
84     GetSubMax();
85
86     virtual
87     void
88     SetSubRangeFixed(CORBA::Boolean theIsFixed);
89
90     virtual
91     CORBA::Boolean
92     IsSubRangeFixed();
93
94     VISU_IsoSurfacesPL* 
95     GetSpecificPL() const
96     { 
97       return myIsoSurfacesPL; 
98     }
99
100
101     virtual CORBA::Boolean IsLabeled();
102     virtual void ShowLabels(CORBA::Boolean theShow, CORBA::Long theNb);
103
104     virtual CORBA::Long GetNbLabels();
105     
106
107   protected:
108     //! Redefines VISU_ColoredPrs3d_i::CreatePipeLine
109     virtual 
110     void 
111     CreatePipeLine(VISU_PipeLine* thePipeLine);
112
113     //! Redefines VISU_ScalarMap_i::DoSetInput
114     virtual 
115     void
116     DoSetInput(bool theIsInitilizePipe, bool theReInit);
117
118     //! Redefines VISU_ScalarMap_i::CheckIsPossible
119     virtual 
120     bool 
121     CheckIsPossible();
122
123     VISU_IsoSurfacesPL* myIsoSurfacesPL;
124
125     bool myIsLabeled;
126     CORBA::Long myNbLabels;
127
128   public:
129     static
130     size_t
131     IsPossible(Result_i* theResult, 
132                const std::string& theMeshName, 
133                VISU::Entity theEntity,
134                const std::string& theFieldName, 
135                CORBA::Long theTimeStampNumber,
136                bool theIsMemoryCheck);
137
138     virtual
139     Storable* 
140     Create(const std::string& theMeshName, 
141            VISU::Entity theEntity,
142            const std::string& theFieldName, 
143            CORBA::Long theTimeStampNumber);
144
145     static const std::string myComment;
146
147     virtual 
148     const char* 
149     GetComment() const;
150
151     virtual
152     QString
153     GenerateName();
154
155     virtual
156     const char* 
157     GetIconName();
158
159     virtual
160     void
161     ToStream(std::ostringstream& theStr);
162
163     virtual
164     Storable* 
165     Restore(SALOMEDS::SObject_ptr theSObject,
166             const Storable::TRestoringMap& theMap);
167
168     virtual 
169     VISU_Actor* 
170     CreateActor();
171     
172     virtual 
173     void 
174     SetMapScale(double theMapScale = 1.0);
175
176     virtual void UpdateActor(VISU_ActorBase* theActor);
177     
178   };
179 }
180
181 #endif