# csMath2 Class Reference [Geometry utilities]

Various functions in 2D, such as 2D vector functions. More...

`#include <csgeom/math2d.h>`

List of all members.

## Static Public Member Functions

static float Area2 (const csVector2 &a, const csVector2 &b, const csVector2 &c)
Calculates 2 x the area of a given triangle.
static int InPoly2D (const csVector2 &v, csVector2 *P, int n, csBox2 *bounding_box)
Calculates whether a vector lies inside a given 2D polygon.
static float Left (const csVector2 &a, const csVector2 &b, const csVector2 &c)
Calculates whether a point lies to the left of a given line.
static bool PlanesClose (const csPlane2 &p1, const csPlane2 &p2)
Check if two planes are close together.
static bool PlanesEqual (const csPlane2 &p1, const csPlane2 &p2)
Check if two planes are almost equal.
static float Right (const csVector2 &a, const csVector2 &b, const csVector2 &c)
Calculates whether a point lies to the right of a given line.
static bool Visible (const csVector2 &p, const csPlane2 &pl)
Check if the plane is visible from the given point.
static int WhichSide2D (const csVector2 &v, const csSegment2 &s)
Calculates which side of a line a given point is on.
static int WhichSide2D (const csVector2 &v, const csVector2 &s1, const csVector2 &s2)
Calculates which side of a line a given point is on.

## Detailed Description

Various functions in 2D, such as 2D vector functions.

This is a static class and contains only static member functions.

Definition at line 44 of file math2d.h.

## Member Function Documentation

 static float csMath2::Area2 ( const csVector2 & a, const csVector2 & b, const csVector2 & c ) ` [inline, static]`

Calculates 2 x the area of a given triangle.

Returns:
twice the signed area of the triangle determined by a,b,c, positive if a,b,c are oriented ccw, and negative if cw.

Definition at line 90 of file math2d.h.

References csVector2::x, and csVector2::y.

 static int csMath2::InPoly2D ( const csVector2 & v, csVector2 * P, int n, csBox2 * bounding_box ) ` [static]`

Calculates whether a vector lies inside a given 2D polygon.

Returns:
CS_POLY_IN, CS_POLY_OUT, or CS_POLY_ON for this vector with respect to the given polygon. The polygon is given as an array of 2D vectors with a bounding box. WARNING: does no safety checking for P or bounding_box.

 static float csMath2::Left ( const csVector2 & a, const csVector2 & b, const csVector2 & c ) ` [inline, static]`

Calculates whether a point lies to the left of a given line.

Returns true iff c is strictly to the left of the directed line through a to b.

Definition at line 117 of file math2d.h.

 static bool csMath2::PlanesClose ( const csPlane2 & p1, const csPlane2 & p2 ) ` [static]`

Check if two planes are close together.

Two planes are close if there are almost equal OR if the normalized versions are almost equal.

 static bool csMath2::PlanesEqual ( const csPlane2 & p1, const csPlane2 & p2 ) ` [inline, static]`

Check if two planes are almost equal.

Returns:
true iff each component of the plane equation for one plane is within .001 of the corresponding component of the other plane.

Definition at line 138 of file math2d.h.

References ABS, csPlane2::CC, and csPlane2::norm.

 static float csMath2::Right ( const csVector2 & a, const csVector2 & b, const csVector2 & c ) ` [inline, static]`

Calculates whether a point lies to the right of a given line.

Returns:
true iff c is strictly to the right of the directed line through a to b.

Definition at line 105 of file math2d.h.

 static bool csMath2::Visible ( const csVector2 & p, const csPlane2 & pl ) ` [inline, static]`

Check if the plane is visible from the given point.

This function does a back-face culling test to see whether the front face of plane pl is visible from point p.

Definition at line 129 of file math2d.h.

References csPlane2::Classify().

 static int csMath2::WhichSide2D ( const csVector2 & v, const csSegment2 & s ) ` [inline, static]`

Calculates which side of a line a given point is on.

Returns:
-1 if point v is left of line segment 'seg' 1 if point v is right of segment 'seg' or 0 if point v lies on segment 'seg'.

Definition at line 69 of file math2d.h.

References csSegment2::End(), and csSegment2::Start().

 static int csMath2::WhichSide2D ( const csVector2 & v, const csVector2 & s1, const csVector2 & s2 ) ` [inline, static]`

Calculates which side of a line a given point is on.

Returns:
-1 if point v is left of line segment 's1-s2', 1 if point v is right of segment 's1-s2' or 0 if point v lies on segment 's1-s2'.

Definition at line 53 of file math2d.h.

References csVector2::x, and csVector2::y.

The documentation for this class was generated from the following file:

Generated for Crystal Space 1.0.2 by doxygen 1.4.7