Util
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.
*/
// Code by: Jeremy Moles (cubicool) 2007-2008
#ifndef OSGWIDGET_UTIL
#define OSGWIDGET_UTIL
#include <ctype.h>
#include <cctype>
#include <algorithm>
#include <sstream>
#include <osg/Camera>
#include <osgViewer/Viewer>
#include <osgViewer/CompositeViewer>
#include <osgWidget/Export>
#include <osgWidget/Types>
namespace osgWidget {
// These are NOT OSGWIDGET_EXPORT'd; these are internal only!
inline std::ostream& _notify(osg::NotifySeverity ns = osg::INFO)
{
std::ostream& n = osg::notify(ns);
return n << "osgWidget: ";
}
inline std::ostream& warn()
{
return _notify(osg::WARN);
}
inline std::ostream& info()
{
return _notify();
}
inline char lowerCaseChar(const char in)
{
return (unsigned char)(::tolower((int)((unsigned char)in)));
}
inline std::string lowerCase(const std::string& str)
{
std::string s = str;
// TODO: Why can't I specify std::tolower?
std::transform(s.begin(), s.end(), s.begin(), lowerCaseChar);
return s;
}
// TODO: Is this totally ghetto or what?
template <typename T>
inline bool hasDecimal(T v)
{
return (v - static_cast<T>(static_cast<long>(v))) > 0.0f;
}
class WindowManager;
// These ARE OSGWIDGET_EXPORT'd for your convenience. :)
OSGWIDGET_EXPORT std::string getFilePath (const std::string&);
OSGWIDGET_EXPORT std::string generateRandomName (const std::string&);
OSGWIDGET_EXPORT osg::Camera* createOrthoCamera (matrix_type, matrix_type);
// This function sets up our basic example framework, and optionally sets some root
// scene data.
OSGWIDGET_EXPORT int createExample (osgViewer::Viewer&, WindowManager*, osg::Node* = 0);
OSGWIDGET_EXPORT bool writeWindowManagerNode (WindowManager*);
}
#endif
Camera
CompositeViewer
Viewer
osgViewer::Viewer
Definition Viewer:28
osgWidget::WindowManager
Definition WindowManager:39
osg::Camera
Definition Camera:45
osg::Node
Definition Node:72
osgWidget
Definition Box:21
osgWidget::lowerCase
std::string lowerCase(const std::string &str)
Definition Util:56
osgWidget::createExample
OSGWIDGET_EXPORT int createExample(osgViewer::Viewer &, WindowManager *, osg::Node *=0)
osgWidget::hasDecimal
bool hasDecimal(T v)
Definition Util:68
osgWidget::writeWindowManagerNode
OSGWIDGET_EXPORT bool writeWindowManagerNode(WindowManager *)
osgWidget::_notify
std::ostream & _notify(osg::NotifySeverity ns=osg::INFO)
Definition Util:34
osgWidget::warn
std::ostream & warn()
Definition Util:41
osgWidget::createOrthoCamera
OSGWIDGET_EXPORT osg::Camera * createOrthoCamera(matrix_type, matrix_type)
osgWidget::generateRandomName
OSGWIDGET_EXPORT std::string generateRandomName(const std::string &)
osgWidget::lowerCaseChar
char lowerCaseChar(const char in)
Definition Util:51
osgWidget::matrix_type
osg::Matrix::value_type matrix_type
Definition osgWidget/Types:39
osgWidget::info
std::ostream & info()
Definition Util:46
osgWidget::getFilePath
OSGWIDGET_EXPORT std::string getFilePath(const std::string &)
osg::NotifySeverity
NotifySeverity
Definition Notify:30
osg::WARN
@ WARN
Definition Notify:33
osg::INFO
@ INFO
Definition Notify:35
osg::notify
std::ostream & notify(void)
Definition Notify:80
Export
OSGWIDGET_EXPORT
#define OSGWIDGET_EXPORT
Definition osgWidget/Export:42
Types