diff --git a/src/Viewer/CameraGroup.cxx b/src/Viewer/CameraGroup.cxx
index 586e5bbad..2d31ebe71 100644
--- a/src/Viewer/CameraGroup.cxx
+++ b/src/Viewer/CameraGroup.cxx
@@ -913,6 +913,11 @@ osg::Camera* getGUICamera(CameraGroup* cgroup)
     return cgroup->getGUICamera()->compositor->getPass(0)->camera;
 }
 
+const CameraGroup::CameraList& CameraGroup::getCameras()
+{
+    return _cameras;
+}
+
 static bool
 computeCameraIntersection(const CameraGroup *cgroup,
                           const CameraInfo *cinfo,
diff --git a/src/Viewer/CameraGroup.hxx b/src/Viewer/CameraGroup.hxx
index ce5ccf363..076c6f660 100644
--- a/src/Viewer/CameraGroup.hxx
+++ b/src/Viewer/CameraGroup.hxx
@@ -206,6 +206,9 @@ public:
 
     CameraInfo *getGUICamera() const;
 
+    typedef std::vector<osg::ref_ptr<CameraInfo>> CameraList;
+    const CameraList& getCameras();
+
 protected:
     friend CameraGroupListener;
     friend bool computeIntersections(const CameraGroup* cgroup,
@@ -214,7 +217,6 @@ protected:
                                      intersections);
     friend void reloadCompositors(CameraGroup *cgroup);
 
-    typedef std::vector<osg::ref_ptr<CameraInfo>> CameraList;
     CameraList _cameras;
     osg::ref_ptr<osgViewer::View> _viewer;
     static osg::ref_ptr<CameraGroup> _defaultGroup;