CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

csObjectModel Class Reference
[Geometry utilities]

Helper class to make it easier to implement iObjectModel in mesh objects. More...

#include <objmodel.h>

Inheritance diagram for csObjectModel:

iObjectModel iBase List of all members.

Public Methods

 csObjectModel ()
 Construct a new csObjectModel. More...

void SetPolygonMeshBase (iPolygonMesh *base)
 Set the pointer to the base polygon mesh. More...

void ShapeChanged ()
 Increase the shape number and also fire all listeners. More...

void SetShapeNumber (long n)
 Set the shape number manually (should not be needed in most cases). More...

void FireListeners ()
 Fire all listeners. More...

virtual long GetShapeNumber () const
 Returns a number that will change whenever the shape of this object changes. More...

virtual iPolygonMeshGetPolygonMeshBase ()
 Get a polygon mesh representing the basic geometry of the object. More...

virtual iPolygonMeshGetPolygonMeshColldet ()
 Get a polygon mesh representing the geometry of the object. More...

virtual void SetPolygonMeshColldet (iPolygonMesh *polymesh)
 Set a polygon mesh representing the geometry of the object. More...

virtual iPolygonMeshGetPolygonMeshViscull ()
 Get a polygon mesh specifically for visibility culling (to be used as an occluder). More...

virtual void SetPolygonMeshViscull (iPolygonMesh *polymesh)
 Set a polygon mesh representing the geometry of the object. More...

virtual csPtr< iPolygonMeshCreateLowerDetailPolygonMesh (float)
 Create a polygon mesh representing a lower detail version of the object but without the restrictions of GetPolygonMeshViscull(). More...

virtual void AddListener (iObjectModelListener *listener)
 Add a listener to this object model. More...

virtual void RemoveListener (iObjectModelListener *listener)
 Remove a listener from this object model. More...


Detailed Description

Helper class to make it easier to implement iObjectModel in mesh objects.

This class does not implement the bounding box and radius functions. Note: this class is meant to be used as an embedded class of a mesh object. That's why it doesn't do any of the SCF stuff.

Definition at line 40 of file csgeom/objmodel.h.


Constructor & Destructor Documentation

csObjectModel::csObjectModel   [inline]
 

Construct a new csObjectModel.

Don't forget to call SetPolygonMesh<xxx>()!

Definition at line 54 of file csgeom/objmodel.h.


Member Function Documentation

virtual void csObjectModel::AddListener iObjectModelListener   listener [inline, virtual]
 

Add a listener to this object model.

This listener will be called whenever the object model changes or right before it is destroyed.

Implements iObjectModel.

Definition at line 113 of file csgeom/objmodel.h.

References csRefArray::Push, and RemoveListener.

virtual csPtr<iPolygonMesh> csObjectModel::CreateLowerDetailPolygonMesh float    [inline, virtual]
 

Create a polygon mesh representing a lower detail version of the object but without the restrictions of GetPolygonMeshViscull().

The floating point input number is 0 for minimum detail and 1 for highest detail. This function may return the same polygon mesh as GetPolygonMeshColldet() (but with ref count incremented by one). Can return NULL if this object model doesn't support that.

Implements iObjectModel.

Definition at line 109 of file csgeom/objmodel.h.

void csObjectModel::FireListeners   [inline]
 

Fire all listeners.

Definition at line 90 of file csgeom/objmodel.h.

References csRefArray::Length.

Referenced by ShapeChanged.

virtual iPolygonMesh* csObjectModel::GetPolygonMeshBase   [inline, virtual]
 

Get a polygon mesh representing the basic geometry of the object.

Can return NULL if this object model doesn't support that.

Implements iObjectModel.

Definition at line 98 of file csgeom/objmodel.h.

virtual iPolygonMesh* csObjectModel::GetPolygonMeshColldet   [inline, virtual]
 

Get a polygon mesh representing the geometry of the object.

This mesh is useful for collision detection. Can return NULL if this object model doesn't support that.

Implements iObjectModel.

Definition at line 99 of file csgeom/objmodel.h.

virtual iPolygonMesh* csObjectModel::GetPolygonMeshViscull   [inline, virtual]
 

Get a polygon mesh specifically for visibility culling (to be used as an occluder).

This polygon mesh is guaranteed to be smaller or equal to the real object. In other words: if you would render the original mesh in red and this one in blue you should not see any blue anywhere. This kind of lower detail version can be used for occlusion writing in a visibility culling system. Can return NULL if this object model doesn't support that. In that case the object will not be used for visibility culling.

Implements iObjectModel.

Definition at line 104 of file csgeom/objmodel.h.

virtual long csObjectModel::GetShapeNumber   const [inline, virtual]
 

Returns a number that will change whenever the shape of this object changes.

If that happens then the data in all the returned polygon meshes and bounding volumes will be invalid.

Implements iObjectModel.

Definition at line 97 of file csgeom/objmodel.h.

virtual void csObjectModel::RemoveListener iObjectModelListener   listener [inline, virtual]
 

Remove a listener from this object model.

Implements iObjectModel.

Definition at line 118 of file csgeom/objmodel.h.

References csRefArray::Delete, and csRefArray::Find.

Referenced by AddListener.

void csObjectModel::SetPolygonMeshBase iPolygonMesh   base [inline]
 

Set the pointer to the base polygon mesh.

Definition at line 65 of file csgeom/objmodel.h.

virtual void csObjectModel::SetPolygonMeshColldet iPolygonMesh   polymesh [inline, virtual]
 

Set a polygon mesh representing the geometry of the object.

This mesh is useful for collision detection. This can be used to replace the default polygon mesh returned by GetPolygonMeshColldet() with one that has less detail or even to support polygon mesh for mesh objects that otherwise don't support it. The object model will keep a reference to the given polymesh.

Implements iObjectModel.

Definition at line 100 of file csgeom/objmodel.h.

virtual void csObjectModel::SetPolygonMeshViscull iPolygonMesh   polymesh [inline, virtual]
 

Set a polygon mesh representing the geometry of the object.

This mesh is useful for visibility culling. This can be used to replace the default polygon mesh returned by GetPolygonMeshViscull() with one that has less detail or even to support polygon mesh for mesh objects that otherwise don't support it. The object model will keep a reference to the given polymesh.

Implements iObjectModel.

Definition at line 105 of file csgeom/objmodel.h.

void csObjectModel::SetShapeNumber long    n [inline]
 

Set the shape number manually (should not be needed in most cases).

Definition at line 82 of file csgeom/objmodel.h.

void csObjectModel::ShapeChanged   [inline]
 

Increase the shape number and also fire all listeners.

Definition at line 73 of file csgeom/objmodel.h.

References FireListeners.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.14