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

#pragma once

#include "glmRTTI.h"

namespace glm
{
    struct GLM_CORE_API WeightOverrideV0
    {
        GLM_RTTI("4cf48230-f856-4d1b-b907-ef17a2005ab4", WeightOverrideV0, addAttributes);

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

        int _groupIdx;
        glm::PODArray<float> _groupWeights; // if weights are empty all the children are selected

        WeightOverrideV0();
        ~WeightOverrideV0();

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

    /**
	* \brief Crowd Rendering Type
	*/
    struct GLM_CORE_API RenderingTypeV2
    {
        GLM_RTTI("f3944489-8ba7-49c5-aa4a-8795b59ea129", RenderingTypeV2, addAttributes)
    public:
        GLM_CLASS_STAT_ID( glm::MemoryStatIds::GolaemShared);

        /// The name of the rendering type
        glm::GlmString _name;
        glm::Array<WeightOverrideV0> _weightOverrides;

        RenderingTypeV2();
        ~RenderingTypeV2();

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