// ***************************************************************************
//
//   Generated automatically by genwrapper.
//   Please DO NOT EDIT this file!
//
// ***************************************************************************

#include <osgIntrospection/ReflectionMacros>
#include <osgIntrospection/TypedMethodInfo>
#include <osgIntrospection/Attributes>

#include <osg/CopyOp>
#include <osg/Object>
#include <osg/State>
#include <osg/StateAttribute>
#include <osg/StateSet>
#include <osg/Texture>
#include <osg/Vec2>
#include <osgText/Font>

// Must undefine IN and OUT macros defined in Windows headers
#ifdef IN
#undef IN
#endif
#ifdef OUT
#undef OUT
#endif

BEGIN_OBJECT_REFLECTOR(osgText::Font)
	I_BaseType(osg::Object);
	I_ConstructorWithDefaults1(IN, osgText::Font::FontImplementation *, implementation, 0);
	I_Method0(osg::Object *, cloneType);
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x);
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj);
	I_Method0(const char *, className);
	I_Method0(const char *, libraryName);
	I_Method0(std::string, getFileName);
	I_Method2(void, setFontResolution, IN, unsigned int, width, IN, unsigned int, height);
	I_Method0(unsigned int, getFontWidth);
	I_Method0(unsigned int, getFontHeight);
	I_Method3(osg::Vec2, getKerning, IN, unsigned int, leftcharcode, IN, unsigned int, rightcharcode, IN, osgText::KerningType, kerningType);
	I_Method1(osgText::Font::Glyph *, getGlyph, IN, unsigned int, charcode);
	I_Method0(bool, hasVertical);
	I_Method1(void, setGlyphImageMargin, IN, unsigned int, margin);
	I_Method0(unsigned int, getGlyphImageMargin);
	I_Method2(void, setTextureSizeHint, IN, unsigned int, width, IN, unsigned int, height);
	I_Method0(unsigned int, getTextureWidthHint);
	I_Method0(unsigned int, getTextureHeightHint);
	I_Method1(void, setMinFilterHint, IN, osg::Texture::FilterMode, mode);
	I_Method0(osg::Texture::FilterMode, getMinFilterHint);
	I_Method1(void, setMagFilterHint, IN, osg::Texture::FilterMode, mode);
	I_Method0(osg::Texture::FilterMode, getMagFilterHint);
	I_Method1(void, setImplementation, IN, osgText::Font::FontImplementation *, implementation);
	I_Method0(osgText::Font::FontImplementation *, getImplementation);
	I_Method0(const osgText::Font::FontImplementation *, getImplementation);
	I_MethodWithDefaults1(void, releaseGLObjects, IN, osg::State *, state, 0);
	I_ReadOnlyProperty(std::string, FileName);
	I_ReadOnlyProperty(unsigned int, FontHeight);
	I_ReadOnlyProperty(unsigned int, FontWidth);
	I_Property(unsigned int, GlyphImageMargin);
	I_Property(osgText::Font::FontImplementation *, Implementation);
	I_Property(osg::Texture::FilterMode, MagFilterHint);
	I_Property(osg::Texture::FilterMode, MinFilterHint);
	I_ReadOnlyProperty(unsigned int, TextureHeightHint);
	I_ReadOnlyProperty(unsigned int, TextureWidthHint);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgText::Font::FontImplementation)
	I_BaseType(osg::Referenced);
	I_Constructor0();
	I_Method0(std::string, getFileName);
	I_Method2(void, setFontResolution, IN, unsigned int, width, IN, unsigned int, height);
	I_Method1(osgText::Font::Glyph *, getGlyph, IN, unsigned int, charcode);
	I_Method3(osg::Vec2, getKerning, IN, unsigned int, leftcharcode, IN, unsigned int, rightcharcode, IN, osgText::KerningType, kerningType);
	I_Method0(bool, hasVertical);
	I_Method1(void, setFontWidth, IN, unsigned int, width);
	I_Method1(void, setFontHeight, IN, unsigned int, height);
	I_Method4(void, addGlyph, IN, unsigned int, width, IN, unsigned int, height, IN, unsigned int, charcode, IN, osgText::Font::Glyph *, glyph);
	I_ReadOnlyProperty(std::string, FileName);
	I_WriteOnlyProperty(unsigned int, FontHeight);
	I_WriteOnlyProperty(unsigned int, FontWidth);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgText::Font::Glyph)
	I_BaseType(osg::Image);
	I_Constructor0();
	I_Method0(unsigned int, getGlyphCode);
	I_Method1(void, setHorizontalBearing, IN, const osg::Vec2 &, bearing);
	I_Method0(const osg::Vec2 &, getHorizontalBearing);
	I_Method1(void, setHorizontalAdvance, IN, float, advance);
	I_Method0(float, getHorizontalAdvance);
	I_Method1(void, setVerticalBearing, IN, const osg::Vec2 &, bearing);
	I_Method0(const osg::Vec2 &, getVerticalBearing);
	I_Method1(void, setVerticalAdvance, IN, float, advance);
	I_Method0(float, getVerticalAdvance);
	I_Method1(void, setTexture, IN, osgText::Font::GlyphTexture *, texture);
	I_Method0(osgText::Font::GlyphTexture *, getTexture);
	I_Method0(const osgText::Font::GlyphTexture *, getTexture);
	I_Method0(osg::StateSet *, getStateSet);
	I_Method0(const osg::StateSet *, getStateSet);
	I_Method2(void, setTexturePosition, IN, int, posX, IN, int, posY);
	I_Method0(int, getTexturePositionX);
	I_Method0(int, getTexturePositionY);
	I_Method1(void, setMinTexCoord, IN, const osg::Vec2 &, coord);
	I_Method0(const osg::Vec2 &, getMinTexCoord);
	I_Method1(void, setMaxTexCoord, IN, const osg::Vec2 &, coord);
	I_Method0(const osg::Vec2 &, getMaxTexCoord);
	I_Method0(void, subload);
	I_Method1(void, draw, IN, osg::State &, state);
	I_ReadOnlyProperty(unsigned int, GlyphCode);
	I_Property(float, HorizontalAdvance);
	I_Property(const osg::Vec2 &, HorizontalBearing);
	I_Property(const osg::Vec2 &, MaxTexCoord);
	I_Property(const osg::Vec2 &, MinTexCoord);
	I_ReadOnlyProperty(osg::StateSet *, StateSet);
	I_Property(osgText::Font::GlyphTexture *, Texture);
	I_ReadOnlyProperty(int, TexturePositionX);
	I_ReadOnlyProperty(int, TexturePositionY);
	I_Property(float, VerticalAdvance);
	I_Property(const osg::Vec2 &, VerticalBearing);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgText::Font::GlyphTexture)
	I_BaseType(osg::Texture2D);
	I_Constructor0();
	I_Method0(const char *, className);
	I_Method1(int, compare, IN, const osg::StateAttribute &, rhs);
	I_Method1(void, setStateSet, IN, osg::StateSet *, stateset);
	I_Method0(osg::StateSet *, getStateSet);
	I_Method0(const osg::StateSet *, getStateSet);
	I_Method1(void, setGlyphImageMargin, IN, unsigned int, margin);
	I_Method0(unsigned int, getGlyphImageMargin);
	I_Method3(bool, getSpaceForGlyph, IN, osgText::Font::Glyph *, glyph, IN, int &, posX, IN, int &, posY);
	I_Method3(void, addGlyph, IN, osgText::Font::Glyph *, glyph, IN, int, posX, IN, int, posY);
	I_Method1(void, apply, IN, osg::State &, state);
	I_Property(unsigned int, GlyphImageMargin);
	I_Property(osg::StateSet *, StateSet);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osgText::KerningType)
	I_EnumLabel(osgText::KERNING_DEFAULT);
	I_EnumLabel(osgText::KERNING_UNFITTED);
	I_EnumLabel(osgText::KERNING_NONE);
END_REFLECTOR

