Geometry utilities
Classes | |
class | csBoxClipper |
The csBoxClipper class is able to clip convex polygons to a rectangle (such as the screen). More... | |
class | csBSpline |
A B-spline. More... | |
class | csCatmullRomSpline |
A CatmullRom spline. More... | |
class | csClipper |
The csClipper class is an abstract parent to all 2D clipping objects. More... | |
struct | csCompressVertex |
This structure is used by csVector3Array::CompressVertices(). More... | |
class | csCubicSpline |
A cubic spline. More... | |
class | csDIntersect3 |
Some functions to perform various intersection calculations with 3D line segments. More... | |
class | csDMath3 |
Various assorted 3D mathematical functions. More... | |
class | csDMatrix3 |
A 3x3 matrix. More... | |
class | csDPlane |
A plane in 3D space. More... | |
class | csDSquaredDist |
Some functions to perform squared distance calculations. More... | |
class | csDVector3 |
A 3D vector. More... | |
class | csDVector4 |
A 4D vector with "double" components. More... | |
class | csEllipsoid |
This class represents an ellipsoid. More... | |
class | csGeomDebugHelper |
This is a class that does unit testing (and other debug stuff) for most of csgeom classes. More... | |
class | csIntersect2 |
Some functions to perform various intersection calculations with 2D line segments. More... | |
class | csIntersect3 |
Some functions to perform various intersection calculations with 3D line segments. More... | |
class | csMath2 |
Various functions in 2D, such as 2D vector functions. More... | |
class | csMath3 |
Various assorted 3D mathematical functions. More... | |
class | csMatrix2 |
A 2x2 matrix. More... | |
class | csMatrix3 |
A 3x3 matrix. More... | |
class | csOBB |
Oriented bounding box (OBB). More... | |
class | csOBBFrozen |
Version of the csOBB with frozen corners (for optimization purposes). More... | |
class | csObjectModel |
Helper class to make it easier to implement iObjectModel in mesh objects. More... | |
class | csOrthoTransform |
A class which defines a reversible transformation from one coordinate system to another by maintaining an inverse transformation matrix. More... | |
class | csPath |
A path in 3D. More... | |
class | csPlane2 |
A plane in 2D space. More... | |
class | csPlane3 |
A plane in 3D space. More... | |
class | csPoly2D |
The following class represents a general 2D polygon. More... | |
class | csPoly2DEdges |
The following class represents a general 2D polygon represented with edges instead of vertices. More... | |
class | csPoly2DEdgesPool |
This is an object pool which holds objects of type csPoly2DEdges. More... | |
class | csPoly2DFactory |
This factory is responsible for creating csPoly2D objects or subclasses of csPoly2D. More... | |
class | csPoly2DPool |
This is an object pool which holds objects of type csPoly2D. More... | |
class | csPoly3D |
The following class represents a general 3D polygon. More... | |
class | csPolygonClipper |
The csPolygonClipper class can be used for clipping any polygon against any other convex polygon. More... | |
class | csPolygonMesh |
A convenience polygon mesh implementation that you can feed with vertices and polygons from another source. More... | |
class | csPolygonMeshBox |
A convenience polygon mesh implementation that represents a cube. More... | |
struct | csPolygonMeshEdge |
A definition of one edge. More... | |
class | csPolygonMeshTools |
A set of tools to work with iPolygonMesh instances. More... | |
class | csPolyIndexed |
The following class represents a general polygon. More... | |
class | csQuaternion |
Class for a quaternion. More... | |
class | csRect |
Rectangle class: simple class for manipulating 2D rectangles. More... | |
class | csRectRegion |
A rect region is a class that implements splittable 2d rectangles. More... | |
class | csReversibleTransform |
A class which defines a reversible transformation from one coordinate system to another by maintaining an inverse transformation matrix. More... | |
class | csSegment2 |
A 2D line segment. More... | |
class | csSegment3 |
A 3D line segment. More... | |
class | csSphere |
This class represents a sphere. More... | |
class | csSpline |
A spline superclass. More... | |
class | csSquaredDist |
Some functions to perform squared distance calculations. More... | |
class | csSubRectangles |
A class managing allocations of sub-rectangles. More... | |
class | csTextureTrans |
This is a static class which encapsulates a few functions that can transform texture information into a texture matrix/vector. More... | |
class | csTransform |
A class which defines a transformation from one coordinate system to another. More... | |
struct | csTriangle |
A triangle. More... | |
struct | csTriangleMinMax |
A triangle with minimum/maximum information on x. More... | |
class | csVector2 |
A 2D vector. More... | |
class | csVector3 |
A 3D vector. More... | |
class | csVector3Array |
This is actually the same class as csPoly3D. More... | |
class | csVector4 |
A 4D vector with "float" components. More... | |
class | csXRotMatrix3 |
An instance of csMatrix3 that is initialized as a rotation about X. More... | |
class | csXScaleMatrix3 |
An instance of csMatrix3 that is initialized to scale the X dimension. More... | |
class | csYRotMatrix3 |
An instance of csMatrix3 that is initialized as a rotation about Y. More... | |
class | csYScaleMatrix3 |
An instance of csMatrix3 that is initialized to scale the Y dimension. More... | |
class | csZRotMatrix3 |
An instance of csMatrix3 that is initialized as a rotation about Z. More... | |
class | csZScaleMatrix3 |
An instance of csMatrix3 that is initialized to scale the Z dimension. More... | |
struct | iObjectModel |
This interface represents data related to some geometry in object space. More... | |
struct | iObjectModelListener |
Implement this class if you're interested in hearing about when the object model changes. More... | |
struct | iPath |
A path in 3D. More... | |
Defines | |
#define | ABS(x) ((x)<0?-(x):(x)) |
#define | CS_BOUNDINGBOX_MAXVALUE 1000000000. |
The maximum value that a coordinate in the bounding box can use. | |
#define | MAX_OUTPUT_VERTICES 64 |
Maximal number of vertices in output (clipped) polygons. | |
Typedefs | |
typedef void(* | csAAPFCBBox )(int x, int y, int w, int h, void *arg) |
"Draw a box" callback | |
typedef void(* | csAAPFCBPixel )(int x, int y, float area, void *arg) |
"Draw one pixel" callback | |
typedef csVector2 | csPoint |
A 2D point object Deprecated! Use csVector2 instead. | |
typedef csSubRectangles::SubRect | csSubRect |
Enumerations | |
enum | { CS_AXIS_NONE = -1, CS_AXIS_X = 0, CS_AXIS_Y = 1, CS_AXIS_Z = 2, CS_AXIS_W = 3 } |
Constants for axes. More... | |
enum | |
enum | |
Functions | |
void | BuildSqrtTable () |
declare table of square roots | |
void | csAntialiasedPolyFill (csVector2 *iVertices, int iVertexCount, void *iArg, csAAPFCBPixel iPutPixel, csAAPFCBBox iDrawBox=0) |
This function takes a 2D polygon and splits it against a integer grid into many sub-polygons. | |
template<class T> | |
T | csClamp (const T &a, T max, T min) |
Clamp a between max and min. | |
template<class T> | |
const T & | csMax (const T &a, const T &b) |
Returns bigger of a and b. | |
template<class T> | |
const T & | csMin (const T &a, const T &b) |
Returns smaller of a and b. | |
template<class T> | |
T | csSmoothStep (const T &a, T max, T min) |
Preforms a smooth interpolation of a on range min to max. | |
template<class T> | |
T | csSquare (const T &x) |
Returns the square of the argument. | |
double | dSqr (double d) |
float | FastSqrt (float n) |
fast square root, looks up table build by BuildSqrtTable(). | |
Variables | |
const int | FRAGMENT_BUFFER_SIZE = 64 |
Define Documentation
|
The maximum value that a coordinate in the bounding box can use. This is considered the 'infinity' value used for empty bounding boxes. Definition at line 48 of file box.h. Referenced by csBox3::StartBoundingBox(), and csBox2::StartBoundingBox(). |
|
Maximal number of vertices in output (clipped) polygons.
|
Typedef Documentation
|
"Draw a box" callback
|
|
"Draw one pixel" callback We have two types of callback: one for "drawing a pixel", the area of the pixel is passed to the callback routine. The second routine is for "drawing a box", the area of every "pixel" is always 1.0. |
|
A 2D point object Deprecated! Use csVector2 instead.
|
Enumeration Type Documentation
|
Constants for axes. Can also be used as indices to csVector2::operator[], csVector3::operator[] and csVector4::operator[] for more readability. |
Function Documentation
|
declare table of square roots
Definition at line 40 of file fastsqrt.h. |
|
This function takes a 2D polygon and splits it against a integer grid into many sub-polygons. Then the area of each subpolygon is computed and a callback function is called, with the area of sub-polygon passed as argument. |
|
Clamp a between max and min.
|
|
Returns bigger of a and b. If they are equal, a or b can be returned. Definition at line 32 of file math.h. Referenced by csClamp(), and csLinearAttenuation::operator()(). |
|
Returns smaller of a and b. If they are equal, a or b can be returned. Definition at line 42 of file math.h. Referenced by csClamp(), and csFmtDefaultWriter< T >::Put(). |
|
Preforms a smooth interpolation of a on range min to max.
Definition at line 64 of file math.h. Referenced by csSpotLightProc< AttenuationProc >::ProcessVertex(). |
|
Returns the square of the argument.
|
|
fast square root, looks up table build by BuildSqrtTable().
Definition at line 43 of file fastsqrt.h. |
Generated for Crystal Space by doxygen 1.4.4