CrystalSpace

Public API Reference

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

csMeshObject Class Reference

This is an abstract implementation of iMeshObject. More...

#include <meshobjtmpl.h>

Inheritance diagram for csMeshObject:

iMeshObject iBase List of all members.

Public Methods

 csMeshObject (iEngine *engine)
 Constructor.

virtual ~csMeshObject ()
 Destructor.

virtual iMeshObjectFactoryGetFactory () const=0
 See imesh/object.h for specification.

virtual csPtr< iMeshObjectClone ()
 See imesh/object.h for specification.

virtual csFlagsGetFlags ()
 See imesh/object.h for specification.

virtual bool DrawTest (iRenderView *rview, iMovable *movable, uint32 frustum_mask)
 See imesh/object.h for specification.

virtual csRenderMesh ** GetRenderMeshes (int &num, iRenderView *, iMovable *, uint32)
 See imesh/object.h for specification.

virtual bool Draw (iRenderView *rview, iMovable *movable, csZBufMode zbufMode)=0
 See imesh/object.h for specification.

virtual void SetVisibleCallback (iMeshObjectDrawCallback *cb)
 See imesh/object.h for specification.

virtual iMeshObjectDrawCallbackGetVisibleCallback () const
 See imesh/object.h for specification.

virtual void NextFrame (csTicks current_time, const csVector3 &pos)
 See imesh/object.h for specification.

virtual void HardTransform (const csReversibleTransform &t)
 See imesh/object.h for specification.

virtual bool SupportsHardTransform () const
 See imesh/object.h for specification.

virtual bool HitBeamOutline (const csVector3 &start, const csVector3 &end, csVector3 &isect, float *pr)
 See imesh/object.h for specification.

virtual bool HitBeamObject (const csVector3 &start, const csVector3 &end, csVector3 &isect, float *pr, int *polygon_idx=0)
 See imesh/object.h for specification.

virtual void SetLogicalParent (iBase *logparent)
 See imesh/object.h for specification.

virtual iBaseGetLogicalParent () const
 See imesh/object.h for specification.

virtual iObjectModelGetObjectModel ()
 See imesh/object.h for specification.

virtual bool SetColor (const csColor &color)
 See imesh/object.h for specification.

virtual bool GetColor (csColor &color) const
 See imesh/object.h for specification.

virtual bool SetMaterialWrapper (iMaterialWrapper *material)
 See imesh/object.h for specification.

virtual iMaterialWrapperGetMaterialWrapper () const
 See imesh/object.h for specification.

virtual void InvalidateMaterialHandles ()
 see imesh/object.h for specification.

virtual void PositionChild (iMeshObject *child, csTicks current_time)
 see imesh/object.h for specification.

virtual void GetObjectBoundingBox (csBox3 &bbox, int type)
 See igeom/objmodel.h for specification.

virtual void GetRadius (csVector3 &radius, csVector3 &center)
 See igeom/objmodel.h for specification.


Protected Methods

void WantToDie ()
 Tell the engine that this object wants to be deleted.


Protected Attributes

csRef< iMeshObjectDrawCallbackVisCallback
 the drawing callback

iBaseLogParent
 logical parent (usually the wrapper object from the engine)

iEngineEngine
 pointer to the engine if available (@ temporary)

csFlags flags
 Flags.


Detailed Description

This is an abstract implementation of iMeshObject.

It can be used to write custom mesh object implementations more easily. Currently it supports the following common functions of mesh objects:

Definition at line 63 of file meshobjtmpl.h.


Constructor & Destructor Documentation

csMeshObject::csMeshObject iEngine   engine
 

Constructor.

virtual csMeshObject::~csMeshObject   [virtual]
 

Destructor.


Member Function Documentation

virtual csPtr<iMeshObject> csMeshObject::Clone   [inline, virtual]
 

See imesh/object.h for specification.

The default implementation does nothing and returns 0.

Implements iMeshObject.

Definition at line 100 of file meshobjtmpl.h.

virtual bool csMeshObject::Draw iRenderView   rview,
iMovable   movable,
csZBufMode    zbufMode
[pure virtual]
 

See imesh/object.h for specification.

There is no default implementation for this method.

Implements iMeshObject.

virtual bool csMeshObject::DrawTest iRenderView   rview,
iMovable   movable,
uint32    frustum_mask
[virtual]
 

See imesh/object.h for specification.

The default implementation does nothing and always returns true.

Implements iMeshObject.

virtual bool csMeshObject::GetColor csColor   color const [virtual]
 

See imesh/object.h for specification.

The default implementation does not support a base color.

Implements iMeshObject.

virtual iMeshObjectFactory* csMeshObject::GetFactory   [pure virtual]
 

See imesh/object.h for specification.

There is no default implementation for this method.

Implements iMeshObject.

virtual csFlags& csMeshObject::GetFlags   [inline, virtual]
 

See imesh/object.h for specification.

Implements iMeshObject.

Definition at line 105 of file meshobjtmpl.h.

virtual iBase* csMeshObject::GetLogicalParent   [virtual]
 

See imesh/object.h for specification.

This function is handled completely in csMeshObject.

Implements iMeshObject.

virtual iMaterialWrapper* csMeshObject::GetMaterialWrapper   [virtual]
 

See imesh/object.h for specification.

The default implementation does not support a material.

Implements iMeshObject.

virtual void csMeshObject::GetObjectBoundingBox csBox3   bbox,
int    type
[virtual]
 

See igeom/objmodel.h for specification.

The default implementation returns an infinite bounding box.

virtual iObjectModel* csMeshObject::GetObjectModel   [inline, virtual]
 

See imesh/object.h for specification.

Implements iMeshObject.

Definition at line 194 of file meshobjtmpl.h.

virtual void csMeshObject::GetRadius csVector3   radius,
csVector3   center
[virtual]
 

See igeom/objmodel.h for specification.

The default implementation returns an infinite radius.

virtual csRenderMesh** csMeshObject::GetRenderMeshes int &    num,
iRenderView  ,
iMovable  ,
uint32   
[inline, virtual]
 

See imesh/object.h for specification.

The default implementation does nothing and always returns 0. @@ Note: in future it would be better that the default implementation does nothing as this function has to be implemented by mesh objects.

Implements iMeshObject.

Definition at line 120 of file meshobjtmpl.h.

virtual iMeshObjectDrawCallback* csMeshObject::GetVisibleCallback   [virtual]
 

See imesh/object.h for specification.

This function is handled completely in csMeshObject.

Implements iMeshObject.

virtual void csMeshObject::HardTransform const csReversibleTransform   t [virtual]
 

See imesh/object.h for specification.

The default implementation does nothing.

Implements iMeshObject.

virtual bool csMeshObject::HitBeamObject const csVector3   start,
const csVector3   end,
csVector3   isect,
float *    pr,
int *    polygon_idx = 0
[virtual]
 

See imesh/object.h for specification.

The default implementation will always return a miss.

Implements iMeshObject.

virtual bool csMeshObject::HitBeamOutline const csVector3   start,
const csVector3   end,
csVector3   isect,
float *    pr
[virtual]
 

See imesh/object.h for specification.

The default implementation will always return a miss.

Implements iMeshObject.

virtual void csMeshObject::InvalidateMaterialHandles   [inline, virtual]
 

see imesh/object.h for specification.

The default implementation does nothing.

Implements iMeshObject.

Definition at line 224 of file meshobjtmpl.h.

virtual void csMeshObject::NextFrame csTicks    current_time,
const csVector3   pos
[virtual]
 

See imesh/object.h for specification.

The default implementation does nothing.

Implements iMeshObject.

virtual void csMeshObject::PositionChild iMeshObject   child,
csTicks    current_time
[inline, virtual]
 

see imesh/object.h for specification.

The default implementation does nothing.

Implements iMeshObject.

Definition at line 230 of file meshobjtmpl.h.

References csTicks.

virtual bool csMeshObject::SetColor const csColor   color [virtual]
 

See imesh/object.h for specification.

The default implementation does not support a base color.

Implements iMeshObject.

virtual void csMeshObject::SetLogicalParent iBase   logparent [virtual]
 

See imesh/object.h for specification.

This function is handled completely in csMeshObject.

Implements iMeshObject.

virtual bool csMeshObject::SetMaterialWrapper iMaterialWrapper   material [virtual]
 

See imesh/object.h for specification.

The default implementation does not support a material.

Implements iMeshObject.

virtual void csMeshObject::SetVisibleCallback iMeshObjectDrawCallback   cb [virtual]
 

See imesh/object.h for specification.

This function is handled completely in csMeshObject. The actual implementation just has to use the VisCallback variable to perform the callback.

Implements iMeshObject.

virtual bool csMeshObject::SupportsHardTransform   [virtual]
 

See imesh/object.h for specification.

The default implementation returns false.

Implements iMeshObject.

void csMeshObject::WantToDie   [protected]
 

Tell the engine that this object wants to be deleted.


Member Data Documentation

iEngine* csMeshObject::Engine [protected]
 

pointer to the engine if available (@ temporary)

@

Definition at line 73 of file meshobjtmpl.h.

csFlags csMeshObject::flags [protected]
 

Flags.

Definition at line 79 of file meshobjtmpl.h.

iBase* csMeshObject::LogParent [protected]
 

logical parent (usually the wrapper object from the engine)

Definition at line 70 of file meshobjtmpl.h.

csRef<iMeshObjectDrawCallback> csMeshObject::VisCallback [protected]
 

the drawing callback

Definition at line 67 of file meshobjtmpl.h.


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