/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* * Copyright (C) 2004-2012 HUBzero Foundation, LLC * * Author: Leif Delgass */ #ifndef VTKVIS_LIC_H #define VTKVIS_LIC_H #include #include #include #include #include #include #include #include #include #include #include "ColorMap.h" #include "Types.h" #include "GraphicsObject.h" namespace VtkVis { /** * \brief Line Integral Convolution visualization of vector fields * * The DataSet must contain vectors */ class LIC : public GraphicsObject { public: LIC(); virtual ~LIC(); virtual const char *getClassName() const { return "LIC"; } virtual void setClippingPlanes(vtkPlaneCollection *planes); void selectVolumeSlice(Axis axis, double ratio); void setInterpolateBeforeMapping(bool state); void setColorMap(ColorMap *colorMap); /** * \brief Return the ColorMap in use */ ColorMap *getColorMap() { return _colorMap; } void updateColorMap(); virtual void updateRanges(Renderer *renderer); private: virtual void initProp(); virtual void update(); Axis _sliceAxis; ColorMap *_colorMap; int _resolution; vtkSmartPointer _lut; vtkSmartPointer _volumeSlicer; vtkSmartPointer _probeFilter; vtkSmartPointer _cutPlane; vtkSmartPointer _lic; vtkSmartPointer _painter; vtkSmartPointer _mapper; }; } #endif