| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

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

# iCameraPosition Struct Reference
[Views & Cameras]

A camera position. More...

`#include <iengine/campos.h>`

Inheritance diagram for iCameraPosition:

[legend]
List of all members.

## Public Member Functions
virtual void | ClearFarPlane ()=0
| Clear the far plane so no clipping will occur.
virtual iCameraPosition * | Clone () const =0
| Create a clone this camera position.
virtual csPlane3 * | GetFarPlane () const =0
| Get the current far plane (or 0 if none is defined).
virtual const csVector3 & | GetForwardVector ()=0
| Return the 'front' vector.
virtual const csVector3 & | GetPosition ()=0
| Return the position.
virtual const char * | GetSector ()=0
| Return the home sector.
virtual const csVector3 & | GetUpwardVector ()=0
| Return the 'up' vector.
virtual bool | Load (iCamera *, iEngine *)=0
| Load the camera position into a camera object.
virtual iObject * | QueryObject ()=0
| Get the iObject for this camera position.
virtual void | Set (const char *sector, const csVector3 &pos, const csVector3 &forward, const csVector3 &upward)=0
| Set all attributes of the camera position.
virtual void | SetFarPlane (csPlane3 *pl)=0
| Set the 3D far plane used to clip all geometry.
virtual void | SetForwardVector (const csVector3 &v)=0
| Set the 'front' vector.
virtual void | SetPosition (const csVector3 &p)=0
| Set the position.
virtual void | SetSector (const char *Name)=0
| Set the home sector.
virtual void | SetUpwardVector (const csVector3 &v)=0
| Set the 'up' vector.

## Detailed Description

A camera position.

This object can be used to initialize a camera object to a certain state. It has the following properties:

- Home sector name: This name is used to find the home sector of the camera in the engine when the camera position is applied.
- Position: Position of the camera
- Upward and forward vectors: These vectors define the orientation of the camera. More exactly, they are used to compute the transformation of the camera.
- A far plane used to clip geometry which is too far away.

Main creators of instances implementing this interface:

- iCameraPositionList::NewCameraPosition()

Main ways to get pointers to this interface:

- iCameraPositionList::Get()
- iCameraPositionList::FindByName()

Main users of this interface:

- Engine stores them.
- Application uses them.

Definition at line 60 of file campos.h.

## Member Function Documentation

virtual void iCameraPosition::ClearFarPlane | ( |  | ) | `[pure virtual]`

Clear the far plane so no clipping will occur.

This is equivalent to SetFarPlane(0).

virtual iCameraPosition* iCameraPosition::Clone | ( |  | ) | const`[pure virtual]`

Create a clone this camera position.

virtual csPlane3* iCameraPosition::GetFarPlane | ( |  | ) | const`[pure virtual]`

Get the current far plane (or 0 if none is defined).

virtual const csVector3& iCameraPosition::GetForwardVector | ( |  | ) | `[pure virtual]`

Return the 'front' vector.

virtual const csVector3& iCameraPosition::GetPosition | ( |  | ) | `[pure virtual]`

Return the position.

virtual const char* iCameraPosition::GetSector | ( |  | ) | `[pure virtual]`

Return the home sector.

virtual const csVector3& iCameraPosition::GetUpwardVector | ( |  | ) | `[pure virtual]`

Return the 'up' vector.

virtual bool iCameraPosition::Load | ( | iCamera * | ,
|  | iEngine * |  |
| ) |  |  | `[pure virtual]`

Load the camera position into a camera object.

virtual iObject* iCameraPosition::QueryObject | ( |  | ) | `[pure virtual]`

Get the iObject for this camera position.

virtual void iCameraPosition::Set | ( | const char * | sector,
|  | const csVector3 & | pos,
|  | const csVector3 & | forward,
|  | const csVector3 & | upward |
| ) |  |  | `[pure virtual]`

Set all attributes of the camera position.

virtual void iCameraPosition::SetFarPlane | ( | csPlane3 * | pl | ) | `[pure virtual]`

Set the 3D far plane used to clip all geometry.

If the pointer is 0 then far plane clipping will be disabled. Otherwise it will be enabled and the plane will be copied (so you can free or reuse the pointer you give here). Note that the far-plane will cull away geometry which is on the negative side of the plane (with csPlane3::Classify() function).

virtual void iCameraPosition::SetForwardVector | ( | const csVector3 & | v | ) | `[pure virtual]`

Set the 'front' vector.

virtual void iCameraPosition::SetPosition | ( | const csVector3 & | p | ) | `[pure virtual]`

Set the position.

virtual void iCameraPosition::SetSector | ( | const char * | Name | ) | `[pure virtual]`

Set the home sector.

virtual void iCameraPosition::SetUpwardVector | ( | const csVector3 & | v | ) | `[pure virtual]`

Set the 'up' vector.

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

- iengine/campos.h