~ubuntu-branches/ubuntu/saucy/ifrit/saucy

« back to all changes in this revision

Viewing changes to core/ivectorfieldviewobject.h

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2006-10-28 15:06:32 UTC
  • mfrom: (1.1.4 upstream) (2.1.1 etch)
  • Revision ID: james.westby@ubuntu.com-20061028150632-hyvuhvsv6zpmf5ev
Tags: 3.0.5-1
New upstream version. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*=========================================================================
2
 
 
3
 
  Program:   Ionization FRont Interactive Tool (IFRIT)
4
 
  Language:  C++
5
 
 
6
 
 
7
 
Copyright (c) 2002-2006 Nick Gnedin 
8
 
All rights reserved.
9
 
 
10
 
This file may be distributed and/or modified under the terms of the
11
 
GNU General Public License version 2 as published by the Free Software
12
 
Foundation and appearing in the file LICENSE.GPL included in the
13
 
packaging of this file.
14
 
 
15
 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
16
 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
 
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
19
 
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
 
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
 
 
26
 
=========================================================================*/
27
 
 
28
 
 
29
 
#ifndef IVECTORFIELDVIEWOBJECT_H
30
 
#define IVECTORFIELDVIEWOBJECT_H
31
 
 
32
 
 
33
 
#include "ifieldviewobject.h"
34
 
 
35
 
 
36
 
#include "iposition.h"
37
 
 
38
 
class iBoundedDiskSource;
39
 
class iBoundedPlaneSource;
40
 
class iBoundedSphereSource;
41
 
class iMarkerViewObject;
42
 
class iVectorFieldGlyphParallelPipeline;
43
 
class iVectorFieldGlyphSerialPipeline;
44
 
class iVectorFieldStreamLineParallelPipeline;
45
 
class iVectorFieldStreamLineSerialPipeline;
46
 
 
47
 
class vtkCellArray;
48
 
class vtkFloatArray;
49
 
class vtkPoints;
50
 
 
51
 
 
52
 
class iVectorFieldViewObject : public iFieldViewObject
53
 
{
54
 
        
55
 
        friend class iExtensionFactory;
56
 
 
57
 
public:
58
 
        
59
 
        static iVectorFieldViewObject* New(iViewModule *vm);
60
 
        static const iObjectType& Type();
61
 
                
62
 
        IOBJECT_DECLARE_GETSET1(Method,int);
63
 
//      virtual void SetMethod(int m);
64
 
//      inline int GetMethod() const { return mMethod; }
65
 
 
66
 
        IOBJECT_DECLARE_GETSET(LineQuality,mLineQuality,int);
67
 
//      virtual void SetLineQuality(int q);
68
 
//      inline int GetLineQuality() const { return mLineQuality; }
69
 
 
70
 
        IOBJECT_DECLARE_GETSET1(LineLength,float);
71
 
//      virtual void SetLineLength(float q);
72
 
//      inline float GetLineLength() const { return mLineLength; }
73
 
 
74
 
        IOBJECT_DECLARE_GETSET1(LineDir,int);
75
 
//      virtual void SetLineDir(int n);
76
 
//      inline int GetLineDir() const { return mLineDir; }
77
 
        
78
 
        IOBJECT_DECLARE_GETSET1(TubeSize,int);
79
 
//      virtual void SetTubeSize(int t);
80
 
//      inline int GetTubeSize() const { return mTubeSize; }
81
 
 
82
 
        IOBJECT_DECLARE_GETSET1(TubeRangeFactor,float);
83
 
//      virtual void SetTubeRangeFactor(float q);
84
 
//      inline float GetTubeRangeFactor() const { return mTubeRangeFactor; }
85
 
 
86
 
        IOBJECT_DECLARE_GETSET1(TubeVariationFactor,float);
87
 
//      virtual void SetTubeVariationFactor(float q);
88
 
//      inline float GetTubeVariationFactor() const { return mTubeVariationFactor; }
89
 
 
90
 
        IOBJECT_DECLARE_GETSET1(SourceType,int);
91
 
//      virtual void SetSourceType(int v);
92
 
//      inline int GetSourceType() const { return mSourceType; }
93
 
        
94
 
        IOBJECT_DECLARE_GETSET(NumberOfStreamLines,mNumLines,int);
95
 
//      virtual void SetNumberOfStreamLines(int v);
96
 
//      inline int GetNumberOfStreamLines() const { return mNumLines; }
97
 
 
98
 
        IOBJECT_DECLARE_GETSET_DISTANCE(SourceSize,mSourceSize);  //  for sphere 
99
 
        //virtual void SetSourceSize(const iDistance &o);
100
 
        //inline const iDistance& GetSourceSize() const { return mSourceSize; }
101
 
        
102
 
        IOBJECT_DECLARE_GETSET(SourceOpacity,mOpacities[1],float);  
103
 
        //virtual void SetSourceObjectOpacity(float o);
104
 
        //inline float GetSourceObjectOpacity() const { return mOpacities[1]; }
105
 
        
106
 
        IOBJECT_DECLARE_GETSET(ShowSourceObject,mSourceShow,bool);  //  for sphere 
107
 
        //virtual void SetShowSourceObject(bool o);
108
 
        //inline float GetShowSourceObject() const { return mSourceShow; }
109
 
 
110
 
        IOBJECT_DECLARE_GETSET(AttachSourceToMarker,mAttachedMarkerIndex,int);  //  for sphere and plane
111
 
        //virtual void SetAttachSourceToMarker(int m);
112
 
        //inline int GetAttachSourceToMarker() const { return mAttachedMarkerIndex; }
113
 
        
114
 
        virtual void SetSourcePositionToPickedPoint();
115
 
        static const iObjectKey& KeySourcePositionToPickedPoint(); // action key
116
 
 
117
 
        IOBJECT_DECLARE_GETSET_POSITION(SourcePosition,mSourcePos);  
118
 
        //virtual void SetSourcePosition(const iPosition &p);
119
 
        //inline const iPosition& GetSourcePosition() const { return mSourcePos; }
120
 
 
121
 
        virtual void SetSourceDirection(const float n[3]);  // for plane
122
 
        inline const float* GetSourceDirection() const { return mSourceDir; }
123
 
        static const iObjectKey& KeySourceDirection();
124
 
 
125
 
        virtual void UpdateAfterMarkerMove();
126
 
        virtual void UpdateAfterMarkerAdd(iMarkerViewObject *);
127
 
        virtual void UpdateAfterMarkerDelete(iMarkerViewObject *);
128
 
 
129
 
        virtual iVectorFieldGlyphParallelPipeline* CreateGlyphParallelPipeline();
130
 
        virtual iVectorFieldGlyphSerialPipeline* CreateGlyphSerialPipeline();
131
 
 
132
 
        virtual iVectorFieldStreamLineParallelPipeline* CreateStreamLineParallelPipeline();
133
 
        virtual iVectorFieldStreamLineSerialPipeline* CreateStreamLineSerialPipeline();
134
 
 
135
 
        //
136
 
        //  Inherited members
137
 
        //
138
 
        IFIELDVIEWOBJECT_DECLARE_INHERITED_KEYS;
139
 
        IFIELDVIEWOBJECT_DECLARE_INHERITED_MEMBERS;
140
 
 
141
 
protected:
142
 
        
143
 
        iVectorFieldViewObject(iViewModule *vm, const iDataInfo &info);
144
 
        virtual ~iVectorFieldViewObject();
145
 
 
146
 
        void DetachFromMarker();
147
 
 
148
 
        virtual void UpdatePipelines();
149
 
        virtual void UpdateColorByExtra();
150
 
        virtual void UpdateStreamLineSource();
151
 
 
152
 
        iDistance mSourceSize;
153
 
        iPosition mSourcePos;
154
 
 
155
 
        bool mSourceShow;
156
 
        int mAttachedMarkerIndex;
157
 
        int mMethod, mTubeSize, mLineQuality;
158
 
        float mLineLength, mSourceDir[3];
159
 
        int mLineDir, mSourceType, mNumLines;
160
 
        float mTubeRangeFactor, mTubeVariationFactor;
161
 
        //
162
 
        //  VTK stuff
163
 
        //
164
 
        vtkPoints *mStreamLineSourcePoints;
165
 
        vtkCellArray *mStreamLineSourceVerts;
166
 
        vtkFloatArray *mStreamLineSourceNorms;
167
 
 
168
 
        iBoundedDiskSource *mSourceDisk;
169
 
        iBoundedPlaneSource *mSourcePlane;
170
 
        iBoundedSphereSource *mSourceSphere;
171
 
 
172
 
        iVectorFieldGlyphParallelPipeline *mGlyphPipeline;
173
 
        iVectorFieldStreamLineParallelPipeline *mStreamLinePipeline;
174
 
};
175
 
 
176
 
#endif // IVECTORFIELDVIEWOBJECT_H
177