source: trunk/packages/vizservers/vtkvis/RpVtkRenderer.h @ 3166

Last change on this file since 3166 was 3166, checked in by ldelgass, 12 years ago

add protocol for n-sided regular polygon

  • Property svn:eol-style set to native
File size: 23.9 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright (C) 2011, Purdue Research Foundation
4 *
5 * Author: Leif Delgass <ldelgass@purdue.edu>
6 */
7
8#ifndef __RAPPTURE_VTKVIS_RENDERER_H__
9#define __RAPPTURE_VTKVIS_RENDERER_H__
10
11#include <string>
12#include <vector>
13#include <tr1/unordered_map>
14#include <typeinfo>
15
16#include <vtkSmartPointer.h>
17#ifdef USE_CUSTOM_AXES
18#include "vtkRpCubeAxesActor.h"
19#include "vtkRpCubeAxesActor2D.h"
20#else
21#include <vtkCubeAxesActor.h>
22#include <vtkCubeAxesActor2D.h>
23#endif
24#include <vtkScalarBarActor.h>
25#include <vtkRenderer.h>
26#include <vtkRenderWindow.h>
27#include <vtkUnsignedCharArray.h>
28
29#include "ColorMap.h"
30#include "RpTypes.h"
31#include "RpVtkDataSet.h"
32#include "RpArc.h"
33#include "RpArrow.h"
34#include "RpBox.h"
35#include "RpCone.h"
36#include "RpContour2D.h"
37#include "RpContour3D.h"
38#include "RpCutplane.h"
39#include "RpCylinder.h"
40#include "RpDisk.h"
41#include "RpGlyphs.h"
42#include "RpGroup.h"
43#include "RpHeightMap.h"
44#include "RpLIC.h"
45#include "RpLine.h"
46#include "RpMolecule.h"
47#include "RpPolyData.h"
48#include "RpPolygon.h"
49#include "RpPseudoColor.h"
50#include "RpSphere.h"
51#include "RpStreamlines.h"
52#include "RpVolume.h"
53#include "RpWarp.h"
54#include "Trace.h"
55
56// Controls if TGA format is sent to client
57//#define RENDER_TARGA
58#define TARGA_BYTES_PER_PIXEL 3
59
60namespace Rappture {
61namespace VtkVis {
62
63/**
64 * \brief VTK Renderer
65 */
66class Renderer
67{
68public:
69    Renderer();
70    virtual ~Renderer();
71
72    enum AxesFlyMode {
73        FLY_OUTER_EDGES = 0,
74        FLY_CLOSEST_TRIAD,
75        FLY_FURTHEST_TRIAD,
76        FLY_STATIC_EDGES,
77        FLY_STATIC_TRIAD
78    };
79
80    enum AxesTickPosition {
81        TICKS_INSIDE,
82        TICKS_OUTSIDE,
83        TICKS_BOTH
84    };
85
86    enum CameraMode {
87        PERSPECTIVE,
88        ORTHO,
89        IMAGE
90    };
91
92    enum LegendType {
93        LEGEND_SCALAR,
94        LEGEND_VECTOR_MAGNITUDE,
95        LEGEND_VECTOR_X,
96        LEGEND_VECTOR_Y,
97        LEGEND_VECTOR_Z
98    };
99
100    typedef std::string DataSetId;
101    typedef std::string ColorMapId;
102    typedef std::string FieldId;
103
104    // Data sets
105
106    void addDataSet(const DataSetId& id);
107
108    void deleteDataSet(const DataSetId& id);
109
110    DataSet *getDataSet(const DataSetId& id);
111
112    void getDataSetNames(std::vector<std::string>& names);
113
114    bool setData(const DataSetId& id, char *data, int nbytes);
115
116    bool setDataFile(const DataSetId& id, const char *filename);
117
118    bool setDataSetActiveScalars(const DataSetId& id, const char *scalarName);
119
120    bool setDataSetActiveVectors(const DataSetId& id, const char *vectorName);
121
122    bool getScalarValueAtPixel(const DataSetId& id, int x, int y, double *value);
123
124    bool getScalarValue(const DataSetId& id, double x, double y, double z, double *value);
125
126    bool getVectorValueAtPixel(const DataSetId& id, int x, int y, double vector[3]);
127
128    bool getVectorValue(const DataSetId& id, double x, double y, double z, double vector[3]);
129
130    void setDataSetShowBounds(const DataSetId& id, bool state);
131
132    void setDataSetOutlineColor(const DataSetId& id, float color[3]);
133
134    void setDataSetOpacity(const DataSetId& id, double opacity);
135
136    void setDataSetVisibility(const DataSetId& id, bool state);
137
138    void setUseCumulativeDataRange(bool state, bool onlyVisible = false);
139
140    bool getUseCumulativeRange();
141
142    bool getCumulativeDataRange(double *range, const char *name,
143                                int numComponents,
144                                int component = -1);
145
146    bool getCumulativeDataRange(double *range, const char *name,
147                                DataSet::DataAttributeType type,
148                                int numComponents,
149                                int component = -1);
150
151    // Render window
152
153    /// Get the VTK render window object this Renderer uses
154    vtkRenderWindow *getRenderWindow()
155    {
156        return _renderWindow;
157    }
158
159    void setWindowSize(int width, int height);
160
161    int getWindowWidth() const;
162
163    int getWindowHeight() const;
164
165    // Camera controls
166
167    void setViewAngle(int height);
168
169    vtkCamera *getVtkCamera()
170    {
171        if (_renderer != NULL)
172            return _renderer->GetActiveCamera();
173        else
174            return NULL;
175    }
176
177    void setCameraMode(CameraMode mode);
178
179    CameraMode getCameraMode() const;
180
181    void resetCamera(bool resetOrientation = true);
182
183    void resetCameraClippingRange();
184
185    void setCameraZoomRegionPixels(int x, int y, int width, int height);
186
187    void setCameraZoomRegion(double x, double y, double width, double height);
188
189    void getCameraZoomRegion(double xywh[4]) const;
190
191    void getScreenWorldCoords(double xywh[4]) const;
192
193    void rotateCamera(double yaw, double pitch, double roll);
194
195    void setCameraOrientation(const double quat[4], bool absolute = true);
196
197    void panCamera(double x, double y, bool absolute = true);
198
199    void zoomCamera(double z, bool absolute = true);
200
201    void setCameraOrientationAndPosition(const double position[3],
202                                         const double focalPoint[3],
203                                         const double viewUp[3]);
204
205    void getCameraOrientationAndPosition(double position[3],
206                                         double focalPoint[3],
207                                         double viewUp[3]);
208
209    // Rendering an image
210
211    void setBackgroundColor(float color[3]);
212
213    void setClipPlane(Axis axis, double ratio, int direction);
214
215    void setUseTwoSidedLighting(bool state);
216
217    void setUseDepthPeeling(bool state);
218
219    void eventuallyRender();
220
221    bool render();
222
223    void getRenderedFrame(vtkUnsignedCharArray *imgData);
224
225    // Axes
226
227    void setAxesFlyMode(AxesFlyMode mode);
228
229    void setAxesVisibility(bool state);
230
231    void setAxesGridVisibility(bool state);
232
233    void setAxesLabelVisibility(bool state);
234
235    void setAxesTickVisibility(bool state);
236
237    void setAxesTickPosition(AxesTickPosition pos);
238
239    void setAxesColor(double color[3]);
240
241    void setAxisVisibility(Axis axis, bool state);
242
243    void setAxisGridVisibility(Axis axis, bool state);
244
245    void setAxisLabelVisibility(Axis axis, bool state);
246
247    void setAxisTickVisibility(Axis axis, bool state);
248
249    void setAxisTitle(Axis axis, const char *title);
250
251    void setAxisUnits(Axis axis, const char *units);
252
253    // Colormaps
254
255    void addColorMap(const ColorMapId& id, ColorMap *colorMap);
256
257    void deleteColorMap(const ColorMapId& id);
258
259    ColorMap *getColorMap(const ColorMapId& id);
260
261    bool renderColorMap(const ColorMapId& id,
262                        const DataSetId& dataSetID,
263                        LegendType legendType,
264                        const char *fieldName,
265                        DataSet::DataAttributeType type,
266                        std::string& title,
267                        double range[2],
268                        int width, int height,
269                        bool opaque,
270                        int numLabels,
271                        vtkUnsignedCharArray *imgData);
272
273    bool renderColorMap(const ColorMapId& id,
274                        const DataSetId& dataSetID,
275                        LegendType legendType,
276                        const char *fieldName,
277                        std::string& title,
278                        double range[2],
279                        int width, int height,
280                        bool opaque,
281                        int numLabels,
282                        vtkUnsignedCharArray *imgData);
283
284    bool renderColorMap(const ColorMapId& id,
285                        const DataSetId& dataSetID,
286                        LegendType legendType,
287                        std::string& title,
288                        double range[2],
289                        int width, int height,
290                        bool opaque,
291                        int numLabels,
292                        vtkUnsignedCharArray *imgData);
293
294    // Generic VtkGraphicsObject methods
295
296    template<class GraphicsObject>
297    GraphicsObject *getGraphicsObject(const DataSetId& id);
298
299    template<class GraphicsObject>
300    bool addGraphicsObject(const DataSetId& id);
301
302    template<class GraphicsObject>
303    void deleteGraphicsObject(const DataSetId& id);
304
305    template<class GraphicsObject>
306    void deleteAllGraphicsObjects();
307
308    template<class GraphicsObject>
309    void mergeGraphicsObjectBounds(double *bounds, bool onlyVisible);
310
311    template<class GraphicsObject>
312    void mergeGraphicsObjectUnscaledBounds(double *bounds, bool onlyVisible);
313
314    template<class GraphicsObject>
315    void updateGraphicsObjectFieldRanges();
316
317    template<class GraphicsObject>
318    void setGraphicsObjectClippingPlanes(vtkPlaneCollection *planes);
319
320    template<class GraphicsObject>
321    void setGraphicsObjectAspect(double aspectRatio);
322
323    template<class GraphicsObject>
324    void setGraphicsObjectColorMap(const DataSetId& id, const ColorMapId& colorMapId);
325
326    template<class GraphicsObject>
327    void updateGraphicsObjectColorMap(ColorMap *cmap);
328
329    template<class GraphicsObject>
330    bool graphicsObjectColorMapUsed(ColorMap *cmap);
331
332    template<class GraphicsObject>
333    void setGraphicsObjectVolumeSlice(const DataSetId& id, Axis axis, double ratio);
334
335    //   Prop/Prop3D properties
336
337    template<class GraphicsObject>
338    void setGraphicsObjectOrientation(const DataSetId& id, double quat[4]);
339
340    template<class GraphicsObject>
341    void setGraphicsObjectOrientation(const DataSetId& id, double angle, double axis[3]);
342
343    template<class GraphicsObject>
344    void setGraphicsObjectPosition(const DataSetId& id, double pos[3]);
345
346    template<class GraphicsObject>
347    void setGraphicsObjectAspect(const DataSetId& id, double aspect);
348
349    template<class GraphicsObject>
350    void setGraphicsObjectScale(const DataSetId& id, double scale[3]);
351
352    template<class GraphicsObject>
353    void setGraphicsObjectTransform(const DataSetId& id, vtkMatrix4x4 *trans);
354
355    template<class GraphicsObject>
356    void setGraphicsObjectVisibility(const DataSetId& id, bool state);
357
358    //   Actor properties
359
360    template<class GraphicsObject>
361    void setGraphicsObjectColor(const DataSetId& id, float color[3]);
362
363    template<class GraphicsObject>
364    void setGraphicsObjectEdgeVisibility(const DataSetId& id, bool state);
365
366    template<class GraphicsObject>
367    void setGraphicsObjectEdgeColor(const DataSetId& id, float color[3]);
368
369    template<class GraphicsObject>
370    void setGraphicsObjectEdgeWidth(const DataSetId& id, float edgeWidth);
371
372    template<class GraphicsObject>
373    void setGraphicsObjectAmbient(const DataSetId& id, double coeff);
374
375    template<class GraphicsObject>
376    void setGraphicsObjectDiffuse(const DataSetId& id, double coeff);
377
378    template<class GraphicsObject>
379    void setGraphicsObjectSpecular(const DataSetId& id, double coeff, double power);
380
381    template<class GraphicsObject>
382    void setGraphicsObjectLighting(const DataSetId& id, bool state);
383
384    template<class GraphicsObject>
385    void setGraphicsObjectOpacity(const DataSetId& id, double opacity);
386
387    template<class GraphicsObject>
388    void setGraphicsObjectPointSize(const DataSetId& id, float size);
389
390    template<class GraphicsObject>
391    void setGraphicsObjectWireframe(const DataSetId& id, bool state);
392
393    // 2D Contour plots
394
395    bool addContour2D(const DataSetId& id, int numContours);
396
397    bool addContour2D(const DataSetId& id, const std::vector<double>& contours);
398
399    void setContour2DContours(const DataSetId& id, int numContours);
400
401    void setContour2DContourList(const DataSetId& id, const std::vector<double>& contours);
402
403    void setContour2DColorMode(const DataSetId& id,
404                               Contour2D::ColorMode mode,
405                               const char *name, double range[2] = NULL);
406
407    void setContour2DColorMode(const DataSetId& id,
408                               Contour2D::ColorMode mode,
409                               DataSet::DataAttributeType type,
410                               const char *name, double range[2] = NULL);
411
412    // 3D Contour (isosurface) plots
413
414    bool addContour3D(const DataSetId& id, int numContours);
415
416    bool addContour3D(const DataSetId& id, const std::vector<double>& contours);
417
418    void setContour3DContours(const DataSetId& id, int numContours);
419
420    void setContour3DContourList(const DataSetId& id, const std::vector<double>& contours);
421
422    // Cutplanes
423
424    void setCutplaneOutlineVisibility(const DataSetId& id, bool state);
425
426    void setCutplaneSliceVisibility(const DataSetId& id, Axis axis, bool state);
427
428    void setCutplaneColorMode(const DataSetId& id,
429                              Cutplane::ColorMode mode,
430                              const char *name, double range[2] = NULL);
431
432    void setCutplaneColorMode(const DataSetId& id,
433                              Cutplane::ColorMode mode,
434                              DataSet::DataAttributeType type,
435                              const char *name, double range[2] = NULL);
436
437    // Glyphs
438
439    bool addGlyphs(const DataSetId& id, Glyphs::GlyphShape shape);
440
441    void setGlyphsShape(const DataSetId& id, Glyphs::GlyphShape shape);
442
443    void setGlyphsOrientMode(const DataSetId& id, bool state, const char *name);
444
445    void setGlyphsColorMode(const DataSetId& id,
446                            Glyphs::ColorMode mode,
447                            const char *name,
448                            double range[2] = NULL);
449
450    void setGlyphsScalingMode(const DataSetId& id,
451                              Glyphs::ScalingMode mode,
452                              const char *name,
453                              double range[2] = NULL);
454
455    void setGlyphsNormalizeScale(const DataSetId& id, bool normalize);
456
457    void setGlyphsScaleFactor(const DataSetId& id, double scale);
458
459    // Height maps
460
461    bool addHeightMap(const DataSetId& id, int numContours, double heightScale);
462
463    bool addHeightMap(const DataSetId& id, const std::vector<double>& contours, double heightScale);
464
465    void setHeightMapHeightScale(const DataSetId& id, double scale);
466
467    void setHeightMapNumContours(const DataSetId& id, int numContours);
468
469    void setHeightMapContourList(const DataSetId& id, const std::vector<double>& contours);
470
471    void setHeightMapContourSurfaceVisibility(const DataSetId& id, bool state);
472
473    void setHeightMapContourLineVisibility(const DataSetId& id, bool state);
474
475    void setHeightMapContourEdgeColor(const DataSetId& id, float color[3]);
476
477    void setHeightMapContourEdgeWidth(const DataSetId& id, float edgeWidth);
478
479    // Lines
480
481    bool addLine(const DataSetId& id, double pt1[3], double pt2[3]);
482
483    // Molecules
484
485    void setMoleculeAtomRadiusScale(const DataSetId& id, double scale);
486
487    void setMoleculeBondRadiusScale(const DataSetId& id, double scale);
488
489    void setMoleculeAtomScaling(const DataSetId& id, Molecule::AtomScaling scaling);
490
491    void setMoleculeAtomVisibility(const DataSetId& id, bool state);
492
493    void setMoleculeAtomLabelVisibility(const DataSetId& id, bool state);
494
495    void setMoleculeBondVisibility(const DataSetId& id, bool state);
496
497    void setMoleculeBondStyle(const DataSetId& id, Molecule::BondStyle style);
498
499    void setMoleculeBondColorMode(const DataSetId& id, Molecule::BondColorMode mode);
500
501    void setMoleculeBondColor(const DataSetId& id, float color[3]);
502
503    void setMoleculeColorMode(const DataSetId& id,
504                              Molecule::ColorMode mode,
505                              const char *name, double range[2] = NULL);
506
507    void setMoleculeColorMode(const DataSetId& id,
508                              Molecule::ColorMode mode,
509                              DataSet::DataAttributeType type,
510                              const char *name, double range[2] = NULL);
511
512    // N-sided Regular Polygons
513
514    bool addPolygon(const DataSetId& id, int numSides);
515
516    // Color-mapped surfaces
517
518    void setPseudoColorColorMode(const DataSetId& id,
519                                 PseudoColor::ColorMode mode,
520                                 const char *name, double range[2] = NULL);
521
522    void setPseudoColorColorMode(const DataSetId& id,
523                                 PseudoColor::ColorMode mode,
524                                 DataSet::DataAttributeType type,
525                                 const char *name, double range[2] = NULL);
526
527    // Spheres
528
529    void setSphereSection(const DataSetId& id, double thetaStart, double thetaEnd,
530                          double phiStart, double phiEnd);
531
532    void setSphereResolution(const DataSetId& id, int thetaRes, int phiRes);
533
534    // Streamlines
535
536    void setStreamlinesNumberOfSeedPoints(const DataSetId& id, int numPoints);
537
538    void setStreamlinesSeedToMeshPoints(const DataSetId& id);
539
540    void setStreamlinesSeedToFilledMesh(const DataSetId& id, int numPoints);
541
542    bool setStreamlinesSeedToMeshPoints(const DataSetId& id,
543                                        char *data, size_t nbytes);
544
545    bool setStreamlinesSeedToFilledMesh(const DataSetId& id,
546                                        char *data, size_t nbytes,
547                                        int numPoints);
548
549    void setStreamlinesSeedToRake(const DataSetId& id,
550                                  double start[3], double end[3],
551                                  int numPoints);
552
553    void setStreamlinesSeedToDisk(const DataSetId& id,
554                                  double center[3], double normal[3],
555                                  double radius, double innerRadius,
556                                  int numPoints);
557
558    void setStreamlinesSeedToPolygon(const DataSetId& id,
559                                     double center[3], double normal[3],
560                                     double angle, double radius,
561                                     int numSides);
562
563    void setStreamlinesSeedToFilledPolygon(const DataSetId& id,
564                                           double center[3], double normal[3],
565                                           double angle, double radius,
566                                           int numSides, int numPoints);
567
568    void setStreamlinesLength(const DataSetId& id, double length);
569
570    void setStreamlinesTypeToLines(const DataSetId& id);
571
572    void setStreamlinesTypeToTubes(const DataSetId& id, int numSides, double radius);
573
574    void setStreamlinesTypeToRibbons(const DataSetId& id, double width, double angle);
575
576    void setStreamlinesSeedVisibility(const DataSetId& id, bool state);
577
578    void setStreamlinesColorMode(const DataSetId& id,
579                                 Streamlines::ColorMode mode,
580                                 const char *name, double range[2] = NULL);
581
582    void setStreamlinesColorMode(const DataSetId& id,
583                                 Streamlines::ColorMode mode,
584                                 DataSet::DataAttributeType type,
585                                 const char *name, double range[2] = NULL);
586
587    void setStreamlinesSeedColor(const DataSetId& id, float color[3]);
588
589    // Volumes
590
591    void setVolumeSampleDistance(const DataSetId& id, double distance);
592
593    // Warps
594
595    void setWarpWarpScale(const DataSetId& id, double scale);
596
597private:
598    typedef std::tr1::unordered_map<DataSetId, DataSet *> DataSetHashmap;
599    typedef std::tr1::unordered_map<FieldId, double *> FieldRangeHashmap;
600    typedef std::tr1::unordered_map<ColorMapId, ColorMap *> ColorMapHashmap;
601
602    typedef std::tr1::unordered_map<DataSetId, Arc *> ArcHashmap;
603    typedef std::tr1::unordered_map<DataSetId, Arrow *> ArrowHashmap;
604    typedef std::tr1::unordered_map<DataSetId, Box *> BoxHashmap;
605    typedef std::tr1::unordered_map<DataSetId, Cone *> ConeHashmap;
606    typedef std::tr1::unordered_map<DataSetId, Contour2D *> Contour2DHashmap;
607    typedef std::tr1::unordered_map<DataSetId, Contour3D *> Contour3DHashmap;
608    typedef std::tr1::unordered_map<DataSetId, Cutplane *> CutplaneHashmap;
609    typedef std::tr1::unordered_map<DataSetId, Cylinder *> CylinderHashmap;
610    typedef std::tr1::unordered_map<DataSetId, Disk *> DiskHashmap;
611    typedef std::tr1::unordered_map<DataSetId, Glyphs *> GlyphsHashmap;
612    typedef std::tr1::unordered_map<DataSetId, Group *> GroupHashmap;
613    typedef std::tr1::unordered_map<DataSetId, HeightMap *> HeightMapHashmap;
614    typedef std::tr1::unordered_map<DataSetId, LIC *> LICHashmap;
615    typedef std::tr1::unordered_map<DataSetId, Line *> LineHashmap;
616    typedef std::tr1::unordered_map<DataSetId, Molecule *> MoleculeHashmap;
617    typedef std::tr1::unordered_map<DataSetId, PolyData *> PolyDataHashmap;
618    typedef std::tr1::unordered_map<DataSetId, Polygon *> PolygonHashmap;
619    typedef std::tr1::unordered_map<DataSetId, PseudoColor *> PseudoColorHashmap;
620    typedef std::tr1::unordered_map<DataSetId, Sphere *> SphereHashmap;
621    typedef std::tr1::unordered_map<DataSetId, Streamlines *> StreamlinesHashmap;
622    typedef std::tr1::unordered_map<DataSetId, Volume *> VolumeHashmap;
623    typedef std::tr1::unordered_map<DataSetId, Warp *> WarpHashmap;
624
625    static void printCameraInfo(vtkCamera *camera);
626
627    static void setCameraFromMatrix(vtkCamera *camera, vtkMatrix4x4 &mat);
628
629    static void mergeBounds(double *boundsDest, const double *bounds1, const double *bounds2);
630
631    template<class GraphicsObject>
632    std::tr1::unordered_map<DataSetId, GraphicsObject *>&getGraphicsObjectHashmap();
633
634    void setObjectAspects(double aspectRatio);
635
636    void collectBounds(double *bounds, bool onlyVisible);
637
638    void collectUnscaledBounds(double *bounds, bool onlyVisible);
639
640    void collectDataRanges();
641
642    void collectDataRanges(double *range, const char *name,
643                           DataSet::DataAttributeType type,
644                           int component, bool onlyVisible);
645
646    void clearFieldRanges();
647
648    void initFieldRanges();
649
650    void updateFieldRanges();
651
652    void updateColorMap(ColorMap *cmap);
653
654    bool colorMapUsed(ColorMap *cmap);
655
656    void computeDisplayToWorld(double x, double y, double z, double worldPt[4]);
657
658    void computeWorldToDisplay(double x, double y, double z, double displayPt[3]);
659
660    void computeScreenWorldCoords();
661
662    bool is2D(const double bounds[6],
663              PrincipalPlane *plane,
664              double *offset) const;
665    void initCamera(bool initCameraMode = false);
666    void initAxes();
667    void resetAxes(double bounds[6] = NULL);
668    void setCameraClippingPlanes();
669
670    bool _needsRedraw;
671    int _windowWidth, _windowHeight;
672    CameraMode _cameraMode;
673    double _imgWorldOrigin[2];
674    double _imgWorldDims[2];
675    PrincipalPlane _imgCameraPlane;
676    double _imgCameraOffset;
677    double _screenWorldCoords[4];
678    double _cameraOrientation[4];
679    double _cameraZoomRatio;
680    double _cameraPan[2];
681    float _bgColor[3];
682    bool _useCumulativeRange;
683    bool _cumulativeRangeOnlyVisible;
684
685    FieldRangeHashmap _scalarPointDataRange;
686    FieldRangeHashmap _vectorPointDataRange;
687    FieldRangeHashmap _vectorCompPointDataRange[3];
688    FieldRangeHashmap _scalarCellDataRange;
689    FieldRangeHashmap _vectorCellDataRange;
690    FieldRangeHashmap _vectorCompCellDataRange[3];
691
692    ColorMapHashmap _colorMaps;
693    DataSetHashmap _dataSets;
694    ArcHashmap _arcs;
695    ArrowHashmap _arrows;
696    BoxHashmap _boxes;
697    ConeHashmap _cones;
698    Contour2DHashmap _contour2Ds;
699    Contour3DHashmap _contour3Ds;
700    CutplaneHashmap _cutplanes;
701    CylinderHashmap _cylinders;
702    DiskHashmap _disks;
703    GlyphsHashmap _glyphs;
704    GroupHashmap _groups;
705    HeightMapHashmap _heightMaps;
706    LICHashmap _lics;
707    LineHashmap _lines;
708    MoleculeHashmap _molecules;
709    PolyDataHashmap _polyDatas;
710    PolygonHashmap _polygons;
711    PseudoColorHashmap _pseudoColors;
712    SphereHashmap _spheres;
713    StreamlinesHashmap _streamlines;
714    VolumeHashmap _volumes;
715    WarpHashmap _warps;
716
717    vtkSmartPointer<vtkPlane> _cameraClipPlanes[4];
718    vtkSmartPointer<vtkPlane> _userClipPlanes[6];
719    vtkSmartPointer<vtkPlaneCollection> _activeClipPlanes;
720#ifdef USE_CUSTOM_AXES
721    vtkSmartPointer<vtkRpCubeAxesActor> _cubeAxesActor; // For 3D view
722    vtkSmartPointer<vtkRpCubeAxesActor2D> _cubeAxesActor2D; // For 2D view
723#else
724    vtkSmartPointer<vtkCubeAxesActor> _cubeAxesActor; // For 3D view
725    vtkSmartPointer<vtkCubeAxesActor2D> _cubeAxesActor2D; // For 2D view
726#endif
727    vtkSmartPointer<vtkScalarBarActor> _scalarBarActor;
728    vtkSmartPointer<vtkRenderer> _renderer;
729    vtkSmartPointer<vtkRenderer> _legendRenderer;
730    vtkSmartPointer<vtkRenderWindow> _renderWindow;
731    vtkSmartPointer<vtkRenderWindow> _legendRenderWindow;
732};
733
734}
735}
736
737#endif
Note: See TracBrowser for help on using the repository browser.