T1 extends ShapeComponent, T2 extends ShapeComponent>
- An infinite line on the 2D Cartesian space, represented in the form of ax + by = c.
- A LineSegment represent a segment of an infinitely long line, it is the segment between the from and to vectors (inclusive).
- A ray in the 2d plane.
- A shape can represent any geometrical shape with optionally a size, position and angle. It can also have an anchor if it shouldn't be rotated around its center. A point can be determined to be within of outside of a shape.