Exemple #1
0
	static Matrix<double, 4, 4> _make_matrix(
		int x_axis,
		int y_axis,
		int z_axis
	)
	{
		typedef Vector<double, 3> V3d;
		V3d x = (x_axis<0) ? -V3d::Unit(-x_axis) : V3d::Unit(x_axis);
		V3d y = (y_axis<0) ? -V3d::Unit(-y_axis) : V3d::Unit(y_axis);
		V3d z = (z_axis<0) ? -V3d::Unit(-z_axis) : V3d::Unit(z_axis);

		return Matrix<double, 4, 4>(
			x.x(), x.y(), x.z(), 0,
			y.x(), y.y(), y.z(), 0,
			z.x(), z.y(), z.z(), 0,
			    0,     0,     0, 1
		);
	}