#include <viscull.h>
Inheritance diagram for iVisibilityCuller:
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 iPolygon3D* | IntersectSegment (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. |
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.
|
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. |
|
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. |
|
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. |
|
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. |