123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
- *
- * This library is open source and may be redistributed and/or modified under
- * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
- * (at your option) any later version. The full license is in LICENSE file
- * included with this distribution, and on the openscenegraph.org website.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * OpenSceneGraph Public License for more details.
- */
- #ifndef OSGSIM_COLORRANGE
- #define OSGSIM_COLORRANGE 1
- #include <osgSim/Export>
- #include <osgSim/ScalarsToColors>
- #include <vector>
- namespace osgSim
- {
- /**
- ColorRange is a ScalarsToColors object to define a color spectrum
- for a scalar range. An optional vector of colors may be passed in at
- construction time. The range of colors will be mapped to the scalar range,
- and interpolation between the colors will be performed as necessary.
- By default, the color range will run Red-Yellow-Green-Cyan-Blue.
- */
- class OSGSIM_EXPORT ColorRange: public ScalarsToColors
- {
- public:
- /** Constructor for a ColorRange with a default list of colors set to Red-Yellow-Green-Blue-Cyan
- @param min minimum scalar value
- @param max maximum scalar value
- */
- ColorRange(float min, float max);
- /** Constructor for a ColorRange
- @param min minimum scalar value
- @param max maximum scalar value
- @param colors optional range of colors,
- */
- ColorRange(float min, float max, const std::vector<osg::Vec4>& colors);
- /** Set the range of colors. */
- void setColors(const std::vector<osg::Vec4>& colors);
- /** Get the range of colors */
- const std::vector<osg::Vec4>& getColors() const { return _colors; }
- /** Get the color for a given scalar value. */
- osg::Vec4 getColor(float scalar) const;
- private:
- // Default assignment and copy construction are OK.
- std::vector<osg::Vec4> _colors;
- };
- }
- #endif
|