107 lines
3.0 KiB
Plaintext
107 lines
3.0 KiB
Plaintext
|
#ifndef OSGEARTHUTIL_COMPRESSED_ARRAY_H
|
||
|
#define OSGEARTHUTIL_COMPRESSED_ARRAY_H
|
||
|
|
||
|
#include <osgEarth/Common>
|
||
|
|
||
|
#ifdef OSGEARTH_HAVE_MESH_OPTIMIZER
|
||
|
|
||
|
#include <osg/Array>
|
||
|
#include <osg/PrimitiveSet>
|
||
|
|
||
|
namespace osgEarth
|
||
|
{
|
||
|
using namespace osgEarth;
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedVec3Array : public osg::Vec3Array
|
||
|
{
|
||
|
public:
|
||
|
enum QuantizationType
|
||
|
{
|
||
|
QUANTIZE_NONE,
|
||
|
QUANTIZE_VERTEX,
|
||
|
QUANTIZE_NORMAL,
|
||
|
QUANTIZE_HALF
|
||
|
};
|
||
|
|
||
|
CompressedVec3Array();
|
||
|
|
||
|
CompressedVec3Array(osg::Vec3Array& va, QuantizationType quantization = CompressedVec3Array::QUANTIZE_NONE);
|
||
|
|
||
|
CompressedVec3Array(const CompressedVec3Array& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedVec3Array);
|
||
|
|
||
|
QuantizationType getQuantization() const { return _quantization; }
|
||
|
void setQuantization(QuantizationType quantization) { _quantization = quantization; }
|
||
|
|
||
|
private:
|
||
|
QuantizationType _quantization = QUANTIZE_NONE;
|
||
|
};
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedVec2Array : public osg::Vec2Array
|
||
|
{
|
||
|
public:
|
||
|
CompressedVec2Array();
|
||
|
|
||
|
CompressedVec2Array(osg::Vec2Array& va);
|
||
|
|
||
|
CompressedVec2Array(const CompressedVec2Array& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedVec2Array);
|
||
|
};
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedDrawElementsUShort : public osg::DrawElementsUShort
|
||
|
{
|
||
|
public:
|
||
|
CompressedDrawElementsUShort();
|
||
|
|
||
|
CompressedDrawElementsUShort(osg::DrawElementsUShort& de);
|
||
|
|
||
|
CompressedDrawElementsUShort(const CompressedDrawElementsUShort& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedDrawElementsUShort);
|
||
|
};
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedDrawElementsUByte : public osg::DrawElementsUByte
|
||
|
{
|
||
|
public:
|
||
|
CompressedDrawElementsUByte();
|
||
|
|
||
|
CompressedDrawElementsUByte(osg::DrawElementsUByte& de);
|
||
|
|
||
|
CompressedDrawElementsUByte(const CompressedDrawElementsUByte& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedDrawElementsUByte);
|
||
|
};
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedDrawElementsUInt : public osg::DrawElementsUInt
|
||
|
{
|
||
|
public:
|
||
|
CompressedDrawElementsUInt();
|
||
|
|
||
|
CompressedDrawElementsUInt(osg::DrawElementsUInt& de);
|
||
|
|
||
|
CompressedDrawElementsUInt(const CompressedDrawElementsUInt& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedDrawElementsUInt);
|
||
|
};
|
||
|
|
||
|
class OSGEARTH_EXPORT CompressedUIntArray : public osg::UIntArray
|
||
|
{
|
||
|
public:
|
||
|
CompressedUIntArray();
|
||
|
|
||
|
CompressedUIntArray(osg::UIntArray& array);
|
||
|
|
||
|
CompressedUIntArray(const CompressedUIntArray& rhs, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
|
||
|
|
||
|
META_Object(osgEarth, CompressedUIntArray);
|
||
|
};
|
||
|
|
||
|
|
||
|
}
|
||
|
#else
|
||
|
#pragma message("Warning: MeshOptimizer not available. CompressedArray classes will not be available.")
|
||
|
#endif
|
||
|
|
||
|
#endif
|