Added new files to cvs.
This commit is contained in:
228
include/osgText/Font
Normal file
228
include/osgText/Font
Normal file
@@ -0,0 +1,228 @@
|
||||
//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield
|
||||
//Distributed under the terms of the GNU Library General Public License (LGPL)
|
||||
//as published by the Free Software Foundation.
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
*
|
||||
* openscenegraph textLib / FTGL wrapper
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* prog: max rheiner;mrn@paus.ch
|
||||
* date: 4/25/2001 (m/d/y)
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#ifndef OSGTEXT_FONT
|
||||
#define OSGTEXT_FONT 1
|
||||
|
||||
#include <osg/Object>
|
||||
|
||||
#include <osgText/Export>
|
||||
|
||||
#include <string>
|
||||
|
||||
// http://homepages.paradise.net.nz/henryj/code/
|
||||
|
||||
class FTFont;
|
||||
|
||||
namespace osgText {
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Font - FontBaseClass
|
||||
class OSGTEXT_EXPORT Font : public osg::Object
|
||||
{
|
||||
public:
|
||||
|
||||
Font();
|
||||
|
||||
|
||||
virtual bool open(const std::string& font);
|
||||
|
||||
virtual bool create(int pointSize, const unsigned int res = 72 );
|
||||
virtual bool create();
|
||||
virtual void output(const char* text);
|
||||
|
||||
virtual bool isOk(void) const { return _init; }
|
||||
virtual bool isCreated(void) const { return isOk() && _created; }
|
||||
|
||||
virtual float getWidth(const char* text) const;
|
||||
virtual int getHeight() const;
|
||||
virtual int getDescender() const;
|
||||
virtual int getAscender() const;
|
||||
|
||||
int getPointSize(void) const { return _pointSize; }
|
||||
const std::string& getFontName();
|
||||
|
||||
FTFont* getFont(void) { return _font; }
|
||||
|
||||
protected:
|
||||
|
||||
virtual ~Font();
|
||||
|
||||
virtual void clear();
|
||||
|
||||
virtual FTFont* createFontObj(void)=0;
|
||||
|
||||
bool init(const std::string& font);
|
||||
|
||||
bool _init;
|
||||
bool _created;
|
||||
|
||||
FTFont* _font;
|
||||
std::string _fontName;
|
||||
int _pointSize;
|
||||
int _res;
|
||||
};
|
||||
// Font
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// RasterFont
|
||||
class OSGTEXT_EXPORT RasterFont:public Font
|
||||
{
|
||||
public:
|
||||
RasterFont():Font(){;}
|
||||
RasterFont(const std::string& font):Font(){;}
|
||||
|
||||
protected:
|
||||
|
||||
};
|
||||
|
||||
// RasterFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// VectorFont
|
||||
class OSGTEXT_EXPORT VectorFont:public Font
|
||||
{
|
||||
public:
|
||||
VectorFont():Font(){;}
|
||||
VectorFont(const std::string& font):Font(){;}
|
||||
|
||||
protected:
|
||||
double _precision;
|
||||
};
|
||||
|
||||
// VectorFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// BitmapFont
|
||||
class OSGTEXT_EXPORT BitmapFont:public RasterFont
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
BitmapFont() {;}
|
||||
|
||||
BitmapFont(const std::string& font,
|
||||
int point_size);
|
||||
|
||||
META_Object(BitmapFont);
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
virtual FTFont* createFontObj(void);
|
||||
};
|
||||
|
||||
// BitmapFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// PixmapFont
|
||||
class OSGTEXT_EXPORT PixmapFont:public RasterFont
|
||||
{
|
||||
public:
|
||||
|
||||
PixmapFont() {;}
|
||||
|
||||
PixmapFont(const std::string& font,
|
||||
int point_size);
|
||||
|
||||
META_Object(PixmapFont);
|
||||
|
||||
protected:
|
||||
|
||||
virtual FTFont* createFontObj(void);
|
||||
|
||||
};
|
||||
// PixmapFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// TextureFont
|
||||
|
||||
class OSGTEXT_EXPORT TextureFont:public RasterFont
|
||||
{
|
||||
public:
|
||||
|
||||
TextureFont() {;}
|
||||
|
||||
TextureFont(const std::string& font,
|
||||
int point_size);
|
||||
|
||||
META_Object(TextureFont);
|
||||
|
||||
protected:
|
||||
|
||||
virtual FTFont* createFontObj(void);
|
||||
|
||||
};
|
||||
// PixmapFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// OutlineFont
|
||||
class OSGTEXT_EXPORT OutlineFont:public VectorFont
|
||||
{
|
||||
public:
|
||||
|
||||
OutlineFont() {;}
|
||||
|
||||
OutlineFont(const std::string& font,
|
||||
int point_size,
|
||||
double precision);
|
||||
|
||||
META_Object(OutlineFont);
|
||||
|
||||
protected:
|
||||
|
||||
virtual FTFont* createFontObj(void);
|
||||
|
||||
|
||||
};
|
||||
// OutlineFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// PolygonFont
|
||||
class OSGTEXT_EXPORT PolygonFont:public VectorFont
|
||||
{
|
||||
public:
|
||||
|
||||
PolygonFont() {;}
|
||||
|
||||
PolygonFont(const std::string& font,
|
||||
int point_size,
|
||||
double precision);
|
||||
|
||||
META_Object(PolygonFont);
|
||||
|
||||
protected:
|
||||
|
||||
virtual FTFont* createFontObj(void);
|
||||
|
||||
};
|
||||
// PolygonFont
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
};
|
||||
|
||||
#endif // OSGTEXT_FONT
|
||||
60
include/osgText/Paragraph
Normal file
60
include/osgText/Paragraph
Normal file
@@ -0,0 +1,60 @@
|
||||
//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield
|
||||
//Distributed under the terms of the GNU Library General Public License (LGPL)
|
||||
//as published by the Free Software Foundation.
|
||||
|
||||
#ifndef OSGTEXT_PARAGRAPH
|
||||
#define OSGTEXT_PARAGRAPH
|
||||
|
||||
#include <osg/Geode>
|
||||
#include <osgText/Text>
|
||||
|
||||
namespace osgText {
|
||||
|
||||
class OSGTEXT_EXPORT Paragraph : public osg::Geode
|
||||
{
|
||||
public:
|
||||
|
||||
Paragraph();
|
||||
Paragraph(const osg::Vec3& position,const std::string& text,osgText::Font* font);
|
||||
|
||||
META_Node(Paragraph)
|
||||
|
||||
|
||||
void setFont(osgText::Font* font);
|
||||
osgText::Font* getFont() { return _font.get(); }
|
||||
const osgText::Font* getFont() const { return _font.get(); }
|
||||
|
||||
void setMaximumNoCharactersPerLine(unsigned int maxCharsPerLine);
|
||||
const unsigned int getMaximumNoCharactersPerLine() const { return _maxCharsPerLine; }
|
||||
|
||||
void setText(const std::string& text);
|
||||
std::string& getText() { return _text; }
|
||||
const std::string& getText() const { return _text; }
|
||||
|
||||
void setPosition(const osg::Vec3& position);
|
||||
const osg::Vec3& getPosition() const { return _position; }
|
||||
|
||||
void setAlignment(int alignment);
|
||||
int getAlignment() { return _alignment; }
|
||||
|
||||
|
||||
float getHeight() const;
|
||||
|
||||
protected:
|
||||
|
||||
virtual ~Paragraph() {}
|
||||
|
||||
void createDrawables();
|
||||
|
||||
osg::Vec3 _position;
|
||||
std::string _text;
|
||||
osg::ref_ptr<osgText::Font> _font;
|
||||
int _alignment;
|
||||
unsigned int _maxCharsPerLine;
|
||||
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user