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  csParticleParameterSet
 Parameters that can be modified based on age for the linear effector (iParticleBuiltinEffectorLinear). More...
struct  csPolygonRange
 A range structure for specifing polygon ranges. More...
struct  csSprite2DVertex
 A single 2D Sprite vertex. More...
struct  iAnimatedMesh
 State and setting for an instance of an animated mesh. More...
struct  iAnimatedMeshFactory
 State of animated mesh object factory. More...
struct  iAnimatedMeshFactorySubMesh
 Sub mesh (part) of an animated mesh factory. More...
struct  iAnimatedMeshMorphTarget
 A morph target. More...
struct  iAnimatedMeshSubMesh
 Sub mesh (part) of an animated mesh. More...
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  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  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  iGenMeshAnimationControl1_4
 Enhanced Update() for genmesh animation plugins. 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  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  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  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  iParticleBuiltinEffectorLinear
 Linear interpolation of various parameters based on particle lifetime. More...
struct  iParticleBuiltinEffectorVelocityField
 Velocity field effector. More...
struct  iParticleBuiltinEmitterFactory
 Factory for builtin emitter-types. More...
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  iSkeleton2
 A skeleton instance is a specific copy of a skeleton with base pose and topology defined by the factory but current state internally defined. More...
struct  iSkeletonAnimation2
 Factory for skeletal animations. More...
struct  iSkeletonAnimationNode2
 Animation node. More...
struct  iSkeletonAnimationNodeFactory2
 Factory for animation node. More...
struct  iSkeletonAnimCallback2
 A callback that is called when an animation or animation tree have finished playing. More...
struct  iSkeletonAnimNode2
 Base type for nodes in the hierarchical blending tree for skeletal animation system. More...
struct  iSkeletonAnimNodeFactory2
 Base type for nodes in the hierarchical blending tree factory. More...
struct  iSkeletonAnimPacket2
 A animation packet instance. More...
struct  iSkeletonAnimPacketFactory2
 Defines a factory for a skeletal animation packet. More...
struct  iSkeletonBlendNode2
 An animation node that blends together the sub-nodes based on their weights. More...
struct  iSkeletonBlendNodeFactory2
 Factory for blend node. More...
struct  iSkeletonFactory2
 A skeleton factory is an object defining the base pose and topology from which skeleton instances can be created. More...
struct  iSkeletonFSMNodeFactory2
 Factory for FSM animation node. More...
struct  iSkeletonManager2
 Skeletal system base object, representing the entire skeletal and skeletal animation system. More...
struct  iSkeletonPriorityNode2
 An animation node that blends together the sub-nodes based on their priority. More...
struct  iSkeletonPriorityNodeFactory2
 Factory for priority blend node. More...
struct  iSkeletonRandomNode2
 An animation node that selects random sub-nodes. More...
struct  iSkeletonRandomNodeFactory2
 Factory for randomized sub-node blending node. 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...

Namespaces

namespace  CS
 

Main namespace for CrystalSpace.


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

Particle systems



enum  csParticleSortMode { CS_PARTICLE_SORT_NONE, CS_PARTICLE_SORT_DISTANCE, CS_PARTICLE_SORT_DOT }
 

Sorting modes for particle renderer.

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  csParticleIntegrationMode { CS_PARTICLE_INTEGRATE_NONE, CS_PARTICLE_INTEGRATE_LINEAR, CS_PARTICLE_INTEGRATE_BOTH }
 

Particle integration mode.

More...
enum  csParticleTransformMode { CS_PARTICLE_LOCAL_MODE, CS_PARTICLE_LOCAL_EMITTER, CS_PARTICLE_WORLD_MODE }
 

Particle transformation mode.

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

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...
enum  csParticleParameterMask
 

Mask to influence which parameters we will interpolate in the linear effector (iParticleBuiltinEffectorLinear).

More...

Skeleton



typedef unsigned int BoneID
 Identifier for single bone data.
static const BoneID InvalidBoneID = (BoneID)~0
 ID for an invalid bone.

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.

Mesh factory flags



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

Polygon flags



#define CS_POLY_LIGHTING   0x00000001
 If CS_POLY_LIGHTING is set for a polygon then the polygon will be lit.
#define CS_POLY_COLLDET   0x00000002
 If this flag is set then this polygon is used for collision detection.
#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_SINGLE(idx)   csPolygonRange (idx, idx)
 A single polygon.
#define CS_POLYRANGE_LAST   csPolygonRange (-1, -1)
 The last created polygon or series of polygons (in case it was a box).
#define CS_POLYRANGE_ALL   csPolygonRange (0, 2000000000)
 All polygons.

Thing flags



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

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.

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 82 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 65 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 72 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 85 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 80 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 90 of file thing.h.

#define CS_POLYINDEX_LAST   -1

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

Definition at line 117 of file thing.h.

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

A general range of polygons (inclusive).

Definition at line 99 of file thing.h.

#define CS_POLYRANGE_ALL   csPolygonRange (0, 2000000000)

All polygons.

Definition at line 111 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 107 of file thing.h.

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

A single polygon.

Definition at line 103 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 136 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 137 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 127 of file thing.h.


Typedef Documentation

typedef unsigned int BoneID

Identifier for single bone data.

Definition at line 53 of file skeleton2.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.

Mask to influence which parameters we will interpolate in the linear effector (iParticleBuiltinEffectorLinear).

Definition at line 807 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.


Variable Documentation

const BoneID InvalidBoneID = (BoneID)~0 [static]

ID for an invalid bone.

Definition at line 56 of file skeleton2.h.


Generated for Crystal Space 1.4.1 by doxygen 1.7.1