c2b77aa08e
Notes from Robert Osfield, I've merged osgWidget trunk, and added/changed CMakeLists.txt file to make it suitable for inclusion in the core OSG, and moved imagery/scripts/shaders out into OpenSceneGraph-Data
80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
// -*-c++-*- osgWidget - Code by: Jeremy Moles (cubicool) 2007-2008
|
|
// $Id: Util 59 2008-05-15 20:55:31Z cubicool $
|
|
|
|
#ifndef OSGWIDGET_UTIL
|
|
#define OSGWIDGET_UTIL
|
|
|
|
#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 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(), ::tolower);
|
|
|
|
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::Matrix createInvertedYOrthoProjectionMatrix (matrix_type, matrix_type);
|
|
OSGWIDGET_EXPORT osg::Camera* createOrthoCamera (matrix_type, matrix_type);
|
|
OSGWIDGET_EXPORT osg::Camera* createInvertedYOrthoCamera (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);
|
|
|
|
// This function works like the above routine, except creates an additional "outside"
|
|
// view for looking at your 2D scene.
|
|
// TODO: Fix this!
|
|
OSGWIDGET_EXPORT int createCompositeExample(
|
|
osgViewer::CompositeViewer&,
|
|
osgViewer::View*,
|
|
WindowManager*,
|
|
osg::Node* = 0
|
|
);
|
|
|
|
OSGWIDGET_EXPORT bool writeWindowManagerNode(WindowManager*);
|
|
|
|
}
|
|
|
|
#endif
|