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

#pragma once

#include "glmPathDefinitions.h"

namespace glm
{
	/**
	* \brief Roadmap creation parameters.
	*
	* In most cases users shouldn't use directly this class, roadmap should be built along
	* a spatial environment using \ref PSSpatialEnvironmentCreator configured using
	* and \ref PSSpatialEnvironmentCreatorParameters instance.
	*
	* \ingroup Roadmap
	*
	* \author Golaem <dev@golaem.com>
	*/
	class GLM_SDK_API RoadmapCreatorParameters
	{
	public:

		GLM_CLASS_STAT_ID( glm::MemoryStatIds::Simulation);

		RoadmapCreatorParameters();
		~RoadmapCreatorParameters();

		/**
		* \name MinimumRadius
		* \brief Among agents that will use the generated navigation mesh, the minium of their radii.
		*/
		float _minimumRadius;

		/**
		* \name RoadmapNodePlacementPrecision
		* \brief The precision of the roadmap nodes placement (smaller value means longer computation and better roadmap), default is 0.1.
		*/
		float _roadmapNodePlacementPrecision;

		float _maximumRadius; // to optimize roadmap waypoints placement

		bool _use2DProjection;

		unsigned int _computationThreadsCount;
	};
}
