Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/visu.git] / src / VISU_I / VISU_Vectors_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_Vectors_i_HeaderFile
28 #define VISU_Vectors_i_HeaderFile
29
30 #include "VISU_DeformedShape_i.hh"
31
32 class VISU_VectorsPL;
33
34 namespace VISU
35 {
36   //----------------------------------------------------------------------------
37   class VISU_I_EXPORT Vectors_i : public virtual POA_VISU::Vectors,
38                                   public virtual DeformedShape_i
39   {
40     static int myNbPresent;
41     Vectors_i(const Vectors_i&);
42
43   public:
44     //----------------------------------------------------------------------------
45     typedef DeformedShape_i TSuperClass;
46     typedef VISU::Vectors TInterface;
47
48     explicit
49     Vectors_i(EPublishInStudyMode thePublishInStudyModep);
50
51     virtual
52     void
53     SameAs(const Prs3d_i* theOrigin);
54
55     virtual
56     ~Vectors_i();
57
58     virtual
59     VISU::VISUType 
60     GetType() 
61     { 
62       return VISU::TVECTORS;
63     }
64
65     virtual
66     void 
67     SetLineWidth(CORBA::Double theWidth);
68
69     virtual
70     CORBA::Double
71     GetLineWidth();
72
73     virtual 
74     void 
75     SetGlyphType(VISU::Vectors::GlyphType theType);
76
77     virtual
78     VISU::Vectors::GlyphType 
79     GetGlyphType();
80
81     virtual 
82     void 
83     SetGlyphPos(VISU::Vectors::GlyphPos thePos);
84
85     virtual 
86     VISU::Vectors::GlyphPos 
87     GetGlyphPos();
88
89     VISU_VectorsPL* 
90     GetSpecificPL() const
91     { 
92       return myVectorsPL; 
93     }
94     
95   protected:
96     //! Redefines VISU_ColoredPrs3d_i::CreatePipeLine
97     virtual
98     void
99     CreatePipeLine(VISU_PipeLine* thePipeLine);
100
101     //! Redefines VISU_ColoredPrs3d_i::CheckIsPossible
102     virtual 
103     bool 
104     CheckIsPossible();
105
106     virtual
107     VISU_PipeLine* 
108     GetActorPipeLine();
109
110     VISU_VectorsPL *myVectorsPL;
111     float myLineWidth;
112
113   public:
114     //! Redefines VISU_ColoredPrs3d_i::IsPossible
115     static 
116     size_t 
117     IsPossible(Result_i* theResult, 
118                const std::string& theMeshName, 
119                VISU::Entity theEntity,
120                const std::string& theFieldName, 
121                CORBA::Long theTimeStampNumber,
122                bool theIsMemoryCheck);
123
124     //! Redefines VISU_ColoredPrs3d_i::Create
125     virtual
126     Storable* 
127     Create(const std::string& theMeshName, 
128            VISU::Entity theEntity,
129            const std::string& theFieldName, 
130            CORBA::Long theTimeStampNumber);
131
132     //! Redefines VISU_ColoredPrs3d_i::ToStream
133     virtual
134     void
135     ToStream(std::ostringstream& theStr);
136
137     //! Redefines VISU_ColoredPrs3d_i::Restore
138     virtual
139     Storable* 
140     Restore(SALOMEDS::SObject_ptr theSObject,
141             const Storable::TRestoringMap& theMap);
142
143     static const std::string myComment;
144
145     //! Redefines VISU_ColoredPrs3d_i::GetComment
146     virtual
147     const char* 
148     GetComment() const;
149
150     //! Redefines VISU_ColoredPrs3d_i::GenerateName
151     virtual
152     QString
153     GenerateName();
154
155     virtual
156     const char* 
157     GetIconName();
158
159     //! Redefines VISU_ColoredPrs3d_i::CreateActor
160     virtual
161     VISU_Actor* 
162     CreateActor();
163
164     //! Redefines VISU_ColoredPrs3d_i::UpdateActor
165     virtual
166     void
167     UpdateActor(VISU_ActorBase* theActor) ;
168   };
169 }
170
171 #endif