Crystal Space: Mesh plugins (Crystal Space Public API Reference)

| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

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

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

enum csParticleIntegrationMode

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 126 of file particles.h.

enum csParticleRenderOrientation

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 59 of file particles.h.

enum csParticleRotationMode

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 111 of file particles.h.

enum csParticleSortMode

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 44 of file particles.h.

enum csParticleTransformMode

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 144 of file particles.h.