Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

iVisibilityCuller Struct Reference

This interface represents a visibility culling system. More...

#include <viscull.h>

Inheritance diagram for iVisibilityCuller:

iBase List of all members.

Public Methods

virtual void Setup (const char *name)=0
 Setup all data for this visibility culler. More...

virtual void RegisterVisObject (iVisibilityObject *visobj)=0
 Register a visibility object with this culler. More...

virtual void UnregisterVisObject (iVisibilityObject *visobj)=0
 Unregister a visibility object with this culler.

virtual bool VisTest (iRenderView *irview)=0
 Do the visibility test from a given viewpoint. More...

virtual iPolygon3DIntersectSegment (const csVector3 &start, const csVector3 &end, csVector3 &isect, float *pr=NULL, iMeshWrapper **p_mesh=NULL)=0
 Intersect a beam using this culler and return the intersection point, the mesh and optional polygon. More...

virtual bool SupportsShadowCasting ()=0
 Returns true if shadow casting is supported.

virtual void CastShadows (iFrustumView *fview)=0
 Start casting shadows from a given point in space.

virtual void RegisterShadowReceiver (iShadowReceiver *receiver)=0
 Register a shadow receiver.

virtual void UnregisterShadowReceiver (iShadowReceiver *receiver)=0
 Unregister a shadow receiver.


Detailed Description

This interface represents a visibility culling system.

To use it you first register visibility objects (which are all the objects for which you want to test visibility) to this culler. A visibility culler can usually also support shadow calculation.


Member Function Documentation

iPolygon3D * iVisibilityCuller::IntersectSegment ( const csVector3 & start,
const csVector3 & end,
csVector3 & isect,
float * pr = NULL,
iMeshWrapper ** p_mesh = NULL ) [pure virtual]
 

Intersect a beam using this culler and return the intersection point, the mesh and optional polygon.

If the returned mesh is NULL then this means that the object belonging to the culler itself was hit.

void iVisibilityCuller::RegisterVisObject ( iVisibilityObject * visobj ) [pure virtual]
 

Register a visibility object with this culler.

If this visibility object also supports iShadowCaster and this visibility culler supports shadow casting then it will automatically get registered as a shadow caster as well.

void iVisibilityCuller::Setup ( const char * name ) [pure virtual]
 

Setup all data for this visibility culler.

This needs to be called before the culler is used for the first time. The given name will be used to cache the data.

bool iVisibilityCuller::VisTest ( iRenderView * irview ) [pure virtual]
 

Do the visibility test from a given viewpoint.

This will first clear the visible flag on all registered objects and then it will mark all visible objects. If this function returns false then the visibility test could not happen for some reason (disabled or circumstances are not right). In this case all objects should be considered visible.


The documentation for this struct was generated from the following file:
Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000