source: vtkvis/tags/1.7.2/Contour3D.h @ 4807

Last change on this file since 4807 was 3680, checked in by ldelgass, 11 years ago

Improved cloud support in vtkvis: handle ugrids with no cells as well as
polydata clouds, add cloudstyle options to some graphics objects.

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright (C) 2004-2012  HUBzero Foundation, LLC
4 *
5 * Author: Leif Delgass <ldelgass@purdue.edu>
6 */
7
8#ifndef VTKVIS_CONTOUR3D_H
9#define VTKVIS_CONTOUR3D_H
10
11#include <vtkSmartPointer.h>
12#include <vtkContourFilter.h>
13#include <vtkPolyDataNormals.h>
14#include <vtkLookupTable.h>
15#include <vtkPolyDataMapper.h>
16#include <vtkActor.h>
17#include <vtkPlaneCollection.h>
18
19#include <vector>
20
21#include "ColorMap.h"
22#include "GraphicsObject.h"
23
24namespace VtkVis {
25
26/**
27 * \brief 3D Contour isosurfaces (geometry)
28 */
29class Contour3D : public GraphicsObject {
30public:
31    enum ColorMode {
32        COLOR_BY_SCALAR,
33        COLOR_BY_VECTOR_MAGNITUDE,
34        COLOR_BY_VECTOR_X,
35        COLOR_BY_VECTOR_Y,
36        COLOR_BY_VECTOR_Z,
37        COLOR_CONSTANT
38    };
39
40    Contour3D(int numContours);
41
42    Contour3D(const std::vector<double>& contours);
43
44    virtual ~Contour3D();
45
46    virtual const char *getClassName() const
47    {
48        return "Contour3D";
49    }
50
51    virtual void setDataSet(DataSet *dataSet,
52                            Renderer *renderer);
53
54    virtual void setClippingPlanes(vtkPlaneCollection *planes);
55
56    void setNumContours(int numContours);
57
58    void setContourList(const std::vector<double>& contours);
59
60    int getNumContours() const;
61
62    const std::vector<double>& getContourList() const;
63
64    void setContourField(const char *name);
65
66    void setColorMode(ColorMode mode, DataSet::DataAttributeType type,
67                      const char *name, double range[2] = NULL);
68
69    void setColorMode(ColorMode mode,
70                      const char *name, double range[2] = NULL);
71
72    void setColorMode(ColorMode mode);
73
74    void setColorMap(ColorMap *colorMap);
75
76    /**
77     * \brief Return the ColorMap in use
78     */
79    ColorMap *getColorMap()
80    {
81        return _colorMap;
82    }
83
84    void updateColorMap();
85
86    virtual void updateRanges(Renderer *renderer);
87
88private:
89    Contour3D();
90
91    virtual void update();
92
93    int _numContours;
94    std::vector<double> _contours;
95
96    bool _pipelineInitialized;
97
98    ColorMap *_colorMap;
99    ColorMode _colorMode;
100    std::string _colorFieldName;
101    DataSet::DataAttributeType _colorFieldType;
102    double _colorFieldRange[2];
103    double _vectorMagnitudeRange[2];
104    double _vectorComponentRange[3][2];
105    Renderer *_renderer;
106
107    vtkSmartPointer<vtkLookupTable> _lut;
108    vtkSmartPointer<vtkContourFilter> _contourFilter;
109    vtkSmartPointer<vtkPolyDataNormals> _normalsGenerator;
110    vtkSmartPointer<vtkPolyDataMapper> _mapper;
111};
112
113}
114
115#endif
Note: See TracBrowser for help on using the repository browser.