25 const int Vec2Impl::NUM_OF_COMPONENTS = 2;
52 Vec2Impl::value_type Vec2Impl::Length()
const 59 Vec2Impl::value_type Vec2Impl::Length2()
const 65 Vec2Impl::value_type Vec2Impl::Normalize()
78 Vec2Impl::value_type& Vec2Impl::X()
84 Vec2Impl::value_type& Vec2Impl::Y()
90 Vec2Impl::value_type Vec2Impl::X()
const 96 Vec2Impl::value_type Vec2Impl::Y()
const 110 mVec._v[0] = trUtil::Math::Lerp<value_type>(
mVec._v[0], to.X(), alpha);
111 mVec._v[1] = trUtil::Math::Lerp<value_type>(
mVec._v[1], to.Y(), alpha);
117 return Vec2Impl(trUtil::Math::Lerp<value_type>(from.X(), to.X(), alpha), trUtil::Math::Lerp<value_type>(from.Y(), to.Y(), alpha));
123 return std::string(
"<" + trUtil::StringUtils::ToString<value_type>(
mVec._v[0], precision) +
", " + trUtil::StringUtils::ToString<value_type>(
mVec._v[1], precision) +
">");
127 Vec2Impl::value_type* Vec2Impl::Ptr()
133 const Vec2Impl::value_type* Vec2Impl::Ptr()
const 139 Vec2Impl::value_type& Vec2Impl::operator [] (
int i)
145 Vec2Impl::value_type Vec2Impl::operator [] (
int i)
const 151 void Vec2Impl::operator = (
const Vec2Impl& v)
153 mVec._v[0] = v[0];
mVec._v[1] = v[1];
159 mVec._v[0] = v[0];
mVec._v[1] = v[1];
165 return mVec._v[0] == v[0] &&
mVec._v[1] == v[1];
171 return mVec._v[0] != v[0] ||
mVec._v[1] != v[1];
175 bool Vec2Impl::operator < (
const Vec2Impl& v)
const 177 if (
mVec._v[0] < v[0])
return true;
178 else if (
mVec._v[0] > v[0])
return false;
179 else return (
mVec._v[1] < v[1]);
183 bool Vec2Impl::operator > (
const Vec2Impl& v)
const 185 if (
mVec._v[0] > v[0])
return true;
186 else if (
mVec._v[0] < v[0])
return false;
187 else return (
mVec._v[1] > v[1]);
191 Vec2Impl::value_type Vec2Impl::operator * (
const Vec2Impl& rhs)
const 193 return mVec._v[0] * rhs[0] +
mVec._v[1] * rhs[1];
197 const Vec2Impl Vec2Impl::operator * (Vec2Impl::value_type rhs)
const 203 Vec2Impl& Vec2Impl::operator *= (Vec2Impl::value_type rhs)
211 const Vec2Impl Vec2Impl::operator / (Vec2Impl::value_type rhs)
const 217 Vec2Impl& Vec2Impl::operator /= (Vec2Impl::value_type rhs)
233 mVec._v[0] += rhs[0];
234 mVec._v[1] += rhs[1];
247 mVec._v[0] -= rhs[0];
248 mVec._v[1] -= rhs[1];
253 const Vec2Impl Vec2Impl::operator - ()
const 285 ios <<
"<" << vec.X() <<
", " << vec.Y() <<
">";
292 return Vec2Impl(lhs[0] * rhs[0], lhs[1] * rhs[1]);
298 return Vec2Impl(lhs[0] / rhs[0], lhs[1] / rhs[1]);
std::string operator+(const std::string &s1, const RefStr &s2)
bool operator==(const std::string &s1, const RefStr &s2)
bool operator!=(const std::string &s1, const RefStr &s2)
TR_BASE_EXPORT std::ostream & operator<<(std::ostream &ios, const Matrixd &q)
Stream insertion operator.
std::string ToString(const T &t, int precision=-1)
A utility function to convert a basic type into a string.
TR_BASE_EXPORT Vec2b ComponentDivide(const Vec2b &lhs, const Vec2b &rhs)
Divide rhs components by rhs vector components.
TR_BASE_EXPORT Vec2b ComponentMultiply(const Vec2b &lhs, const Vec2b &rhs)
Multiply individual vector components.
T Lerp(T from, T to, T alpha)
Linear Interpolation function.
int value_type
Data type of vector components.