use "lerp" instead of "to" in Vector.h

This commit is contained in:
hyzboy 2024-07-29 22:16:37 +08:00
parent 1a61053e33
commit 9c4624cccd

View File

@ -50,9 +50,9 @@ namespace hgl
{ {
switch(axis) switch(axis)
{ {
case AXIS::X:return Vector3f(1,0,0); case AXIS::X:return AxisVector::X;
case AXIS::Y:return Vector3f(0,1,0); case AXIS::Y:return AxisVector::Y;
case AXIS::Z:return Vector3f(0,0,1); case AXIS::Z:return AxisVector::Z;
} }
return Vector3f(0,0,0); return Vector3f(0,0,0);
@ -255,39 +255,25 @@ namespace hgl
return sqrt(length_squared_2d(v1, v2)); return sqrt(length_squared_2d(v1, v2));
} }
inline Vector2f to(const Vector2f &start, const Vector2f &end, float pos)
{
return Vector2f(start.x + (end.x - start.x)*pos,
start.y + (end.y - start.y)*pos);
}
inline Vector3f to(const Vector3f &start, const Vector3f &end, float pos)
{
return Vector3f(start.x + (end.x - start.x)*pos,
start.y + (end.y - start.y)*pos,
start.z + (end.z - start.z)*pos);
}
template<typename T> template<typename T>
inline void to_2d(T &result, const T &start, const T &end, float pos) inline T lerp(const T &from,const T &to,const float alpha)
{ {
result.x = start.x + (end.x - start.x)*pos; return from + (to - from) * alpha;
result.y = start.y + (end.y - start.y)*pos;
} }
inline bool is_nearly_equal(const float v1,const float v2,const float gap) inline bool is_nearly_equal(const float v1,const float v2,const float deviation=HGL_FLOAT_SMALL)
{ {
return fabsf(v1-v2)<=gap; return fabsf(v1-v2)<=HGL_FLOAT_SMALL;
} }
inline bool is_nearly_equal(const Vector2f &v1,const Vector2f &v2,const float gap) inline bool is_nearly_equal(const Vector2f &v1,const Vector2f &v2,const float deviation=HGL_FLOAT_SMALL)
{ {
return length_squared_2d(v1,v2)<=(gap*gap); return length_squared_2d(v1,v2)<=HGL_FLOAT_SMALL;
} }
inline bool is_nearly_equal(const Vector3f &v1,const Vector3f &v2,const float gap) inline bool is_nearly_equal(const Vector3f &v1,const Vector3f &v2,const float deviation=HGL_FLOAT_SMALL)
{ {
return length_squared(v1,v2)<=(gap*gap); return length_squared(v1,v2)<=HGL_FLOAT_SMALL;
} }
/** /**