Cleanup, no need to inherit and override osg::ComputeBoundsVisitor

openmw-39
Aesylwinn 9 years ago
parent 1e30891891
commit efa2ec21ff

@ -572,31 +572,4 @@ namespace CSVRender
getCamera()->setViewMatrixAsLookAt(mCenter + offset, mCenter, up); getCamera()->setViewMatrixAsLookAt(mCenter + offset, mCenter, up);
} }
CameraComputeBoundsVisitor::CameraComputeBoundsVisitor(unsigned int mask)
: mMask(mask)
{
}
unsigned int CameraComputeBoundsVisitor::getMask() const
{
return mMask;
}
void CameraComputeBoundsVisitor::setMask(unsigned int value)
{
mMask = value;
}
void CameraComputeBoundsVisitor::apply(osg::Drawable& drawable)
{
if (drawable.getNodeMask() & mMask)
ComputeBoundsVisitor::apply(drawable);
}
void CameraComputeBoundsVisitor::apply(osg::Transform& transform)
{
if (transform.getNodeMask() & mMask)
ComputeBoundsVisitor::apply(transform);
}
} }

@ -4,7 +4,6 @@
#include <string> #include <string>
#include <osg/BoundingBox> #include <osg/BoundingBox>
#include <osg/ComputeBoundsVisitor>
#include <osg/ref_ptr> #include <osg/ref_ptr>
#include <osg/Vec3d> #include <osg/Vec3d>
@ -145,21 +144,6 @@ namespace CSVRender
double mOrbitSpeed; double mOrbitSpeed;
double mOrbitSpeedMult; double mOrbitSpeedMult;
}; };
class CameraComputeBoundsVisitor : public osg::ComputeBoundsVisitor
{
public:
CameraComputeBoundsVisitor(unsigned int mask);
unsigned int getMask() const;
void setMask(unsigned int mask);
void apply(osg::Drawable& drawable);
void apply(osg::Transform& transform);
private:
unsigned int mMask;
};
} }
#endif #endif

@ -12,6 +12,7 @@
#include <osgViewer/ViewerEventHandlers> #include <osgViewer/ViewerEventHandlers>
#include <osg/LightModel> #include <osg/LightModel>
#include <osg/BoundingBox> #include <osg/BoundingBox>
#include <osg/ComputeBoundsVisitor>
#include <osgGA/TrackballManipulator> #include <osgGA/TrackballManipulator>
#include <osgGA/FirstPersonManipulator> #include <osgGA/FirstPersonManipulator>
@ -314,8 +315,9 @@ void SceneWidget::update(double dt)
} }
else else
{ {
CameraComputeBoundsVisitor boundsVisitor(Mask_Reference | Mask_Terrain); osg::ComputeBoundsVisitor boundsVisitor;
osg::BoundingBox &boundingBox(boundsVisitor.getBoundingBox()); osg::BoundingBox &boundingBox(boundsVisitor.getBoundingBox());
boundsVisitor.setNodeMaskOverride(Mask_Reference | Mask_Terrain);
mRootNode->accept(boundsVisitor); mRootNode->accept(boundsVisitor);
@ -323,7 +325,7 @@ void SceneWidget::update(double dt)
if (!boundingBox.valid()) if (!boundingBox.valid())
{ {
boundsVisitor.reset(); boundsVisitor.reset();
boundsVisitor.setMask(~0); boundsVisitor.setNodeMaskOverride(~0);
mRootNode->accept(boundsVisitor); mRootNode->accept(boundsVisitor);
} }

Loading…
Cancel
Save