====== 2D Geometry in Impulse Physics ====== Currently, there is support for: * Circle * Point (a typedef of [[2D Vector]]) * Line * Rectangle * Oriented Rectangle ===== Line ===== A line consists of a ''start'' and ''end'' variable, each are Point2D instances. For convienence, the following functions are present: * ''Length()'' * ''LengthFast()'', which returns the distance without performing the final, expensive sqrtf function. ===== Circle ===== A 2D circle consists of a ''radius'' and a ''origin'' (Point2D). It has no other special features in it's own class. ===== Rectangle ===== A 2D rectangle consists of an ''origin'', (Point2D) and a ''size'' (Vector2). A helper constructor is also given, named ''InitializeWithMinAndMax'' which takes 2 Point2D variables and will initialize the Rectangle for you. Additionally, this class also has the following helper functions: * ''GetMin()'' * ''GetMax()'' ===== Oriented Rectangle ===== Unlike the regular 2D Rectangle, an oriented Rectangle can be, as the name suggests, rotated. As such, it is constructed with it's ''position'' (Point2D) and ''halfExtents'' (Vector2). If you wish, you are also capable of immediately constructing it with rotation, by giving the same variables as above, but with an additional ''rotation'' variable (float).