| ## Public API Reference

- Main Page
- Classes
- Files

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

# iPcMechanicsThrusterController Struct Reference

Property class that controls the thrusters attached to an object through the use of balanced thruster groups. More...

`#include <propclass/mechthruster.h>`

List of all members.

## Public Member Functions
virtual void | AddAxis (const char *name, celAxisType type, const csVector3 axis)=0
| Add a named axis to the controller.
virtual void | AddBalancedGroup (iPcMechanicsBalancedGroup *group, const char *axisname)=0
| Add a balanced thruster group to the specified axis.
virtual void | ApplyThrust (float thrust, const char *axisname, uint32 &id)=0
| Apply the given percentage of total thrust for a given axis.
virtual void | CancelThrust (uint32 id)=0
| Cancels specified thrust request.
virtual const csVector3 | GetAxis (const char *name)=0
| Get the axis of rotation or translation.
virtual float | GetAxisMaxForce (const char *name)=0
| Get the strength of the best thruster group in the given axis.
virtual float | GetAxisMaxThrust (const char *name)=0
| Get the amount of thrust needed to produce the maximum force in the given axis.
virtual const celAxisType | GetAxisType (const char *name)=0
| Get the type of the given axis.
virtual const float | GetAxisVelocity (const char *name)=0
| Get the current velocity in the given axis.
virtual iPcMechanicsObject * | GetMechanicsObject ()=0
| Get the associated mechanics object.
virtual void | RemoveBalancedGroup (const char *grouptag, const char *axisname)=0
| Remove a thruster group from the specified axis.
virtual void | SetMechanicsObject (iPcMechanicsObject *mechobj)=0
| Set the mechanics object to affect.

## Detailed Description

Property class that controls the thrusters attached to an object through the use of balanced thruster groups.

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):

- InitThrusterController: parameters 'objectpctag' (string).
- AddAxis: parameters 'axisname' (string), 'axistype' (string, "rotation" or "translation"), 'axisdir' (vector3).
- ApplyThrust: parameters 'axisname' (string), 'thrust' (float).
- AddBalancedGroup: parameters 'axisname' (string), 'balancedgroup' (string).

Definition at line 211 of file mechthruster.h.

## Member Function Documentation

virtual void iPcMechanicsThrusterController::AddAxis | ( | const char * | name,
|  | celAxisType | type,
|  | const csVector3 | axis |
| ) |  |  | `[pure virtual]`

Add a named axis to the controller.

Parameters:

  | name | the name for this axis.
  | type | one of celAxisType, the type of groups that can be added to this group.
  | axis | the vector representing either the direction of movement for this axis (for translational axes) or the direction of the axis around which rotation occurs. (for rotational axes)

virtual void iPcMechanicsThrusterController::AddBalancedGroup | ( | iPcMechanicsBalancedGroup * | group,
|  | const char * | axisname |
| ) |  |  | `[pure virtual]`

Add a balanced thruster group to the specified axis.

Parameters:

  | group | the group to add.
  | axisname | the name of the axis to add to.

virtual void iPcMechanicsThrusterController::ApplyThrust | ( | float | thrust,
|  | const char * | axisname,
|  | uint32 & | id |
| ) |  |  | `[pure virtual]`

Apply the given percentage of total thrust for a given axis.

Parameters:

  | thrust | the percentage of the total thrust for this axis to apply.
  | axisname | the name of the axis to apply thrust along.
  | id | is set to the id of the thrust request being applied.

virtual void iPcMechanicsThrusterController::CancelThrust | ( | uint32 | id | ) | `[pure virtual]`

Cancels specified thrust request.

Parameters:

  | id | the id of the thrust request to be cancelled.

virtual const csVector3 iPcMechanicsThrusterController::GetAxis | ( | const char * | name | ) | `[pure virtual]`

Get the axis of rotation or translation.

Parameters:

  | name | the name of the axis to query.

virtual float iPcMechanicsThrusterController::GetAxisMaxForce | ( | const char * | name | ) | `[pure virtual]`

Get the strength of the best thruster group in the given axis.

Parameters:

  | name | the name of the axis to check.

virtual float iPcMechanicsThrusterController::GetAxisMaxThrust | ( | const char * | name | ) | `[pure virtual]`

Get the amount of thrust needed to produce the maximum force in the given axis.

Parameters:

  | name | the name of the axis to check.

virtual const celAxisType iPcMechanicsThrusterController::GetAxisType | ( | const char * | name | ) | `[pure virtual]`

Get the type of the given axis.

Parameters:

  | name | the name of the axis to query.

virtual const float iPcMechanicsThrusterController::GetAxisVelocity | ( | const char * | name | ) | `[pure virtual]`

Get the current velocity in the given axis.

Parameters:

  | name | the name of the axis to query.

virtual iPcMechanicsObject* iPcMechanicsThrusterController::GetMechanicsObject | ( |  | ) | `[pure virtual]`

Get the associated mechanics object.

virtual void iPcMechanicsThrusterController::RemoveBalancedGroup | ( | const char * | grouptag,
|  | const char * | axisname |
| ) |  |  | `[pure virtual]`

Remove a thruster group from the specified axis.

Parameters:

  | grouptag | the tag of the group to remove.
  | axisname | the name of the axis to remove from.

virtual void iPcMechanicsThrusterController::SetMechanicsObject | ( | iPcMechanicsObject * | mechobj | ) | `[pure virtual]`

Set the mechanics object to affect.

This is required.

Parameters:

  | mechobj | the object this controller will affect.

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

- propclass/mechthruster.h