Salome HOME
de3664ac3fc4e38b16157066f602657172483c4e
[modules/visu.git] / src / VISU_I / VISU_DeformedShape_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_DeformedShape_i_HeaderFile
28 #define VISU_DeformedShape_i_HeaderFile
29
30 #include "VISU_I.hxx"
31 #include "VISU_MonoColorPrs_i.hh"
32
33 class VISU_DeformedShapePL;
34
35 namespace VISU
36 {
37   //----------------------------------------------------------------------------
38   class VISU_I_EXPORT DeformedShape_i : public virtual POA_VISU::DeformedShape,
39                                         public virtual MonoColorPrs_i
40   {
41     static int myNbPresent;
42     DeformedShape_i(const DeformedShape_i&);
43
44   public:
45     //----------------------------------------------------------------------------
46     typedef MonoColorPrs_i TSuperClass;
47     typedef VISU::DeformedShape TInterface;
48
49     explicit
50     DeformedShape_i(EPublishInStudyMode thePublishInStudyModep);
51
52     virtual 
53     void 
54     SameAs(const Prs3d_i* theOrigin);
55
56     virtual 
57     ~DeformedShape_i();
58
59     virtual 
60     VISU::VISUType 
61     GetType() 
62     { 
63       return VISU::TDEFORMEDSHAPE;
64     }
65
66     virtual
67     void 
68     SetScale(CORBA::Double theScale);
69
70     virtual
71     CORBA::Double 
72     GetScale();
73
74     VISU_DeformedShapePL* 
75     GetSpecificPL() const
76     { 
77       return myDeformedShapePL; 
78     }
79     
80   protected:
81     //! Redefines VISU_ColoredPrs3d_i::CreatePipeLine
82     virtual 
83     void
84     CreatePipeLine(VISU_PipeLine* thePipeLine);
85
86     //! Redefines VISU_ColoredPrs3d_i::CheckIsPossible
87     virtual 
88     bool 
89     CheckIsPossible();
90
91     VISU_DeformedShapePL *myDeformedShapePL;
92
93   public:
94     static
95     size_t
96     IsPossible(Result_i* theResult, 
97                const std::string& theMeshName, 
98                VISU::Entity theEntity,
99                const std::string& theFieldName, 
100                CORBA::Long theTimeStampNumber,
101                bool theIsMemoryCheck);
102
103     virtual 
104     Storable* 
105     Create(const std::string& theMeshName, 
106            VISU::Entity theEntity,
107            const std::string& theFieldName, 
108            CORBA::Long theTimeStampNumber);
109
110     static const std::string myComment;
111
112     virtual 
113     const char* 
114     GetComment() const;
115
116     virtual
117     QString 
118     GenerateName();
119
120     virtual
121     const char* 
122     GetIconName();
123
124     virtual
125     void
126     ToStream(std::ostringstream& theStr);
127
128     virtual
129     Storable* 
130     Restore(SALOMEDS::SObject_ptr theSObject,
131             const Storable::TRestoringMap& theMap);
132
133     virtual
134     void
135     SetMapScale(double theMapScale = 1.0);
136
137     virtual 
138     VISU_Actor* 
139     CreateActor(bool toSupressShrinking);
140
141   };
142 }
143
144 #endif