OmegaEngine API  1.0.3
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events
Public Member Functions | Protected Member Functions | Properties | List of all members
OmegaEngine.Graphics.Cameras.StrategyCamera Class Reference

A RTS-style camera with a rotateable horizontal view and an automatic vertical angle. More...

Inheritance diagram for OmegaEngine.Graphics.Cameras.StrategyCamera:
OmegaEngine.Graphics.Cameras.MatrixCamera OmegaEngine.Graphics.Cameras.Camera OmegaEngine.IPositionable

Public Member Functions

 StrategyCamera (double minRadius, double maxRadius, float minAngle, float maxAngle, Func< DoubleVector3, double > heightController)
 Creates a new strategy camera. More...
 
override void PerspectiveChange (float panX, float panY, float rotation, float zoom)
 Called when the user changes the view perspective.
Parameters
panXThe number of pixels panned along the X-axis divided by the number of pixels of the longest side of the viewport.
panYThe number of pixels panned along the Y-axis divided by the number of pixels of the longest side of the viewport.
rotationHorizontal rotation in degrees.
zoomScaling factor; 1 for no change, must not be 0.

 
- Public Member Functions inherited from OmegaEngine.Graphics.Cameras.Camera
override string ToString ()
 

Protected Member Functions

override void UpdateView ()
 Update cached versions of View and related matrices. More...
 
- Protected Member Functions inherited from OmegaEngine.Graphics.Cameras.Camera
void CacheSpecialMatrices ()
 Calculate cached versions of special matrices (e.g. ViewInverse calculated from View) More...
 
virtual void UpdateProjection ()
 Update Projection if necessary More...
 

Properties

override DoubleVector3 Target [get, set]
 The position the camera is looking at. More...
 
double Radius [get, set]
 The distance between the camera and the center of the focues object. More...
 
float HorizontalRotation [get, set]
 The horizontal rotation in degrees. More...
 
double MinRadius [get, set]
 The minimum radius allowed. More...
 
double MaxRadius [get, set]
 The maximum radius allowed. More...
 
float MinAngle [get, set]
 The minimum vertical angle in degrees. Effective when Radius is equal to MinRadius. More...
 
float MaxAngle [get, set]
 The maximum vertical angle in degrees. Effective when Radius is equal to MaxRadius. More...
 
- Properties inherited from OmegaEngine.Graphics.Cameras.MatrixCamera
virtual DoubleVector3 Target [get, set]
 The position the camera is looking at. More...
 
Vector3 UpVector [get, set]
 A vector indicating the up-direction More...
 
- Properties inherited from OmegaEngine.Graphics.Cameras.Camera
string Name [get, set]
 Text value to make it easier to identify a particular camera More...
 
DoubleVector3 Position [get, set]
 The camera's position in 3D-space More...
 
DoubleVector3 PositionBase [get, set]
 A value that is subtracted from all positions (including the Camera's) before handing them to the graphics hardware More...
 
Matrix View [get]
 A left-handed view matrix for the current camera setting More...
 
Matrix SimpleView [get]
 A left-handed view matrix with absolutely no translation information More...
 
Matrix ViewInverse [get]
 An inverted view matrix for the current camera setting More...
 
Matrix ViewTranspose [get]
 A transposed view matrix for the current camera setting More...
 
Matrix ViewInverseTranspose [get]
 An inverted and transposed view matrix for the current camera setting More...
 
Matrix SphericalBillboard [get]
 A rotation matrix for a faked spherical billboard effect More...
 
Matrix CylindricalBillboard [get]
 A rotation matrix for a faked cylindrical billboard effect More...
 
Size Size [get, set]
 The size of the output (i.e. screen size) More...
 
float FieldOfView [get, set]
 The view angle in degrees More...
 
float NearClip [get, set]
 Minimum distance of objects to the camera More...
 
float FarClip [get, set]
 Maximum distance of objects to the camera More...
 
DoublePlane ClipPlane [get, set]
 A custom clip plane behind which all objects are culled More...
 
Plane EffectiveClipPlane [get]
 The effective clip plane to use for rendering More...
 
Matrix Projection [get]
 A projection matrix for the current camera setting More...
 
Matrix SimpleProjection [get]
 A projection matrix overriding the clip planes (defaulting to near=1 and far=10) More...
 
Matrix ProjectionInverse [get]
 An inverted projection matrix for the current camera setting More...
 
Matrix ProjectionTranspose [get]
 A transposed projection matrix for the current camera setting More...
 
Matrix ProjectionInverseTranspose [get]
 An inverted and transposed projection matrix for the current camera setting More...
 
Matrix ViewProjection [get]
 A view-projection matrix for the current camera setting More...
 
Matrix ViewProjectionInverse [get]
 An inverted view-projection matrix for the current camera setting More...
 
Matrix ViewProjectionTranspose [get]
 A transposed view-projection matrix for the current camera setting More...
 
Matrix ViewProjectionInverseTranspose [get]
 An inverted and transposed view-projection matrix for the current camera setting More...
 
bool FrustumCulling [get, set]
 Shall the engine use view frustum culling to optimize the rendering performance? More...
 
- Properties inherited from OmegaEngine.IPositionable
DoubleVector3 Position [get, set]
 The object's position More...
 

Additional Inherited Members

- Protected Attributes inherited from OmegaEngine.Graphics.Cameras.Camera
bool ViewDirty = true
 Does ViewCached need to be recalculated? More...
 
bool ProjectionDirty = true
 Does _projection need to be recalculated? More...
 
bool ViewFrustumDirty = true
 Does the view frustum need to be recalculated? More...
 
DoubleVector3 PositionCached
 
DoubleVector3 PositionBaseCached
 
Matrix ViewCached
 
Matrix SimpleViewCached
 
- Package Functions inherited from OmegaEngine.Graphics.Cameras.Camera
bool InFrustum (BoundingSphere boundingSphere)
 Checks whether a BoundingSphere is inside the camera's view frustum More...
 
bool InFrustum (BoundingBox boundingBox)
 Checks whether a BoundingBox is inside the camera's view frustum More...
 

Detailed Description

A RTS-style camera with a rotateable horizontal view and an automatic vertical angle.

Constructor & Destructor Documentation

OmegaEngine.Graphics.Cameras.StrategyCamera.StrategyCamera ( double  minRadius,
double  maxRadius,
float  minAngle,
float  maxAngle,
Func< DoubleVector3, double >  heightController 
)
inline

Creates a new strategy camera.

Parameters
minRadiusThe minimum radius allowed. Also used as the initial radius
maxRadiusThe maximum radius allowed.
minAngleThe minimum vertical angle in degrees. Effective when Radius is equal to MinRadius.
maxAngleThe maximum vertical angle in degrees. Effective when Radius is equal to MaxRadius.
heightControllerThis delegate is called to control the minimum height of the strategy camera based on its 2D coordinates.

Member Function Documentation

override void OmegaEngine.Graphics.Cameras.StrategyCamera.UpdateView ( )
inlineprotectedvirtual

Update cached versions of View and related matrices.

Reimplemented from OmegaEngine.Graphics.Cameras.MatrixCamera.

Property Documentation

float OmegaEngine.Graphics.Cameras.StrategyCamera.HorizontalRotation
getset

The horizontal rotation in degrees.

Must be a real number.

float OmegaEngine.Graphics.Cameras.StrategyCamera.MaxAngle
getset

The maximum vertical angle in degrees. Effective when Radius is equal to MaxRadius.

Must be a real number.

double OmegaEngine.Graphics.Cameras.StrategyCamera.MaxRadius
getset

The maximum radius allowed.

Must be a positive real number.

float OmegaEngine.Graphics.Cameras.StrategyCamera.MinAngle
getset

The minimum vertical angle in degrees. Effective when Radius is equal to MinRadius.

Must be a real number.

double OmegaEngine.Graphics.Cameras.StrategyCamera.MinRadius
getset

The minimum radius allowed.

Must be a positive real number.

double OmegaEngine.Graphics.Cameras.StrategyCamera.Radius
getset

The distance between the camera and the center of the focues object.

Must be a positiv real number.

override DoubleVector3 OmegaEngine.Graphics.Cameras.StrategyCamera.Target
getset

The position the camera is looking at.

Exceptions
ArgumentOutOfRangeExceptionThe coordinates lie outside the range of the height-controlling terrain.

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