/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
****************************************************************************/

#pragma once

#include "glmRTTI.h"

namespace glm
{
    struct GeometryAssetV1;

    /**
	* \brief Geometry Asset
	*/
    class GLM_CORE_API GeometryAssetV2
    {
        GLM_RTTI("d19a896e-bbef-469a-bab8-4c608264dec3", GeometryAssetV2, addAttributes);

    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

        /// The geometry file
        glm::GlmString _filename;

        /// bounding box halfExtents
        Vector3 _halfExtentsYUp;

        float _LODMinDistance;
        float _LODMaxDistance;

        GeometryAssetV2();

        void createFromV1(GeometryAssetV1& geoAssetV1);

        GeometryFileType::Value getGeometryFileType() const;

        void getAbsoluteGeometryFile(glm::GlmString& resultFilePath, const char* referenceDirectory) const;

    protected:
        /**
		* \brief Inspection needed method declaring the inspectable attributes.
		*/
        static void addAttributes();
    };
} // namespace glm
