CrystalSpace

Public API Reference

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

iObjectModel Struct Reference
[Geometry utilities]

This interface represents data related to some geometry in object space. More...

#include <objmodel.h>

Inheritance diagram for iObjectModel:

iBase csObjectModel List of all members.

Public Methods

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

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

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

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

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

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

virtual iPolygonMeshGetPolygonMeshShadows ()=0
 Get a polygon mesh specifically for shadow casting (to be used by the shadow manager). More...

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

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

virtual void GetObjectBoundingBox (csBox3 &bbox, int type=CS_BBOX_NORMAL)=0
 Get the bounding box in object space for this mesh object. More...

virtual void GetRadius (csVector3 &radius, csVector3 &center)=0
 Get the radius and center of this object in object space. More...

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

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


Detailed Description

This interface represents data related to some geometry in object space.

It is a generic way to describe meshes in the engine. By using this interface you can make sure your code works on all engine geometry. The data returned by this class is in local object space.

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


Member Function Documentation

virtual void iObjectModel::AddListener iObjectModelListener   listener [pure virtual]
 

Add a listener to this object model.

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

Implemented in csObjectModel.

virtual csPtr<iPolygonMesh> iObjectModel::CreateLowerDetailPolygonMesh float    detail [pure 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 0 if this object model doesn't support that.

Implemented in csObjectModel.

virtual void iObjectModel::GetObjectBoundingBox csBox3   bbox,
int    type = CS_BBOX_NORMAL
[pure virtual]
 

Get the bounding box in object space for this mesh object.

Type has three possibilities:

  • CS_BBOX_NORMAL: get a normal bounding box which may or may not be recalculated depending on the changing geometry of the object.
  • CS_BBOX_ACCURATE: get a totally accurate bounding box. Not all plugins support this. Some will just return a normal bounding box.
  • CS_BBOX_MAX: get the maximum bounding box that this object will ever use. For objects that don't have a preset maximum bounding box this just has to be a reasonable estimate of a realistic maximum bounding box.

virtual iPolygonMesh* iObjectModel::GetPolygonMeshBase   [pure virtual]
 

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

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

Implemented in csObjectModel.

virtual iPolygonMesh* iObjectModel::GetPolygonMeshColldet   [pure virtual]
 

Get a polygon mesh representing the geometry of the object.

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

Implemented in csObjectModel.

virtual iPolygonMesh* iObjectModel::GetPolygonMeshShadows   [pure virtual]
 

Get a polygon mesh specifically for shadow casting (to be used by the shadow manager).

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. Can return 0 if this object model doesn't support that. In that case the object will not be used for shadow casting.

Implemented in csObjectModel.

virtual iPolygonMesh* iObjectModel::GetPolygonMeshViscull   [pure 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 0 if this object model doesn't support that. In that case the object will not be used for visibility culling.

Implemented in csObjectModel.

virtual void iObjectModel::GetRadius csVector3   radius,
csVector3   center
[pure virtual]
 

Get the radius and center of this object in object space.

virtual long iObjectModel::GetShapeNumber   const [pure 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.

Implemented in csObjectModel.

virtual void iObjectModel::RemoveListener iObjectModelListener   listener [pure virtual]
 

Remove a listener from this object model.

Implemented in csObjectModel.

virtual void iObjectModel::SetPolygonMeshColldet iPolygonMesh   polymesh [pure 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.

Implemented in csObjectModel.

virtual void iObjectModel::SetPolygonMeshShadows iPolygonMesh   polymesh [pure virtual]
 

Set a polygon mesh representing the geometry of the object.

This mesh is useful for shadow casting. This can be used to replace the default polygon mesh returned by GetPolygonMeshShadows() 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.

Implemented in csObjectModel.

virtual void iObjectModel::SetPolygonMeshViscull iPolygonMesh   polymesh [pure 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.

Implemented in csObjectModel.


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