CrystalSpace

Public API Reference

Crystal Space 3D Engine


Modules

 Lighting
 Mesh support
 Renderloops & Rendersteps
 Textures & Materials
 Views & Cameras
 Visibility

Classes

struct  csFog
 Sector fog structure. More...
struct  csSectorHitBeamResult
 Return structure for the iSector->HitBeam() routines. More...
struct  iEngine
 This interface is the main interface to the 3D engine. More...
struct  iEngineFrameCallback
 A callback that will be fired whenever the engine starts drawing a frame. More...
struct  iEngineSectorCallback
 A callback that will be fired whenever a sector is created or removed from the engine. More...
struct  iImposter
 iImposter defines the interface a mesh (or other) class must implement to be used as imposter mesh by the engine. More...
struct  iLightVisibleCallback
 A callback that is fired whenever a light is visible. More...
struct  iMeshGenerator
 iMeshGenerator defines the interface for a mesh generator. More...
struct  iMeshGeneratorGeometry
 This interface defines one piece of geometry for the mesh generator. More...
struct  iMovable
 This interface represents the position and orientation of an object relative to its parent (this is the transformation between local object space of the model and world space (i.e. More...
struct  iMovableListener
 Implement this class if you're interested in hearing about movable changes. More...
struct  iObjectWatcher
 This is a generic object watcher. More...
struct  iObjectWatcherListener
 Implement this class if you're interested in hearing about object watcher events. More...
struct  iPortal
 This is the interface to the Portal objects. More...
struct  iPortalCallback
 When a sector is missing this callback will be called. More...
struct  iPortalContainer
 A container for portals. More...
struct  iRegion
 A region. More...
struct  iRegionList
 A list of region objects. More...
struct  iSceneNode
 This interface represents a node in the scene graph. More...
struct  iSceneNodeArray
 An array of scene node interfaces. More...
struct  iSector
 The iSector interface is used to work with "sectors". More...
struct  iSectorCallback
 Set a callback which is called when this sector is traversed. More...
struct  iSectorIterator
 An iterator to iterate over sectors. More...
struct  iSectorList
 A list of sectors. More...
struct  iSectorMeshCallback
 Set a callback which is called when a mesh is added or removed from this sector. More...
struct  iSharedVariable
 iSharedVariable implements a refcounted value which can be shared across many objects and updated efficiently. More...
struct  iSharedVariableList
 A list of shared variables. More...
struct  iSharedVariableListener
 A listener so that you can get notified when a variable is changed. More...

SetLightingCacheMode() settings

#define CS_ENGINE_CACHE_NOUPDATE   4
 Do not calculate lighting if not up-to-date.
#define CS_ENGINE_CACHE_READ   1
 Read the cache.
#define CS_ENGINE_CACHE_WRITE   2
 Write the cache.

Operations

Operations indicate what has changed in one of the objects that is being watched.

#define CS_WATCH_LIGHT_ATTENUATION   8
 Light has changed attenuation.
#define CS_WATCH_LIGHT_COLOR   4
 Light has changed color.
#define CS_WATCH_LIGHT_DESTROY   1
 Light has been destroyed.
#define CS_WATCH_LIGHT_MOVE   2
 Light has moved.
#define CS_WATCH_LIGHT_RADIUS   3
 Light has changed radius.
#define CS_WATCH_LIGHT_SECTOR   5
 Light has changed sector.
#define CS_WATCH_MOVABLE_CHANGED   7
 Movable has changed otherwise.
#define CS_WATCH_MOVABLE_DESTROY   6
 Movable has been destroyed.
#define CS_WATCH_NONE   0
 No operation recorded yet.
#define CS_WATCH_SECTOR_NEWMESH   9
 Sector has a new mesh.
#define CS_WATCH_SECTOR_REMOVEMESH   10
 Sector has a removed mesh.

RegisterRenderPriority() flags

enum  csRenderPrioritySorting { CS_RENDPRI_SORT_NONE = 0, CS_RENDPRI_SORT_BACK2FRONT = 1, CS_RENDPRI_SORT_FRONT2BACK = 2 }

Defines

#define CS_PORTAL_CLIPDEST   0x00000001
 If this flag is set then this portal will clip all geometry in the destination sector.
#define CS_PORTAL_CLIPSTRADDLING   0x00000002
 If this flag is set then this portal will clip geometry of an object that is straddling this portal (i.e.
#define CS_PORTAL_COLLDET   0x00000080
 If this flag is set then this portal is used for collision detection.
#define CS_PORTAL_FLOAT   0x00000040
 If this flag is used then the portal will use possible available stencil buffer on the hardware to do good clipping.
#define CS_PORTAL_MIRROR   0x00000010
 If this flag is set then this portal mirrors space (changes order of the vertices of polygons).
#define CS_PORTAL_STATICDEST   0x00000020
 A flag which indicates if the destination of this portal should not be transformed from object to world space.
#define CS_PORTAL_VISCULL   0x00000100
 If this flag is set then this portal is used for visibility culling.
#define CS_PORTAL_WARP   0x00000008
 If this flag is set then this portal will do space warping.
#define CS_PORTAL_ZFILL   0x00000004
 If this flag is set then this portal will do a Z-fill after rendering the contents.

Enumerations

enum  csFogMode

Define Documentation

#define CS_ENGINE_CACHE_NOUPDATE   4

Do not calculate lighting if not up-to-date.

On by default.

Definition at line 99 of file engine.h.

#define CS_ENGINE_CACHE_READ   1

Read the cache.

Definition at line 89 of file engine.h.

#define CS_ENGINE_CACHE_WRITE   2

Write the cache.

Definition at line 94 of file engine.h.

#define CS_PORTAL_CLIPDEST   0x00000001

If this flag is set then this portal will clip all geometry in the destination sector.

This must be used for portals which arrive in the middle of a sector.

Definition at line 53 of file portal.h.

#define CS_PORTAL_CLIPSTRADDLING   0x00000002

If this flag is set then this portal will clip geometry of an object that is straddling this portal (i.e.

the object is both in the source and destination sector and the portal 'cuts' the object). This is only needed if the portal is on a surface that is transparent. A space warping portal will do this automatically.

Definition at line 62 of file portal.h.

#define CS_PORTAL_COLLDET   0x00000080

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

Definition at line 111 of file portal.h.

#define CS_PORTAL_FLOAT   0x00000040

If this flag is used then the portal will use possible available stencil buffer on the hardware to do good clipping.

This flag should be used if you have a portal that is not at the boundary of the sector and that can be covered (or itself covers) other objects. It is usually used in combination with CS_PORTAL_ZFILL and sometimes with CS_PORTAL_CLIPDEST if the destination of the portal enters in the middle of a sector.

Definition at line 106 of file portal.h.

#define CS_PORTAL_MIRROR   0x00000010

If this flag is set then this portal mirrors space (changes order of the vertices of polygons).

Don't set this flag directly. It will be automatically set if a mirroring space warp is used with SetWarp().

Definition at line 87 of file portal.h.

#define CS_PORTAL_STATICDEST   0x00000020

A flag which indicates if the destination of this portal should not be transformed from object to world space.

For mirrors you should disable this flag because you want the destination to move with the source.

Definition at line 95 of file portal.h.

#define CS_PORTAL_VISCULL   0x00000100

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

Definition at line 116 of file portal.h.

#define CS_PORTAL_WARP   0x00000008

If this flag is set then this portal will do space warping.

You can use this to implement mirrors or other weird portal effects. Don't set this flag directly. Use SetWarp() instead. It is safe to disable and query this flag though.

Definition at line 80 of file portal.h.

#define CS_PORTAL_ZFILL   0x00000004

If this flag is set then this portal will do a Z-fill after rendering the contents.

This is mainly useful for floating portals where it is possible that there is geometry in the same sector that will be rendered behind the portal (and thus could accidently get written in the portal sector because the Z-buffer cannot be trusted).

Definition at line 72 of file portal.h.

#define CS_WATCH_LIGHT_ATTENUATION   8

Light has changed attenuation.

Definition at line 57 of file objwatch.h.

#define CS_WATCH_LIGHT_COLOR   4

Light has changed color.

Definition at line 49 of file objwatch.h.

#define CS_WATCH_LIGHT_DESTROY   1

Light has been destroyed.

Definition at line 43 of file objwatch.h.

#define CS_WATCH_LIGHT_MOVE   2

Light has moved.

Definition at line 45 of file objwatch.h.

#define CS_WATCH_LIGHT_RADIUS   3

Light has changed radius.

Definition at line 47 of file objwatch.h.

#define CS_WATCH_LIGHT_SECTOR   5

Light has changed sector.

Definition at line 51 of file objwatch.h.

#define CS_WATCH_MOVABLE_CHANGED   7

Movable has changed otherwise.

Definition at line 55 of file objwatch.h.

#define CS_WATCH_MOVABLE_DESTROY   6

Movable has been destroyed.

Definition at line 53 of file objwatch.h.

#define CS_WATCH_NONE   0

No operation recorded yet.

Definition at line 41 of file objwatch.h.

#define CS_WATCH_SECTOR_NEWMESH   9

Sector has a new mesh.

Definition at line 59 of file objwatch.h.

#define CS_WATCH_SECTOR_REMOVEMESH   10

Sector has a removed mesh.

Definition at line 61 of file objwatch.h.


Enumeration Type Documentation

Enumerator:
CS_RENDPRI_SORT_NONE  Do not sort this priority.
CS_RENDPRI_SORT_BACK2FRONT  Sort this priority back to front.
CS_RENDPRI_SORT_FRONT2BACK  Sort this priority front to back.

Definition at line 104 of file engine.h.


Generated for Crystal Space by doxygen 1.4.7