PdfReader
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2008 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 OSGWIDGET_PDFREADER
#define OSGWIDGET_PDFREADER
#include <osg/Image>
#include <osg/Geode>
#include <osgWidget/Export>
namespace osgWidget {
struct GeometryHints
{
enum AspectRatioPolicy
{
RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO,
RESIZE_WIDTH_TO_MAINTAINCE_ASPECT_RATIO,
IGNORE_DOCUMENT_ASPECT_RATIO
};
GeometryHints():
position(0.0f,0.0f,0.0f),
widthVec(1.0f,0.0f,0.0f),
heightVec(0.0f,1.0f,0.0f),
backgroundColor(1.0f,1.0f,1.0f,1.0f),
aspectRatioPolicy(RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO),
widthResolution(1024),
heightResolution(1024) {}
GeometryHints(const osg::Vec3& pos,
const osg::Vec3& wVec,
const osg::Vec3& hVec,
const osg::Vec4& bColor,
AspectRatioPolicy asp=RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO,
unsigned int wRes=1024,
unsigned int hRes=1024):
position(pos),
widthVec(wVec),
heightVec(hVec),
backgroundColor(bColor),
aspectRatioPolicy(asp),
widthResolution(wRes),
heightResolution(hRes) {}
osg::Vec3 position;
osg::Vec3 widthVec;
osg::Vec3 heightVec;
osg::Vec4 backgroundColor;
AspectRatioPolicy aspectRatioPolicy;
unsigned int widthResolution;
unsigned int heightResolution;
};
class PdfImage : public osg::Image
{
public:
PdfImage():
_backgroundColor(1.0f,1.0f,1.0f,1.0f),
_pageNum(0),
_nextPageKeyEvent('n'),
_previousPageKeyEvent('p') {}
void setBackgroundColor(const osg::Vec4& backgroundColor) { _backgroundColor = backgroundColor; }
const osg::Vec4& getBackgroundColor() const { return _backgroundColor; }
int getPageNum() const { return _pageNum; }
virtual int getNumOfPages() = 0;
virtual bool page(int pageNum) = 0;
bool previous()
{
return page(_pageNum-1);
}
bool next()
{
return page(_pageNum+1);
}
void setNextPageKeyEvent(int key) { _nextPageKeyEvent = key; }
int getNextPageKeyEvent() const { return _nextPageKeyEvent; }
void setPreviousPageKeyEvent(int key) { _previousPageKeyEvent = key; }
int getPreviousPageKeyEvent() const { return _previousPageKeyEvent; }
protected:
virtual ~PdfImage() {}
osg::Vec4 _backgroundColor;
int _pageNum;
int _nextPageKeyEvent;
int _previousPageKeyEvent;
};
class OSGWIDGET_EXPORT PdfReader : public osg::Geode
{
public:
PdfReader() {}
PdfReader(const std::string& filename, const GeometryHints& hints = GeometryHints());
bool assign(PdfImage* pdfImage, const GeometryHints& hints = GeometryHints());
bool open(const std::string& filename, const GeometryHints& hints = GeometryHints());
bool page(int pageNum);
bool previous();
bool next();
protected:
osg::ref_ptr<PdfImage> _pdfImage;
};
}
#endif
Geode
Image
osgWidget::PdfImage
Definition PdfReader:74
osgWidget::PdfImage::PdfImage
PdfImage()
Definition PdfReader:77
osgWidget::PdfImage::page
virtual bool page(int pageNum)=0
osgWidget::PdfImage::_pageNum
int _pageNum
Definition PdfReader:114
osgWidget::PdfImage::setBackgroundColor
void setBackgroundColor(const osg::Vec4 &backgroundColor)
Definition PdfReader:83
osgWidget::PdfImage::setNextPageKeyEvent
void setNextPageKeyEvent(int key)
Definition PdfReader:102
osgWidget::PdfImage::next
bool next()
Definition PdfReader:97
osgWidget::PdfImage::getBackgroundColor
const osg::Vec4 & getBackgroundColor() const
Definition PdfReader:84
osgWidget::PdfImage::setPreviousPageKeyEvent
void setPreviousPageKeyEvent(int key)
Definition PdfReader:105
osgWidget::PdfImage::getPageNum
int getPageNum() const
Definition PdfReader:86
osgWidget::PdfImage::_nextPageKeyEvent
int _nextPageKeyEvent
Definition PdfReader:115
osgWidget::PdfImage::getNumOfPages
virtual int getNumOfPages()=0
osgWidget::PdfImage::getPreviousPageKeyEvent
int getPreviousPageKeyEvent() const
Definition PdfReader:106
osgWidget::PdfImage::~PdfImage
virtual ~PdfImage()
Definition PdfReader:110
osgWidget::PdfImage::previous
bool previous()
Definition PdfReader:92
osgWidget::PdfImage::getNextPageKeyEvent
int getNextPageKeyEvent() const
Definition PdfReader:103
osgWidget::PdfImage::_backgroundColor
osg::Vec4 _backgroundColor
Definition PdfReader:112
osgWidget::PdfImage::_previousPageKeyEvent
int _previousPageKeyEvent
Definition PdfReader:116
osgWidget::PdfReader::PdfReader
PdfReader()
Definition PdfReader:126
osgWidget::PdfReader::_pdfImage
osg::ref_ptr< PdfImage > _pdfImage
Definition PdfReader:142
osgWidget::PdfReader::PdfReader
PdfReader(const std::string &filename, const GeometryHints &hints=GeometryHints())
osgWidget::PdfReader::page
bool page(int pageNum)
osgWidget::PdfReader::open
bool open(const std::string &filename, const GeometryHints &hints=GeometryHints())
osgWidget::PdfReader::previous
bool previous()
osgWidget::PdfReader::assign
bool assign(PdfImage *pdfImage, const GeometryHints &hints=GeometryHints())
osgWidget::PdfReader::next
bool next()
osg::Geode
Definition Geode:29
osg::Image
Definition Image:179
osg::ref_ptr
Definition ref_ptr:32
osgWidget
Definition Box:21
osg::Vec3
Vec3f Vec3
Definition Vec3:21
osg::Vec4
Vec4f Vec4
Definition Vec4:21
Export
OSGWIDGET_EXPORT
#define OSGWIDGET_EXPORT
Definition osgWidget/Export:42
osgWidget::GeometryHints
Definition PdfReader:27
osgWidget::GeometryHints::AspectRatioPolicy
AspectRatioPolicy
Definition PdfReader:29
osgWidget::GeometryHints::RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO
@ RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO
Definition PdfReader:30
osgWidget::GeometryHints::IGNORE_DOCUMENT_ASPECT_RATIO
@ IGNORE_DOCUMENT_ASPECT_RATIO
Definition PdfReader:32
osgWidget::GeometryHints::RESIZE_WIDTH_TO_MAINTAINCE_ASPECT_RATIO
@ RESIZE_WIDTH_TO_MAINTAINCE_ASPECT_RATIO
Definition PdfReader:31
osgWidget::GeometryHints::heightResolution
unsigned int heightResolution
Definition PdfReader:68
osgWidget::GeometryHints::aspectRatioPolicy
AspectRatioPolicy aspectRatioPolicy
Definition PdfReader:65
osgWidget::GeometryHints::GeometryHints
GeometryHints()
Definition PdfReader:35
osgWidget::GeometryHints::GeometryHints
GeometryHints(const osg::Vec3 &pos, const osg::Vec3 &wVec, const osg::Vec3 &hVec, const osg::Vec4 &bColor, AspectRatioPolicy asp=RESIZE_HEIGHT_TO_MAINTAINCE_ASPECT_RATIO, unsigned int wRes=1024, unsigned int hRes=1024)
Definition PdfReader:44
osgWidget::GeometryHints::widthVec
osg::Vec3 widthVec
Definition PdfReader:60
osgWidget::GeometryHints::widthResolution
unsigned int widthResolution
Definition PdfReader:67
osgWidget::GeometryHints::backgroundColor
osg::Vec4 backgroundColor
Definition PdfReader:63
osgWidget::GeometryHints::heightVec
osg::Vec3 heightVec
Definition PdfReader:61
osgWidget::GeometryHints::position
osg::Vec3 position
Definition PdfReader:59