Example #1
0
mlFloat utLatticeMagnitude(const mlVector3D & line)
{
	mlVector2D distanceVector = line;

	distanceVector.x = mlFabs(distanceVector.x);
	distanceVector.y = mlFabs(distanceVector.y);

	mlFloat latticeDistance2D;

	if(distanceVector.x < distanceVector.y)
		latticeDistance2D = distanceVector.x * mlSqrtTwo + (distanceVector.y - distanceVector.x);
	else
		latticeDistance2D = distanceVector.y * mlSqrtTwo + (distanceVector.x - distanceVector.y);

	std::vector<mlFloat> dimensions;

	dimensions.push_back(mlFabs(line.x));
	dimensions.push_back(mlFabs(line.y));
	dimensions.push_back(mlFabs(line.z));

	std::sort(dimensions.begin(), dimensions.end());

	//mlFloat d0 = dimensions[0];
	//mlFloat d1 = dimensions[1];
	//mlFloat d2 = dimensions[2];

	mlFloat latticeDistance3D = 
		(dimensions[0] * mlSqrt(3.0f)) +
		((dimensions[1] - dimensions[0]) * mlSqrt(2.0f)) +
		(dimensions[2] - dimensions[1]);

	return latticeDistance3D;
}
Example #2
0
mlFloat		mlVector3D::Magnitude()	const				{ return mlSqrt(x * x + y * y + z * z); }
Example #3
0
mlFloat		mlVector2D::Magnitude()	const				{ return mlSqrt(x * x + y * y); }