struct LineSegment2D
{
LineSegment2D() {}
LineSegment2D(const Vec3f &_P0, const Vec3f &_D)
{
P0 = _P0;
D = _D;
}
float DistToPoint(const Vec3f &P) const;
float FindLineT(const Vec3f &WorldPos) const;
void Expand(float Dist);
__forceinline Vec3f Evaluate(float t) const
{
return (P0 + D * t);
}
__forceinline bool Valid() const
{
return (P0.x == P0.x && P0.y == P0.y && D.x == D.x && D.y == D.y);
}
static bool Intersect(const LineSegment2D &A, const LineSegment2D &B, Vec3f &Intersection);
Vec3f P0, D;
};