Integrated various changes worked on at the Glasgow Science Center. Changes
include change the CameraManipulators so they work with double for time instead of float. Also added support for DataType to osg::StateAttribute and StateSet so that they can be set to either STATIC or DYNAMIC, this allows the optimizer to know whether that an attribute can be optimized or not.
This commit is contained in:
@@ -37,6 +37,16 @@ class OSGUTIL_EXPORT CameraManipulator : public GUIEventHandler
|
||||
/** Return node if attached.*/
|
||||
virtual const osg::Node* getNode() const { return NULL; }
|
||||
|
||||
|
||||
void setHomeToUseNode() { _homeToUseNode=true; }
|
||||
void setHome(const osg::Vec3& eye,const osg::Vec3& center,const osg::Vec3& up)
|
||||
{
|
||||
_eyeHome = eye;
|
||||
_centerHome = center;
|
||||
_upHome = up;
|
||||
_homeToUseNode = false;
|
||||
}
|
||||
|
||||
/** Move the camera to the default position.
|
||||
May be ignored by manipulators if home functionality is not appropriate.*/
|
||||
virtual void home(const GUIEventAdapter& ,GUIActionAdapter&) {}
|
||||
@@ -53,6 +63,11 @@ class OSGUTIL_EXPORT CameraManipulator : public GUIEventHandler
|
||||
// Reference pointer to a camera
|
||||
osg::ref_ptr<osg::Camera> _camera;
|
||||
|
||||
bool _homeToUseNode;
|
||||
osg::Vec3 _eyeHome;
|
||||
osg::Vec3 _centerHome;
|
||||
osg::Vec3 _upHome;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ class GUIEventAdapter : public osg::Referenced
|
||||
virtual unsigned int getButtonMask() const = 0;
|
||||
|
||||
/** time in seconds of event. */
|
||||
virtual float time() const = 0;
|
||||
virtual double time() const = 0;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
Reference in New Issue
Block a user