Example #1
0
void normalise(int* res)
{
	// Rebase day and month numbers on 0
	--res[1];
	--res[2];
	//cerr << "TOZERO " << tostringall(res) << endl;

	// Normalise seconds
	normalN(res[5], res[4], 60);
	//cerr << "ADJSEC " << tostringall(res) << endl;

	// Normalise minutes
	normalN(res[4], res[3], 60);
	//cerr << "ADJMIN " << tostringall(res) << endl;

	// Normalise hours
	normalN(res[3], res[2], 24);
	//cerr << "ADJHOUR " << tostringall(res) << endl;

	// Normalise days
	while (res[2] < 0)
	{
		--res[1];
		normalN(res[1], res[0], 12);
		res[2] += daysinmonth(res[0], res[1]+1);
	}
	//cerr << "ADJDAY1 " << tostringall(res) << endl;
	while (true)
	{
		normalN(res[1], res[0], 12);
		int dim = daysinmonth(res[0], res[1]+1);
		if (res[2] < dim) break;
		res[2] -= dim;
		++res[1];
	}
	//cerr << "ADJDAY2 " << tostringall(res) << endl;

	// Normalise months
	normalN(res[1], res[0], 12);
	//cerr << "ADJMONYEAR " << tostringall(res) << endl;

	++res[1];
	++res[2];
	//cerr << "FROMZERO " << tostringall(res) << endl;
}
Example #2
0
	Obstacle::Obstacle(const Vector2& point1, const Vector2& point2)
	: normal_(normalN(point1, point2)),
	  point1_(point1),
	  point2_(point2)
	{
	}