Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

csMath2 Class Reference

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

#include <math2d.h>

List of all members.

Static Public Methods

int WhichSide2D (const csVector2 &v, const csVector2 &s1, const csVector2 &s2)
 Calculates which side of a line a given point is on. More...

int WhichSide2D (const csVector2 &v, const csSegment2 &s)
 Calculates which side of a line a given point is on. More...

int InPoly2D (const csVector2 &v, csVector2 *P, int n, csBox2 *bounding_box)
 Calculates whether a vector lies inside a given 2D polygon. More...

float Area2 (const csVector2 &a, const csVector2 &b, const csVector2 &c)
 Calculates 2 x the area of a given triangle. More...

float Right (const csVector2 &a, const csVector2 &b, const csVector2 &c)
 Calculates whether a point lies to the right of a given line. More...

float Left (const csVector2 &a, const csVector2 &b, const csVector2 &c)
 Calculates whether a point lies to the left of a given line. More...

bool Visible (const csVector2 &p, const csPlane2 &pl)
 Check if the plane is visible from the given point. More...

bool PlanesEqual (const csPlane2 &p1, const csPlane2 &p2)
 Check if two planes are almost equal. More...

bool PlanesClose (const csPlane2 &p1, const csPlane2 &p2)
 Check if two planes are close together. More...


Detailed Description

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

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


Member Function Documentation

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.

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

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

Return 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.

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.

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.

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

Check if two planes are almost equal.

The function returns true iff each component of the plane equation for one plane is within .001 of the corresponding component of the other plane.

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.

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.

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'.

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'.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000