/*----------------------*/
/*这是保存公用函数的文件*/
/*----------------------*/

#ifndef UTILS_H
#define UTILS_H

#include "Defines.h"

//随机一个x~y之间的整数
inline int RandInt(int x,int y)
{
	return rand()%(y-x+1)+x;
}

//随机一个0~1之间的单精度小数
inline double RandFloat()
{
	return (rand())/(RAND_MAX+1.0);
}

//随机一个bool值
inline bool RandBool()
{
	if (RandInt(0,1))
		return true;
	else return false;
}

//随机一个-1~+1之间的单精度小数
inline double RandomClamped()
{
	return RandFloat() - RandFloat();
}

double Distance(DataType, DataType);
double EuclidDistance(DataType, DataType);
void Clamp(double &, double, double);

ostream& operator<<(ostream&, const vector<DataType>&);
ostream& operator<<(ostream&, const DataType&);
ifstream& operator>>(ifstream&, DataType&);

#endif
