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

#pragma once

#include <glmCrowdIOAPI.h>
#include <glmMemory.h>
//#include <glmTypes.h>
//#include <glmMap.h>
#include <glmArray.h>
#include <glmString.h>
#include <glmVector3.h>
#include <glmQuaternion.h>

namespace glm
{
    namespace crowdio
    {
        class GLM_CROWDIO_API SimulationCacheInformation
        {

        public:
            SimulationCacheInformation();

            GlmString _cacheName;
            GlmString _itemName;

            GlmString _cacheDir;       // can stack several values ; separated
            GlmString _characterFiles; // can stack several values ; separated
            GlmString _crowdFields;    // can stack several values ; separated

            bool _enableLayout = false;
            GlmString _layoutFile;

            GlmString _srcTerrain;
            GlmString _destTerrain;

            int _startFrame = -1;
            int _endFrame = -1;

            int _nbEntities = -1;

            GlmString _imageBase64;

            // proxy transform, split because we can optimize cloth processing if only translate
            //Matrix4 _transform;
            Vector3 _scale = Vector3(1,1,1);
            Quaternion _rotate = Quaternion::getIdentity();
            Vector3 _translate = Vector3::getNullVector();
        };
    } // namespace crowdio
} // namespace glm