#include <camera.h>
Inheritance diagram for iCamera:
Public Methods | |
virtual iCamera* | Clone () const=0 |
Create a clone of this camera. | |
virtual int | GetFOV () const=0 |
Return the FOV (field of view) in pixels. | |
virtual float | GetInvFOV () const=0 |
Return the inverse flield of view (1/FOV) in pixels. | |
virtual float | GetFOVAngle () const=0 |
Return the FOV (field of view) in radians. | |
virtual void | SetFOV (int fov, int width)=0 |
Set the FOV in pixels. More... | |
virtual void | SetFOVAngle (float fov, int width)=0 |
Set the FOV in radians. More... | |
virtual float | GetShiftX () const=0 |
Set the X shift amount. More... | |
virtual float | GetShiftY () const=0 |
Set the Y shift amount. More... | |
virtual void | SetPerspectiveCenter (float x, float y)=0 |
Set the shift amount. More... | |
virtual csOrthoTransform& | GetTransform ()=0 |
Get the transform corresponding to this camera. More... | |
virtual const csOrthoTransform& | GetTransform () const=0 |
'const' version of GetTransform (). | |
virtual void | SetTransform (const csOrthoTransform &tr)=0 |
Set the transform corresponding to this camera. More... | |
virtual void | MoveWorld (const csVector3 &v, bool cd=true)=0 |
Moves the camera a relative amount in world coordinates. More... | |
virtual void | Move (const csVector3 &v, bool cd=true)=0 |
Moves the camera a relative amount in camera coordinates. | |
virtual void | MoveWorldUnrestricted (const csVector3 &v)=0 |
Moves the camera a relative amount in world coordinates, ignoring portals and walls. More... | |
virtual void | MoveUnrestricted (const csVector3 &v)=0 |
Moves the camera a relative amount in camera coordinates, ignoring portals and walls. More... | |
virtual iSector* | GetSector () const=0 |
Get the current sector. | |
virtual void | SetSector (iSector *)=0 |
Move to another sector. | |
virtual void | Correct (int n)=0 |
Eliminate roundoff error by snapping the camera orientation to a grid of density n. | |
virtual bool | IsMirrored () const=0 |
Return true if space is mirrored. | |
virtual void | SetMirrored (bool m)=0 |
Set mirrored state. | |
virtual iPolygon3D* | GetHit (csVector3 &v)=0 |
Check if there is a polygon in front of us in the direction defined by 'v' (world space coordinates). More... | |
virtual csPlane3* | GetFarPlane () const=0 |
Get the 3D far plane that should be used to clip all geometry. More... | |
virtual void | SetFarPlane (csPlane3 *fp)=0 |
Set the 3D far plane used to clip all geometry. More... | |
virtual long | GetCameraNumber () const=0 |
Get the camera number. More... | |
virtual void | Perspective (const csVector3 &v, csVector2 &p) const=0 |
Calculate perspective corrected point for this camera. | |
virtual void | InvPerspective (const csVector2 &p, float z, csVector3 &v) const=0 |
Calculate inverse perspective corrected point for this camera. | |
virtual void | OnlyPortals (bool hop)=0 |
If the hit-only-portals flag is true then only portals will be checked with the 'MoveWorld()' function. More... | |
virtual bool | GetOnlyPortals ()=0 |
Get the hit-only-portals flag. |
This class represents camera objects which can be used to render a world in the engine. A camera has the following properties:
|
Get the camera number. This number is changed for every new camera instance and it is also updated whenever the camera transformation changes. This number can be used to cache camera vertex arrays, for example. |
|
Get the 3D far plane that should be used to clip all geometry. If this function returns NULL no far clipping is required. Otherwise it must be used to clip the object before drawing. |
|
Check if there is a polygon in front of us in the direction defined by 'v' (world space coordinates). Return the nearest polygon. Note that this function will not check beyond 'v'. So only the vector between the current position of the camera and 'v' is checked. |
|
Set the X shift amount. The parameter specified the desired X coordinate on screen of the projection center of the camera. |
|
Set the Y shift amount. The parameter specified the desired Y coordinate on screen of the projection center of the camera. |
|
Get the transform corresponding to this camera. In this transform, 'other' is world space and 'this' is camera space. WARNING! It is illegal to directly assign to the given transform in order to modify it. To change the entire transform you have to use SetTransform(). Note that it is legal to modify the returned transform otherwise. Just do not assign to it. |
|
Moves the camera a relative amount in camera coordinates, ignoring portals and walls. This is used by the wireframe class. In general this is useful by any camera model that doesn't want to restrict its movement by portals and sector boundaries. |
|
Moves the camera a relative amount in world coordinates. If 'cd' is true then collision detection with objects and things inside the sector is active. Otherwise you can walk through objects (but portals will still be correctly checked). |
|
Moves the camera a relative amount in world coordinates, ignoring portals and walls. This is used by the wireframe class. In general this is useful by any camera model that doesn't want to restrict its movement by portals and sector boundaries. |
|
If the hit-only-portals flag is true then only portals will be checked with the 'MoveWorld()' function. This is a lot faster but it does mean that you will have to do collision detection with non-portal polygons using another technique. The default for this flag is true. |
|
Set the FOV in pixels. 'fov' is the desired FOV in pixels. 'width' is the display width, also in pixels. |
|
Set the FOV in radians. 'fov' is the desired FOV in radians. 'width' is the display width in pixels. |
|
Set the 3D far plane used to clip all geometry. If the pointer is NULL 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). |
|
Set the shift amount. The parameter specified the desired projection center of the camera on screen. |
|
Set the transform corresponding to this camera. In this transform, 'other' is world space and 'this' is camera space. |