Click or drag to resize
Ab4d.SharpEngine logo

MatrixCamera Class

MatrixCamera is a simple camera that is defined by the View and Projection matrices. The user must manually set the View and properties. It is also recommended to set the camera's position by calling the SetCameraPosition(Vector3) method (this prevents calling invert on view matrix when the GetCameraPosition is called).
Inheritance Hierarchy
SystemObject
  Ab4d.SharpEngine.CamerasMatrixCamera

Namespace: Ab4d.SharpEngine.Cameras
Assembly: Ab4d.SharpEngine (in Ab4d.SharpEngine.dll) Version: 2.0.8956+4c7684e186ca1be74e7a284fbe739d9a1b843d3c
Syntax
C#
public class MatrixCamera : ICamera

The MatrixCamera type exposes the following members.

Constructors
 NameDescription
Public methodMatrixCamera(String) Constructor
Public methodMatrixCamera(Matrix4x4, Matrix4x4) Constructor
Top
Properties
 NameDescription
Public propertyAspectRatio Gets or sets the camera's aspect ration - calculated as viewport's width / height.
Public propertyFarPlaneDistance Gets or sets a value that specifies the distance from the camera of the camera's far clip plane.
Public propertyName Gets the name of the camera
Public propertyNearPlaneDistance Gets or sets a value that specifies the distance from the camera of the camera's near clip plane.
Public propertyProjection Gets or sets the camera's projection matrix.
Public propertyProjectionType Gets type of projection (Perspective or Orthographic)
Public propertySceneView Gets or sets the SceneView that this camera belong to.
Public propertyVersion Gets the version number of this Camera. Version is increased each time the camera is changed. This can be used to check if the camera was changed between two points in time. Note: When camera is changed a lot of times, the Version value can overflow from positive to negative numbers (to prevent problems do not check for bigger value but for not equal value)
Public propertyView Gets or sets the camera's view matrix.
Top
Methods
 NameDescription
Public methodGetCameraMatrices GetCameraMatrices method gets the camera's view and projection matrices.
Public methodGetCameraPlaneOrientation GetCameraPlaneOrientation gets plane's normal, width and height vectors that can be used to orient the plane 3D model so that it is aligned with the camera view.
Public methodGetCameraPosition Gets the camera's position. The position is calculating with inverting the view matrix and extracting the values from 4th row. The invert operation can be skipped with calling SetCameraPosition(Vector3) method.
Public methodGetLookDirection Returns the normalized look direction of the camera.
Public methodGetUpDirection Returns the normalized up direction of the camera.
Public methodGetViewProjectionMatrix Gets a precalculated View * Projection matrix.
Protected methodOnCameraChanged OnCameraChanged is called when the camera is changed and triggers the CameraChanged event.
Public methodRotateCamera Rotates the camera for the specified heading and attitude.
Public methodSerializeToJson SerializeToJson serializes the specified camera into a json string. The returned string starts with assembly qualified camera type name. The serialized json can be converted to a camera by calling static DeserializeJson(String) method.
Public methodSetCameraPosition Sets camera's position. If camera's position is set by calling this method, then this prevents calling invert on view matrix when the GetCameraPosition is called. This method should be called after setting View matrix.
Public methodUpdate Update method updates the camera matrices when needed (when there were any change in the camera properties) or when forceMatrixUpdate is set to true.
Public methodUpdateAnimations UpdateAnimations method updates the camera's rotation when it is animated.
Top
Events
 NameDescription
Public eventCameraChanged CameraChanged event occurs after the camera was changed.
Top
See Also