예제 #1
0
void float4::Orthonormalize(float4 &a, float4 &b)
{
	assume(!a.IsZero());
	assume(!b.IsZero());
	a.Normalize();
	b -= b.ProjectToNorm(a);
	b.Normalize();
}
예제 #2
0
float4 float4::ProjectTo(const float4 &target) const
{
	assume(!target.IsZero());
	assume(this->IsWZeroOrOne());
	return target * (this->Dot(target) / target.LengthSq());
}