CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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>
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>
csSmoothStep (const T &a, T max, T min)
 Preforms a smooth interpolation of a on range min to max.
template<class 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

#define CS_BOUNDINGBOX_MAXVALUE   1000000000.
 

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().

#define MAX_OUTPUT_VERTICES   64
 

Maximal number of vertices in output (clipped) polygons.

Definition at line 35 of file clip2d.h.


Typedef Documentation

typedef void(* csAAPFCBBox)(int x, int y, int w, int h, void *arg)
 

"Draw a box" callback

Definition at line 45 of file polyaa.h.

typedef void(* csAAPFCBPixel)(int x, int y, float area, void *arg)
 

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

Definition at line 43 of file polyaa.h.

typedef csVector2 csPoint
 

A 2D point object Deprecated! Use csVector2 instead.

Definition at line 45 of file cspoint.h.


Enumeration Type Documentation

anonymous enum
 

Constants for axes.

Can also be used as indices to csVector2::operator[], csVector3::operator[] and csVector4::operator[] for more readability.

Enumerator:
CS_AXIS_NONE  Invalid axis.
CS_AXIS_X  X axis.
CS_AXIS_Y  Y axis.
CS_AXIS_Z  Z axis.
CS_AXIS_W  W axis.

Definition at line 38 of file vector3.h.


Function Documentation

void BuildSqrtTable  ) 
 

declare table of square roots

Definition at line 40 of file fastsqrt.h.

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.

Then the area of each subpolygon is computed and a callback function is called, with the area of sub-polygon passed as argument.

template<class T>
T csClamp const T &  a,
max,
min
 

Clamp a between max and min.

Definition at line 53 of file math.h.

References csMax(), and csMin().

template<class T>
const T& csMax const T &  a,
const T &  b
 

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()().

template<class T>
const T& csMin const T &  a,
const T &  b
 

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().

template<class T>
T csSmoothStep const T &  a,
max,
min
 

Preforms a smooth interpolation of a on range min to max.

Returns:
Smooth interporlated value if min < a < max, and 0 resp. 1 if a is smaller than min resp. larger than max.

Definition at line 64 of file math.h.

Referenced by csSpotLightProc< AttenuationProc >::ProcessVertex().

template<class T>
T csSquare const T &  x  ) 
 

Returns the square of the argument.

Definition at line 83 of file math.h.

float FastSqrt float  n  ) 
 

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