Added Macro's new cube map generation classes and osgcubemap demo.
This commit is contained in:
43
include/osgUtil/ReflectionMapGenerator
Normal file
43
include/osgUtil/ReflectionMapGenerator
Normal file
@@ -0,0 +1,43 @@
|
||||
#ifndef OSGUTIL_REFLECTIONMAPGENERATOR_
|
||||
#define OSGUTIL_REFLECTIONMAPGENERATOR_
|
||||
|
||||
#include <osgUtil/CubeMapGenerator>
|
||||
|
||||
namespace osgUtil
|
||||
{
|
||||
|
||||
/** This is the most simple cube map generator. It performs a direct association
|
||||
between reflection vector and RGBA color (C = R).
|
||||
*/
|
||||
class ReflectionMapGenerator: public CubeMapGenerator {
|
||||
public:
|
||||
inline ReflectionMapGenerator(int texture_size = 64);
|
||||
inline ReflectionMapGenerator(const ReflectionMapGenerator ©, const osg::CopyOp ©op = osg::CopyOp::SHALLOW_COPY);
|
||||
|
||||
protected:
|
||||
virtual ~ReflectionMapGenerator() {}
|
||||
ReflectionMapGenerator &operator=(const ReflectionMapGenerator &) { return *this; }
|
||||
|
||||
inline virtual osg::Vec4 compute_color(const osg::Vec3 &R) const;
|
||||
};
|
||||
|
||||
// INLINE METHODS
|
||||
|
||||
inline ReflectionMapGenerator::ReflectionMapGenerator(int texture_size)
|
||||
: CubeMapGenerator(texture_size)
|
||||
{
|
||||
}
|
||||
|
||||
inline ReflectionMapGenerator::ReflectionMapGenerator(const ReflectionMapGenerator ©, const osg::CopyOp ©op)
|
||||
: CubeMapGenerator(copy, copyop)
|
||||
{
|
||||
}
|
||||
|
||||
inline osg::Vec4 ReflectionMapGenerator::compute_color(const osg::Vec3 &R) const
|
||||
{
|
||||
return vector_to_color(R / R.length());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user