Salome HOME
1d810fb93cfcca60630bee33aa835bc6b3e510df
[modules/visu.git] / src / PIPELINE / VISU_ScalarMapPL.hxx
1 //  VISU OBJECT : interactive object for VISU entities implementation
2 //
3 //  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 // File:    VISU_PipeLine.hxx
25 // Author:  Alexey PETROV
26 // Module : VISU
27
28 #ifndef VISU_ScalrMapPL_HeaderFile
29 #define VISU_ScalrMapPL_HeaderFile
30
31 #include "VISU_PipeLine.hxx"
32 #include "VISU_ScalarBarActor.hxx"
33
34 class vtkCell;
35 class vtkDataSet;
36
37 class VISU_Extractor;
38 class VISU_FieldTransform;
39
40
41 //============================================================================
42 class VISU_ScalarMapPL : public VISU_PipeLine
43 {
44 protected:
45   VISU_ScalarMapPL();
46   VISU_ScalarMapPL(const VISU_ScalarMapPL&);
47
48   virtual
49   ~VISU_ScalarMapPL();
50
51 public:
52   //----------------------------------------------------------------------------
53   vtkTypeMacro(VISU_ScalarMapPL,VISU_PipeLine);
54
55   static
56   VISU_ScalarMapPL* 
57   New();
58
59   virtual
60   void
61   ShallowCopy(VISU_PipeLine *thePipeLine);
62
63   //----------------------------------------------------------------------------
64   virtual
65   int
66   GetScalarMode();
67
68   virtual
69   void
70   SetScalarMode(int theScalarMode = 0);
71   
72   virtual
73   int
74   GetScaling();
75   virtual
76   void
77   SetScaling(int theScaling = VTK_SCALE_LINEAR);
78   
79   virtual
80   float* 
81   GetScalarRange();
82
83   virtual
84   void
85   SetScalarRange(float theRange[2]);
86
87   virtual
88   void
89   SetScalarMin(float theValue);
90
91   virtual
92   void
93   SetScalarMax(float theValue);
94   
95   virtual
96   void
97   SetNbColors(int theNbColors = 16);
98
99   virtual
100   int
101   GetNbColors();
102   
103   //----------------------------------------------------------------------------
104 public:
105   virtual
106   void
107   Init();
108
109   virtual
110   void
111   Build();
112
113   virtual
114   void
115   Update();
116   
117   virtual
118   VISU_LookupTable*
119   GetMapperTable();
120
121   virtual 
122   VISU_LookupTable*
123   GetBarTable();
124
125   virtual 
126   void
127   SetMapScale(float theMapScale = 1.0);
128
129   virtual
130   float
131   GetMapScale();
132
133   virtual
134   void
135   GetSourceRange(float theRange[2]);
136
137   virtual
138   void
139   SetSourceRange();
140
141   //----------------------------------------------------------------------------
142 protected:
143   typedef vtkDataSet THook;
144   virtual THook* DoHook();
145
146   VISU_LookupTable* myMapperTable;
147   VISU_LookupTable* myBarTable;
148   VISU_FieldTransform* myFieldTransform;
149   VISU_Extractor* myExtractor;
150 };
151   
152 #endif