CEL: Crystal Entity Layer: iPcMesh Struct Reference (CEL: Crystal Entity Layer Public API Reference)

| ## Public API Reference

- Main Page
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iPcMesh Struct Reference

This is a property class holding the representation of a mesh. More...

`#include <propclass/mesh.h>`

List of all members.

## Public Member Functions
virtual void | CreateEmptyThing ()=0
| Create an empty thing mesh (use instead of SetMesh()).
virtual const char * | GetAction ()=0
| Return the current action name.
virtual iMeshWrapper * | GetMesh () const =0
| Get the mesh.
virtual void | Hide ()=0
| Hide this mesh.
virtual bool | IsVisible () const =0
| Return true if mesh is visible.
virtual void | MoveMesh (iSector *sector, const csVector3 &pos)=0
| Convenience function to move the mesh to some sector and position and also update lighting.
virtual void | SetAction (const char *actionName, bool reset=false)=0
| Convenience function to set an 'action' for the mesh.
virtual void | SetAnimation (const char *actionName, bool cycle, float weight=1.0, float fadein=0.1, float fadeout=0.1)=0
| Function to set an 'action' for the mesh.
virtual void | SetMesh (iMeshWrapper *mesh, bool do_remove=false)=0
| Set the mesh to use directly.
virtual bool | SetMesh (const char *factname, const char *filename)=0
| Set the mesh filename to use.
virtual void | SetPath (const char *path)=0
| Set the path to use.
virtual void | SetReverseAction (bool reverse=true)=0
| Convenience function to set an 'action' to be reversed for the mesh.
virtual void | Show ()=0
| Show this mesh.

## Detailed Description

This is a property class holding the representation of a mesh.

This property class supports the following actions (add prefix 'cel.action.' to get the ID of the action and add prefix 'cel.parameter.' to get the ID of the parameter):

- SetMesh: parameters 'name' (string). This sets an already existing mesh for this pcmesh.
- LoadMesh: parameters 'filename' (string) and 'factoryname' (string). 'filename' is optional. If not given then the factory should already be in memory.
- LoadMeshPath: parameters 'path' (string), 'filename' (string) and 'factoryname' (string).
- MoveMesh: parameters 'sector' (string) and 'position' (vector3).
- ClearRotation: no parameters.
- LookAt: parameters 'forward' (vector3) and 'up' (vector3).
- SetVisible: parameters 'visible' (bool).
- SetMaterial: parameters 'material' (string).
- SetAnimation: parameters 'animation' (string) and 'cycle' (bool).
- SetShaderVar: parameters 'name' (string), 'type' (bool) and 'value' (type depending on type parameter).

This property class supports the following properties (add prefix 'cel.property.' to get the ID of the property:

- position (vector3, read): current position.
- sector (string, read): current sector.
- path (string, read): path for model.
- factory (string, read): factory for model.
- filename (string, read): filename for model.

Definition at line 71 of file mesh.h.

## Member Function Documentation

virtual void iPcMesh::CreateEmptyThing | ( |  | ) | `[pure virtual]`

Create an empty thing mesh (use instead of SetMesh()).

After this use GetMesh() to add polygons to the mesh.

virtual const char* iPcMesh::GetAction | ( |  | ) | `[pure virtual]`

Return the current action name.

virtual iMeshWrapper* iPcMesh::GetMesh | ( |  | ) | const`[pure virtual]`

Get the mesh.

virtual void iPcMesh::Hide | ( |  | ) | `[pure virtual]`

Hide this mesh.

virtual bool iPcMesh::IsVisible | ( |  | ) | const`[pure virtual]`

Return true if mesh is visible.

virtual void iPcMesh::MoveMesh | ( | iSector * | sector,
|  | const csVector3 & | pos |
| ) |  |  | `[pure virtual]`

Convenience function to move the mesh to some sector and position and also update lighting.

If sector specified is 0, sector is not updated.

virtual void iPcMesh::SetAction | ( | const char * | actionName,
|  | bool | reset = `false` |
| ) |  |  | `[pure virtual]`

Convenience function to set an 'action' for the mesh.

This only works for 3D sprites. For other mesh objects nothing will happen.

virtual void iPcMesh::SetAnimation | ( | const char * | actionName,
|  | bool | cycle,
|  | float | weight = `1.0`,
|  | float | fadein = `0.1`,
|  | float | fadeout = `0.1` |
| ) |  |  | `[pure virtual]`

Function to set an 'action' for the mesh.

Works for cal3d, spr3d and genmeshskelanim, but note not all mesh objects support the same feature set.

virtual void iPcMesh::SetMesh | ( | iMeshWrapper * | mesh,
|  | bool | do_remove = `false` |
| ) |  |  | `[pure virtual]`

Set the mesh to use directly.

It is normally not recommended to use this function directly. iPcRegion will use it for its dummy entities.

Parameters:

  | mesh | a pointer to an iMeshWrapper that will be attached to the pcmesh.
  | do_remove | if true then this pcmesh will remove the mesh on destruction. By default this will not happen if you use SetMesh() on an already existing mesh.

virtual bool iPcMesh::SetMesh | ( | const char * | factname,
|  | const char * | filename |
| ) |  |  | `[pure virtual]`

Set the mesh filename to use.

Returns false on failure. Note that this filename can refer to a mesh factory file or a library file containing a mesh factory. If 'filename' is not given (i.e. 0) then it is assumed the factory is already loaded in memory.

virtual void iPcMesh::SetPath | ( | const char * | path | ) | `[pure virtual]`

Set the path to use.

If this is not done then the filename in SetMesh() will be used alone. Otherwise this path is used to temporarily set the current VFS dir while loading (which will be restored afterwards) and the filename in SetMesh() is used relative to that. Note that this must be called before SetMesh().

virtual void iPcMesh::SetReverseAction | ( | bool | reverse = `true` | ) | `[pure virtual]`

Convenience function to set an 'action' to be reversed for the mesh.

This only works for 3D sprites. For other mesh objects nothing will happen.

virtual void iPcMesh::Show | ( |  | ) | `[pure virtual]`

Show this mesh.

The documentation for this struct was generated from the following file:

- propclass/mesh.h