|
CameraController Class |
CameraController is an abstract class that provides the basic code for mouse or touch camera controller for camera rotation, movement and quick zoom.
Usually this class is used by the platform specific MouseCameraController that is defined in per-platform assembly (for example Ab4d.SharpEngine.Wpf, Ab4d.SharpEngine.WinUI, Ab4d.SharpEngine.AvaloniaUI).
The class can be also used by the
ManualMouseCameraController to manually provide mouse events.
Inheritance Hierarchy Namespace: Ab4d.SharpEngine.UtilitiesAssembly: Ab4d.SharpEngine (in Ab4d.SharpEngine.dll) Version: 1.0.8740+deb2991acfe86a95cca780cd4f82bcae2805c1a5
Syntax public abstract class CameraController
The CameraController type exposes the following members.
Constructors Properties | Name | Description |
---|
| Camera |
Gets the camera from the used SceneView.
|
| CaptureMouseAction | |
| EventsSourceElementRotationChange |
Gets or sets a float value that specifies for how many degrees the camera is rotates when the mouse moves from one side of theSceneView to another size.
Default value is 270.
|
| IsAttitudeRotationEnabled |
Gets or sets a Boolean that specifies if attitude rotation (around x axis) is enabled. Default value is true.
|
| IsCameraAnimationStoppedOnUserAction |
Gets or sets a boolean that specifies if camera animation that is running with [!:Cameras.Camera.AnimationController] is stopped if user start rotating or moving the camera with mouse or touch.
If false then animation is not stopped and this prevents user from rotating or moving the camera with mouse or touch. Default value is true.
This value does not have any effect on camera rotation that is started with [!:Cameras.Camera.StartRotation(double, double)] method.
|
| IsEnabled |
True when the camera controller is enabled
|
| IsHeadingRotationEnabled |
Gets or sets a Boolean that specifies if heading rotation (when changing the mouse in x direction) is enabled. Default value is true.
|
| IsMouseWheelZoomEnabled |
Gets or sets if zooming (moving camera forward and backward) by mouse wheel is enabled. Default value is true.
|
| IsXAxisInverted |
Gets or sets if x axis (heading) is inverted. Default value is false.
|
| IsXMovementEnabled |
Gets or sets a Boolean that specifies if movement the mouse in x direction is processed by this MouseCameraController. Default value is true.
|
| IsYAxisInverted |
Gets or sets if y axis (attitude) is inverted. Default value is false.
|
| IsYMovementEnabled |
Gets or sets a Boolean that specifies if movement the mouse in y direction is processed by this MouseCameraController. Default value is true.
|
| MaxCameraDistance |
Gets or sets a float value that when set to a value that is not float.NaN, than it specifies the maximum Distance of the camera or the maximum CameraWidth when OrthographicCamera is used.
This property can be set to a reasonable number to prevent float imprecision when the camera distance is very big. Default value is float.NaN.
|
| MouseMoveThreshold |
Gets or sets a float value that specifies how much user needs to move the mouse before rotation, movement or quick zoom are started.
Until mouse is moved for the specified amount, the MouseCameraController does not handle mouse events so they can be get for other processing (for example to handle mouse click).
When 0, then rotation, movement or quick zoom are started immediately when the correct mouse buttons and keyboard modifiers are pressed (no mouse movement needed).
Default value is 2.
|
| MouseWheelDistanceChangeFactor |
Gets or sets a float value that specifies a value that used when zooming with mouse wheel.
When zooming out the Camera's Distance or CameraWidth is multiplied with this value.
When zooming in the Camera's Distance or CameraWidth is divided with this value.
Default value is 1.05. Bigger value increases the speed of zooming with mouse wheel. The value should be bigger then 1.
|
| QuickZoomMaxFactorScreenDistance |
QuickZoomZoomOutFactor is used when QuickZoom are satisfied and defines the zoom out speed.
The QuickZoomMaxFactorScreenDistance defines how much the mouse needs to travel in the forward or backward direction to reach the QuickZoomMaxZoomInFactor or QuickZoomZoomOutFactor.
Default value is 200.
|
| QuickZoomMaxZoomInFactor |
QuickZoomMaxZoomInFactor is used when QuickZoom are satisfied and defines the maximum zoom in factor.
The maximum zoom in factor is reached when the user moves the mouse for the QuickZoomMaxFactorScreenDistance distance in the forward direction.
If user moves the mouse farther away the zooming is not performed any more. Default value is 20 and means that the max zoom in factor is 20x - the Camera.Distance will be reduced to its 0.05 (1/20) initial value.
|
| QuickZoomZoomOutFactor |
QuickZoomZoomOutFactor is used when QuickZoom are satisfied and defines the zoom out speed.
The property defines the zoom out factor that is used when the mouse travels for the QuickZoomMaxFactorScreenDistance amount in the backwards mouse direction.
Zoom out does not stop at this zoom factor as with zooming in (see QuickZoomMaxZoomInFactor).
Default value is 10 and means that the zoom out factor is 10x - the Camera.Distance will be increased to 10 times its initial value after the mouse moves for the QuickZoomMaxFactorScreenDistance amount in the backwards mouse direction.
|
| ReleaseMouseCaptureAction | |
| RotateAroundMousePosition |
Gets or sets a Boolean that specifies if TargetPositionCamera or FreeCamera is rotated around a 3D position that is "behind" current mouse position.
When RotateAroundMousePosition is true and user starts cameras rotation, MouseCameraController sets the TargetPositionCamera.RotationCenterPosition or FreeCamera.RotationCenterPosition property.
Default value is false.
|
| SceneView |
SceneView that is used by this CameraController
|
| UseMousePositionForMovementSpeed |
When true then the camera movement speed is determined by the distance to the 3D object behind the mouse.
When no 3D object is behind the mouse or when UseMousePositionForMovementSpeed is set to false, then movement speed is determined by the distance from the camera to the TargetPosition is used.
Default value is true.
|
| ZoomMode |
Gets or sets a value from a CameraZoomMode enum that specifies the location into which camera is zoomed.
Note that MousePosition and CameraRotationCenterPosition work only for TargetPositionCamera and FreeCamera.
Default value is ViewCenter.
|
TopMethods Events Fields See Also