CrystalSpace

Public API Reference

Mesh plugins
[Mesh support]


Classes

struct  csParticle
 Data representation of a single particle. More...
struct  csParticleAux
 Auxiliary data per particle, not used as often. More...
struct  csParticleBuffer
 Buffer holder for particle buffers. More...
struct  csPolygonRange
 A range structure for specifing polygon ranges. More...
struct  csSprite2DVertex
 A single 2D Sprite vertex. More...
struct  csSpriteCal3DActiveAnim
struct  iAnimTimeUpdateHandler
 By default, csSpriteCal3DMeshObject::Advance() updates the model's via CalModel::update() with the elapsed time since the last advancement. More...
struct  iBezierFactoryState
 This is the state interface to access the internals of a bezier mesh factory. More...
struct  iBezierState
 This is the state interface to access the internals of a bezier mesh object. More...
struct  iColoredVertices
struct  iCurve
 This is the interface for a curve. More...
struct  iGeneralFactoryState
 This interface describes the API for the general mesh factory. More...
struct  iGeneralMeshCommonState
 The common interface between genmesh meshes and factories. More...
struct  iGeneralMeshState
 This interface describes the API for the general mesh object. More...
struct  iGeneralMeshSubMesh
struct  iGenMeshAnimationControl
 Implementing this class allows the creation of classes that control animation of vertex, texel, normal, and color data right before it is being used. More...
struct  iGenMeshAnimationControlFactory
 This class is a factory for creating animation controls. More...
struct  iGenMeshAnimationControlState
 This interface describes the API for setting up the animation control as implemented by the 'gmeshanim' plugin. More...
struct  iGenMeshAnimationControlType
 This class is the animation control type. More...
struct  iGenMeshSkeletonControlState
 This interface describes the API for setting up the skeleton animation control as implemented by the 'gmeshskelanim' plugin. More...
struct  iHazeFactoryState
 This interface describes the API for the sprite factory mesh object. More...
struct  iHazeHull
 A mesh specially meant for use by the haze. More...
struct  iHazeHullBox
 A predefined hull. More...
struct  iHazeHullCone
 A predefined hull. More...
struct  iHazeHullCreation
 This interface is implemented by the haze factory in order to be able to create the predefined haze hulls. More...
struct  iHazeState
 This interface describes the API for the sprite factory mesh object. More...
struct  iInstancingFactoryState
 This interface describes the API for the instancing mesh factory. More...
struct  iInstancingMeshCommonState
 The common interface between instancing meshes and factories. More...
struct  iInstancingMeshState
 This interface describes the API for the instancing mesh object. More...
struct  iLightingInfo
 This interface is implemented by mesh objects that have some kind of lighting system. More...
struct  iLightningFactoryState
struct  iLightningState
struct  iMeshObject
 This is a general mesh object that the engine can interact with. More...
struct  iMeshObjectDrawCallback
 Set a callback which is called just before the object is drawn. More...
struct  iMeshObjectDrawCallback
 Set a callback which is called just before the object is drawn. More...
struct  iMeshObjectFactory
 This object is a factory which can generate mesh objects of a certain type. More...
struct  iMeshObjectType
 This plugin describes a specific type of mesh objects. More...
struct  iNullFactoryState
 This interface describes the API for the null mesh object factory. More...
struct  iNullFactoryState
 This interface describes the API for the null mesh object factory. More...
struct  iNullMeshState
 This interface describes the API for the null mesh object. More...
struct  iNullMeshState
 This interface describes the API for the null mesh object. More...
struct  iParticle
 A iParticle can be used in particle Systems. More...
struct  iParticleBuiltinEffectorFactory
 Factory for builtin effectors. More...
struct  iParticleBuiltinEffectorForce
 Simple force/acceleration applied to particles. More...
struct  iParticleBuiltinEffectorLinColor
 Simple linear interpolation of particle color based on particle lifetime. More...
struct  iParticleBuiltinEffectorVelocityField
 Velocity field effector. More...
struct  iParticleBuiltinEmitterBase
struct  iParticleBuiltinEmitterBox
struct  iParticleBuiltinEmitterCone
struct  iParticleBuiltinEmitterCylinder
struct  iParticleBuiltinEmitterFactory
 Factory for builtin emitter-types. More...
struct  iParticleBuiltinEmitterSphere
struct  iParticleEffector
 Base interface for particle effector. More...
struct  iParticleEmitter
 A particle emitter. More...
struct  iParticleState
 This interface describes the API for the particle mesh object. More...
struct  iParticleSystem
 Properties for particle system object. More...
struct  iParticleSystemBase
 Base properties for particle system. More...
struct  iParticleSystemFactory
 Properties for particle system factory. More...
struct  iPolygonHandle
 This is an interface that can be used to represent a polygon in situations where a SCF object is required. More...
struct  iProtoFactoryState
 The proto mesh is a demonstration or tutorial mesh. More...
struct  iProtoMeshState
 This interface describes the API for the proto mesh object. More...
struct  iSprite2DFactoryState
 This interface describes the API for the sprite factory mesh object. More...
struct  iSprite2DState
 This interface describes the API for the sprite factory mesh object. More...
struct  iSprite2DUVAnimation
 The animation works by having all frames of an animation sequence in a texture at different (u,v) locations, hence the name. More...
struct  iSprite2DUVAnimationFrame
 This is a single frame in a UV animation. More...
struct  iSprite3DFactoryState
 This interface describes the API for the 3D sprite factory mesh object. More...
struct  iSprite3DState
 This interface describes the API for the 3D sprite mesh object. More...
struct  iSpriteAction
 An action frameset for 3D sprite animation. More...
struct  iSpriteCal3DFactoryState
 This interface describes the API for the 3D sprite factory mesh object. More...
struct  iSpriteCal3DSocket
 A socket for specifying where sprites can plug into other sprites. More...
struct  iSpriteCal3DState
 This interface describes the API for changing the Cal3D sprite mesh object's animations playing and other current traits. More...
struct  iSpriteFrame
 A frame for 3D sprite animation. More...
struct  iSpriteSocket
 A socket for specifying where sprites can plug into other sprites. More...
struct  iTerrainFactoryState
 Allows the setting of a set of generic terrain parameters outside any specific algorithm. More...
struct  iTerrainObjectState
 This will override the settings for material in the parent. More...
struct  iThingEnvironment
 This interface is implemented by the iObjectType for things. More...
struct  iThingFactoryState
 This is the state interface to access the internals of a thing mesh factory. More...
struct  iThingState
 This is the state interface to access the internals of a thing mesh object. More...

Mesh factory flags

#define CS_FACTORY_STATICSHAPE   2
 If CS_FACTORY_STATICSHAPE is set then this factory will never animate.

Mesh object flags

#define CS_MESH_STATICPOS   1
 If CS_MESH_STATICPOS is set then this mesh will never move.
#define CS_MESH_STATICSHAPE   2
 If CS_MESH_STATICSHAPE is set then this mesh will never animate.

Polygon flags

#define CS_POLY_COLLDET   0x00000002
 If this flag is set then this polygon is used for collision detection.
#define CS_POLY_LIGHTING   0x00000001
 If CS_POLY_LIGHTING is set for a polygon then the polygon will be lit.
#define CS_POLY_VISCULL   0x00000004
 If this flag is set then this polygon is used for visibility culling.

Polygon ranges

#define CS_POLYRANGE(s1, s2)   csPolygonRange (s1, s2)
 A general range of polygons (inclusive).
#define CS_POLYRANGE_ALL   csPolygonRange (0, 2000000000)
 All polygons.
#define CS_POLYRANGE_LAST   csPolygonRange (-1, -1)
 The last created polygon or series of polygons (in case it was a box).
#define CS_POLYRANGE_SINGLE(idx)   csPolygonRange (idx, idx)
 A single polygon.

Move option flags

#define CS_THING_MOVE_NEVER   0
 The following flags affect movement options for a thing.
#define CS_THING_MOVE_OCCASIONAL   2
 The following flags affect movement options for a thing.

Thing flags

#define CS_THING_NOCOMPRESS   0x00010000
 If CS_THING_NOCOMPRESS is set then vertices of this thing factory will not be compressed.

Default particle system effectors

enum  csParticleBuiltinEffectorVFType { CS_PARTICLE_BUILTIN_SPIRAL, CS_PARTICLE_BUILTIN_RADIALPOINT }
 Velocity field effector types Determine the ODE the velocity field effector will solve to get new particle positions from current ones. More...

Default particle system emitters

enum  csParticleBuiltinEmitterPlacement { CS_PARTICLE_BUILTIN_CENTER, CS_PARTICLE_BUILTIN_VOLUME, CS_PARTICLE_BUILTIN_SURFACE }
 Set where in the emitter the builtin emitters should spawn their particles. More...

Particle systems

enum  csParticleIntegrationMode { CS_PARTICLE_INTEGRATE_NONE, CS_PARTICLE_INTEGRATE_LINEAR, CS_PARTICLE_INTEGRATE_BOTH }
 Particle integration mode. More...
enum  csParticleRenderOrientation {
  CS_PARTICLE_CAMERAFACE, CS_PARTICLE_CAMERAFACE_APPROX, CS_PARTICLE_ORIENT_COMMON, CS_PARTICLE_ORIENT_COMMON_APPROX,
  CS_PARTICLE_ORIENT_VELOCITY, CS_PARTICLE_ORIENT_SELF, CS_PARTICLE_ORIENT_SELF_FORWARD
}
 Particle orientation. More...
enum  csParticleRotationMode { CS_PARTICLE_ROTATE_NONE, CS_PARTICLE_ROTATE_TEXCOORD, CS_PARTICLE_ROTATE_VERTICES }
 Rotation mode. More...
enum  csParticleSortMode { CS_PARTICLE_SORT_NONE, CS_PARTICLE_SORT_DISTANCE, CS_PARTICLE_SORT_DOT }
 Sorting modes for particle renderer. More...
enum  csParticleTransformMode { CS_PARTICLE_LOCAL_MODE, CS_PARTICLE_LOCAL_EMITTER, CS_PARTICLE_WORLD_MODE }
 Particle transformation mode. More...

Defines

#define CS_POLYINDEX_LAST   -1
 Last created polygon index (used where a single polygon index is required).
#define CS_SPR_LIGHT_GLOBAL   0
 Use the global value for determining which lighting level is used by the sprite.
#define CS_SPR_LIGHT_LOCAL   2
 Use the lighting quality value local to the sprite for determining which lighting level is used by the sprite.
#define CS_SPR_LIGHT_TEMPLATE   1
 Use the sprites template lighting quality value for determining which lighting level is used by the sprite.
#define CS_SPR_LOD_GLOBAL   0
 Use the global value for determining if LOD is used by the sprite, and what level it should be used at.
#define CS_SPR_LOD_LOCAL   2
 Use the LOD value local to the sprite.
#define CS_SPR_LOD_TEMPLATE   1
 Use the sprites template lod value.

Enumerations

enum  
 Macros for the csSprite3D lighting levels. More...

Define Documentation

#define CS_FACTORY_STATICSHAPE   2

If CS_FACTORY_STATICSHAPE is set then this factory will never animate.

This is a hint for the engine. The mesh factory itself can also use this flag to optimize internal data structures.

Definition at line 75 of file object.h.

#define CS_MESH_STATICPOS   1

If CS_MESH_STATICPOS is set then this mesh will never move.

This is a hint for the engine. The mesh object itself can also use this flag to optimize internal data structures.

Definition at line 58 of file object.h.

#define CS_MESH_STATICSHAPE   2

If CS_MESH_STATICSHAPE is set then this mesh will never animate.

This is a hint for the engine. The mesh object itself can also use this flag to optimize internal data structures.

Definition at line 65 of file object.h.

#define CS_POLY_COLLDET   0x00000002

If this flag is set then this polygon is used for collision detection.

Definition at line 80 of file thing.h.

#define CS_POLY_LIGHTING   0x00000001

If CS_POLY_LIGHTING is set for a polygon then the polygon will be lit.

It is set by default.

Definition at line 75 of file thing.h.

#define CS_POLY_VISCULL   0x00000004

If this flag is set then this polygon is used for visibility culling.

Definition at line 85 of file thing.h.

#define CS_POLYINDEX_LAST   -1

Last created polygon index (used where a single polygon index is required).

Definition at line 112 of file thing.h.

#define CS_POLYRANGE ( s1,
s2   )     csPolygonRange (s1, s2)

A general range of polygons (inclusive).

Definition at line 94 of file thing.h.

#define CS_POLYRANGE_ALL   csPolygonRange (0, 2000000000)

All polygons.

Definition at line 106 of file thing.h.

#define CS_POLYRANGE_LAST   csPolygonRange (-1, -1)

The last created polygon or series of polygons (in case it was a box).

Definition at line 102 of file thing.h.

#define CS_POLYRANGE_SINGLE ( idx   )     csPolygonRange (idx, idx)

A single polygon.

Definition at line 98 of file thing.h.

#define CS_SPR_LIGHT_GLOBAL   0

Use the global value for determining which lighting level is used by the sprite.

Definition at line 57 of file sprite3d.h.

#define CS_SPR_LIGHT_LOCAL   2

Use the lighting quality value local to the sprite for determining which lighting level is used by the sprite.

Definition at line 69 of file sprite3d.h.

#define CS_SPR_LIGHT_TEMPLATE   1

Use the sprites template lighting quality value for determining which lighting level is used by the sprite.

Definition at line 63 of file sprite3d.h.

#define CS_SPR_LOD_GLOBAL   0

Use the global value for determining if LOD is used by the sprite, and what level it should be used at.

Definition at line 75 of file sprite3d.h.

#define CS_SPR_LOD_LOCAL   2

Use the LOD value local to the sprite.

Definition at line 85 of file sprite3d.h.

#define CS_SPR_LOD_TEMPLATE   1

Use the sprites template lod value.

Definition at line 80 of file sprite3d.h.

#define CS_THING_MOVE_NEVER   0

The following flags affect movement options for a thing.

See SetMovingOption() for more info.

Definition at line 131 of file thing.h.

#define CS_THING_MOVE_OCCASIONAL   2

The following flags affect movement options for a thing.

See SetMovingOption() for more info.

Definition at line 132 of file thing.h.

#define CS_THING_NOCOMPRESS   0x00010000

If CS_THING_NOCOMPRESS is set then vertices of this thing factory will not be compressed.

By default the vertex table is compressed before the thing is used for the first time (this means that duplicate vertices are removed). This is a flag for iMeshObjectFactory.

Definition at line 122 of file thing.h.


Enumeration Type Documentation

anonymous enum

Macros for the csSprite3D lighting levels.

Definition at line 45 of file sprite3d.h.

Velocity field effector types Determine the ODE the velocity field effector will solve to get new particle positions from current ones.

Enumerator:
CS_PARTICLE_BUILTIN_SPIRAL  Spiral around a given line.

ODE: pl = closest point on line defined by vparam[0] + t*vparam[1] p' = vparam[2] * p-pl x vparam[1] + (p-pl) * fparam[0] + vparam[3]

CS_PARTICLE_BUILTIN_RADIALPOINT  Exhort a radial movement relative to a given point.

ODE: p' = p-vparam[0] / |p-vparam[0]| * (fparam[0] + fparam[1] * sin(t))

Definition at line 727 of file particles.h.

Set where in the emitter the builtin emitters should spawn their particles.

Enumerator:
CS_PARTICLE_BUILTIN_CENTER  In the center.
CS_PARTICLE_BUILTIN_VOLUME  Anywhere in the volume.
CS_PARTICLE_BUILTIN_SURFACE  On the surface of the volume.

Definition at line 519 of file particles.h.

Particle integration mode.

Specifies how the velocity-to-position integration is done. Default is CS_PARTICLE_INTEGRATE_LINEAR

Enumerator:
CS_PARTICLE_INTEGRATE_NONE  Perform no integration.
CS_PARTICLE_INTEGRATE_LINEAR  Integrate linear velocity into linear position.
CS_PARTICLE_INTEGRATE_BOTH  Integrate both linear and angular velocity into pose.

Notice that the angular integration is rather performance heavy so use only when needed.

Definition at line 129 of file particles.h.

Particle orientation.

The particle type defines how the billboard is setup in relation to the particle position, direction and the camera.

Enumerator:
CS_PARTICLE_CAMERAFACE  Billboard always facing the camera, with exact computation per particle.

This is what you usually expect from a billboard.

CS_PARTICLE_CAMERAFACE_APPROX  Billboard always facing the camera direction.

This is approximately the same as CS_PARTICLE_CAMERAFACE, but is a bit optimized by utilizing the camera direction instead of the exact direction from particle to the camera,

CS_PARTICLE_ORIENT_COMMON  Orient billboard around a common direction (y/up direction), facing the camera.

All particles will use the same common direction.

CS_PARTICLE_ORIENT_COMMON_APPROX  Orient billboard around a common direction (y/up direction), facing the camera.

This is approximately the same as CS_PARTICLE_ORIENT_SAME_APPROX, but is a bit optimized by utilizing the camera direction instead of the exact direction from particle to the camera,

CS_PARTICLE_ORIENT_VELOCITY  Orient billboard around a common direction (y/up direction), facing the camera.

The particles will use their direction (velocity) vector as common direction.

CS_PARTICLE_ORIENT_SELF  Orient the particles according to their internal rotation.

The billboard will be aligned so that the normal is along the z axis and the particle in the xy plane of the base specified.

CS_PARTICLE_ORIENT_SELF_FORWARD  Orient the particles according to their internal rotation.

The billboard will be aligned so that the normal is along the z axis and the particle in the xy plane of the base specified. This differs from CS_PARTICLE_ORIENT_SELF in the sense that the particles will always have their "forward" side towards the camera

Definition at line 62 of file particles.h.

Rotation mode.

Specifies how particle rotation is handled.

Enumerator:
CS_PARTICLE_ROTATE_NONE  Do not take rotation into account at all.
CS_PARTICLE_ROTATE_TEXCOORD  Rotate texture coordinates.
CS_PARTICLE_ROTATE_VERTICES  Rotate particle vertices in the billboard plane.

Definition at line 114 of file particles.h.

Sorting modes for particle renderer.

Enumerator:
CS_PARTICLE_SORT_NONE  No sorting at all.
CS_PARTICLE_SORT_DISTANCE  Sort by distance to camera.
CS_PARTICLE_SORT_DOT  Sort by dot product of normalized camera vector and particle direction.

Definition at line 47 of file particles.h.

Particle transformation mode.

Controls how and when particles are transformed, and thereby also controls the coordinate system for particles, emitters and effectors.

Enumerator:
CS_PARTICLE_LOCAL_MODE  Fully local mode.

All positions and coordinates are relative to particle system.

CS_PARTICLE_LOCAL_EMITTER  Mixed coordinate mode.

Particle position and effectors are specified in world space, while emitters operate in local mode.

Warning:
Do note that this mode will introduce extra overhead compared to the other two modes and use only when neccesary.
CS_PARTICLE_WORLD_MODE  Fully global mode.

All coordinates are in world space (absolute space).

Definition at line 147 of file particles.h.


Generated for Crystal Space 1.0.2 by doxygen 1.4.7