diff --git a/include/osg/Camera b/include/osg/Camera index 631a1783f..823b3a661 100644 --- a/include/osg/Camera +++ b/include/osg/Camera @@ -45,6 +45,9 @@ class OSG_EXPORT Camera : public Transform, public CullSettings META_Node(osg, Camera); + virtual Camera* asCamera() { return this; } + virtual const Camera* asCamera() const { return this; } + /** Set the View that this Camera is part of. */ void setView(View* view) { _view = view; } diff --git a/include/osg/Node b/include/osg/Node index 242f3e11f..6ad546fe6 100644 --- a/include/osg/Node +++ b/include/osg/Node @@ -105,6 +105,15 @@ class OSG_EXPORT Node : public Object * Equivalent to dynamic_cast(this).*/ virtual const Transform* asTransform() const { return 0; } + + /** Convert 'this' into a Camera pointer if Node is a Camera, otherwise return 0. + * Equivalent to dynamic_cast(this).*/ + virtual Camera* asCamera() { return 0; } + /** convert 'const this' into a const Camera pointer if Node is a Camera, otherwise return 0. + * Equivalent to dynamic_cast(this).*/ + virtual const Camera* asCamera() const { return 0; } + + /** Convert 'this' into a Switch pointer if Node is a Switch, otherwise return 0. * Equivalent to dynamic_cast(this).*/ virtual Switch* asSwitch() { return 0; }