#pragma once

#include "Common"

#include <osg/LOD>
#include <map>

namespace osgEarth
{
    namespace Buildings
    {
        /**
         * Container Node for storing information about the Building Geometry
         * without rendering it. VRV looks for this so it can preprocess the 
         * building geometry for Indirect Rendering.
         */
        class OSGEARTHBUILDINGS_EXPORT ElevationsLodNode : public osg::Node
        {
        public:
            ElevationsLodNode();
            ElevationsLodNode(const ElevationsLodNode& rhs, const osg::CopyOp& copyop);
            ElevationsLodNode& operator=(const ElevationsLodNode& rhs);

            META_Node(osgEarth::Buildings, ElevationsLodNode);


            const osg::LOD * getelevationsLOD() const;
            void setelevationsLOD(osg::LOD * lod);

            const osg::Matrixd & getxform() const { return xform; }
            void setxform(const osg::Matrixd & mat) { xform = mat; }

            osg::ref_ptr<osg::LOD> elevationsLOD;
            osg::Matrixd xform;

            osg::BoundingSphere computeBound() const override;
        };
    }
}

