I give up on Normalization
Compiler was complaining about casting between Vector4 and Matrix<4,1> so I just did the division by hand. I bet operator* and operator/ are broken for Vector4s as well...
This commit is contained in:
parent
32292a45fa
commit
cf57dfc51a
1 changed files with 19 additions and 2 deletions
|
@ -64,7 +64,7 @@ Vector4::Z()
|
|||
|
||||
|
||||
/*
|
||||
* charles::basics::Vector4::length2 --
|
||||
* charles::basics::Vector4::Length2 --
|
||||
*/
|
||||
Double
|
||||
Vector4::Length2()
|
||||
|
@ -74,6 +74,9 @@ Vector4::Length2()
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* charles::basics::Vector4::Length --
|
||||
*/
|
||||
Double
|
||||
Vector4::Length()
|
||||
const
|
||||
|
@ -82,6 +85,9 @@ Vector4::Length()
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* charles::basics::Vector4::Dot --
|
||||
*/
|
||||
Double
|
||||
Vector4::Dot(const Vector4& rhs)
|
||||
const
|
||||
|
@ -90,6 +96,9 @@ Vector4::Dot(const Vector4& rhs)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* charles::basics::Vector4::Cross --
|
||||
*/
|
||||
Vector4
|
||||
Vector4::Cross(const Vector4& rhs)
|
||||
const
|
||||
|
@ -100,10 +109,18 @@ Vector4::Cross(const Vector4& rhs)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* charles::basics::Vector4::Normalize --
|
||||
*/
|
||||
Vector4&
|
||||
Vector4::Normalize()
|
||||
{
|
||||
return *this /= Length();
|
||||
/* XXX: Is there some way to do this with the Matrix<>::operator/? */
|
||||
const Double len = Length();
|
||||
X() = X() / len;
|
||||
Y() = Y() / len;
|
||||
Z() = Z() / len;
|
||||
return *this;
|
||||
}
|
||||
|
||||
} /* namespace basics */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue