![]() | |
MouseCameraController Class |
Namespace: Ab3d.Controls
public class MouseCameraController : BaseControllerControl
The MouseCameraController type exposes the following members.
Name | Description | |
---|---|---|
![]() | MouseCameraController |
Constructor
|
Name | Description | |
---|---|---|
![]() | ClosedHandCursor |
Gets a predefined cursor that shows a closed hand.
|
![]() | EventsSourceElement |
Gets or sets the element where the mouse events are subscribed.
If the property is not set, Viewport3D element on the TargetCamera is used as event source.
|
![]() | EventsSourceElementName |
Gets or sets the name of the element where the mouse events are subscribed.
|
![]() | EventsSourceElementRotationChange |
Gets or sets a double value that specifies for how many degrees the camera is rotates when the mouse moves from one side of the EventsSourceElement to another size. The 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 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 StartRotation(Double, Double) method.
|
![]() | IsConcurrentTouchZoomEnabled |
Gets or sets a boolean that specifies if scaling with pinch while rotating the camera with touch is enabled (requires .Net 4 version of Ab3d.PowerToys to work). Default value is true.
|
![]() | 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
|
![]() | IsRotateCursorShownOnMouseOver |
Gets or sets a boolean that specifies if RotationCursor is shown if UsedMouseButton is set to Left and mouse is over the EventsSourceElement. Default value is true.
|
![]() | IsRotationDirectionAdjusted |
Gets or sets Boolean that specifies if rotation direction is based on current mouse position and attitude angle.
When false (by default), moving the mouse to the right always increases the heading regardless of mouse position and attitude angle.
When true, the rotation direction is based on the current mouse position in the 3D scene and current attitude angle.
|
![]() | IsTouchEnabled |
Gets a boolean that specifies if any of IsTouchRotateEnabled or IsTouchMoveEnabled or IsTouchZoomEnabled is enabled.
|
![]() | IsTouchMoveEnabled |
Gets or sets a boolean that specifies if moving the camera with touch is enabled (requires .Net 4 version of Ab3d.PowerToys to work). Default value is false.
|
![]() | IsTouchRotateEnabled |
Gets or sets a boolean that specifies if rotating the camera with touch is enabled (requires .Net 4 version of Ab3d.PowerToys to work). Default value is true.
|
![]() | IsTouchZoomEnabled |
Gets or sets a boolean that specifies if zooming the camera with multi-touch pinch is enabled (requires .Net 4 version of Ab3d.PowerToys to work). 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 double value that when set to a value that is not double.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 double.NaN.
|
![]() | MouseMoveThreshold |
Gets or sets a double 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 (by default), then rotation, movement or quick zoom are started immediately when the correct mouse buttons and keyboard modifiers are pressed (no mouse movement needed).
|
![]() | MouseWheelDistanceChangeFactor |
Gets or sets a double 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.
|
![]() ![]() | MoveCameraConditions |
Gets or sets conditions from MouseAndKeyboardConditions enum that must be met to move the camera. Default value is MouseAndKeyboardConditions.RightMouseButtonPressed and MouseAndKeyboardConditions.AltKey.
|
![]() | MovementCursor |
Gets or sets a Cursor that is used when the mouse is moving the Ab3d.Camera.
|
![]() | MoveOnlyHorizontally |
When true he camera moving is restricted only to horizontal (XZ) plane. This means that the camera cannot be moved up and down.
Default value is false that moves the camera based on the current look and up direction.
|
![]() | OpenedHandCursor |
Gets a predefined cursor that shows an open hand.
|
![]() | QuickZoomConditions |
Gets or sets conditions from MouseCameraControllerMouseAndKeyboardConditions enum that must be met to start quick zooming -
quickly zooming and and out with moving the mouse forward and backward.
Default value is MouseAndKeyboardConditions.Disabled.
|
![]() | QuickZoomCursor |
Gets or sets a Cursor that is used when user is using quick zooming.
Default value is Cursors.ScrollNS.
|
![]() | QuickZoomMaxFactorScreenDistance |
QuickZoomZoomOutFactor is used when QuickZoomConditions 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 QuickZoomConditions 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 QuickZoomConditions 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.
|
![]() | 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.
|
![]() ![]() | RotateCameraConditions |
Gets or sets conditions from MouseAndKeyboardConditions enum that must be met to rotate the camera. Default value is MouseAndKeyboardConditions.RightMouseButtonPressed.
|
![]() | RotateCursorLeft |
Gets a predefined cursor that can be used while rotating the camera with the mouse.
|
![]() | RotateCursorRight |
Gets a predefined cursor that can be used while rotating the camera with the mouse. This is the default cursor that is used by the MouseCameraController.
|
![]() | RotationCenterAdorner |
Gets or sets a CameraTargetPositionAdorner that is used to show the position around which the camera is rotating.
This adorner is shown only when ShowRotationCenterMarker is set to true. When this property is not set, a new instance of CameraTargetPositionAdorner is used.
|
![]() | RotationCursor |
Gets or sets a Cursor that is used when the mouse is rotating the Ab3d.Camera.
|
![]() | RotationEasingFunction |
Gets or sets a delegate that specifies the easing functions used to calculate the rotation inertia.
|
![]() | RotationInertiaRatio |
Gets or sets a double that specifies how strong the camera rotation inertial is.
When set to 0 (or negative value), camera does not have any inertia.
Default value is 1. Values bigger than 1, increase the time it takes to stop the camera.
|
![]() | ShowQuickZoomMarker |
Gets or sets a Boolean that specifies if RotationCenterAdorner is shown at the position that represents the quick zoom target on the 2D screen.
Default value is true.
|
![]() | ShowRotationCenterMarker |
Gets or sets a Boolean that specifies if RotationCenterAdorner is shown at the position around which the camera is rotating.
If RotationCenterAdorner is not specified, a new instance of CameraTargetPositionAdorner is created and set to the RotationCenterAdorner property.
Default value is false.
|
![]() | UsedMouseButton | Obsolete.
Gets or sets a MouseButton that specifies on which mouse button will be used to rotate and move the camera. Default value is Right mouse button.
UsedMouseButton is obsolete. Please use the RotateCameraConditions and the MoveCameraConditions properties instead.
|
![]() | 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 MouseCameraControllerCameraZoomMode enum that specifies the location into which camera is zoomed.
Note that MousePosition and CameraRotationCenterPosition work only for TargetPositionCamera and FreeCamera.
Default value is Viewport3DCenter.
|
Name | Description | |
---|---|---|
![]() | ChangeCameraDistance |
ChangeCameraDistance method change the distance of the TargetCamera by multiplying it by the changeFactor.
When RotationCenterPosition is set in the TargetPositionCamera or FreeCamera, then we zoom into the specified RotationCenterPosition (if this is not disabled by setting the zoomToRotationCenterPosition parameters to false).
|
![]() ![]() | CubicEaseOut |
Simple cubic easing function used to decelerate the rotation: y = (x - 1) * (x - 1) * (x - 1) + 1x
|
![]() | EndMouseProcessing |
EndMouseProcessing is called when the mouse button that started rotation or movement is released.
|
![]() | GetEventsSourceElementSize |
GetEventsSourceElementSize returns size of EventsSourceElement.
This method can be overridden to provide custom size (for example when used with SharpDX.RenderForm)
|
![]() | GetIsHeadingAngleChangeInverted |
GetIsHeadingAngleChangeInverted returns true if mouse position is in such location that we need to invert the heading rotation direction.
|
![]() | GetManipulationActions |
GetManipulationActions method gets the ManipulationDeltaEventArgs and based on that sets which actions should be performed by MouseCameraController.
This method can be overridden to specify custom behavior with touch events.
|
![]() | GetRotationCenterPositionFromMousePosition |
GetRotationPivotPointFromMousePosition methods returns a Point3D that is get by 3D hit testing of specified mousePosition with the 3D objects defined in the Viewport3D.
If no 3D object is hit and calculatePositionWhenNoObjectIsHit parameter is set to true, then the returned Point3D is calculated with creating a ray from mouse position and advancing in the ray direction for the distance from camera's position and camera target position.
The method is called when the RotateAroundMousePosition property is true.
The method can be overridden to provide custom logic to get rotation pivot point.
|
![]() | HideRotationAdorner |
HideRotationAdorner hides the shown RotationCenterAdorner.
|
![]() | IsKeyboardConditionTrue |
IsKeyboardConditionTrue returns true when the correct keyboard modifier is pressed according to the specified conditions (only keyboard part of the conditions are checked).
|
![]() | IsMouseButtonsConditionTrue |
IsMouseButtonsConditionTrue returns true when the correct mouse button is pressed according to the specified conditions (only mouse part of the conditions are checked; keyboard part is checked in IsKeyboardConditionTrue).
|
![]() | LoadRotateCursor |
LoadRotateCursor loads the rotate cursor from assembly resources
|
![]() | MoveCamera |
Moves the camera for the mouse change defined by mouseDx and mouseDy parameters.
|
![]() | OnCameraMoveEnded |
Fires CameraMoveEnded event
|
![]() | OnCameraMoveStarted |
Fires CameraMoveStarted event
|
![]() | OnCameraQuickZoomEnded |
Fires CameraQuickZoomEnded event
|
![]() | OnCameraQuickZoomStarted |
Fires CameraQuickZoomStarted event
|
![]() | OnCameraRotateEnded |
Fires CameraRotateEnded event
|
![]() | OnCameraRotateStarted |
Fires OnCameraRotateStarted event
|
![]() | OnManipulationCompleted |
OnManipulationCompleted is called when touch event is completed. This method starts rotation easing or resumes the suspended camera rotation.
Users can override the method but it is highly recommended to call this method from the overridden method.
|
![]() | OnManipulationDelta |
OnManipulationDelta handles the manipulation events. The method can be overridden.
|
![]() | OnManipulationStarted |
OnManipulationStarted is called when the touch event is started.
Users can override the method but it is highly recommended to call this method from the overridden method.
|
![]() | OnMouseButtonDown |
OnMouseButtonDown processes mouse down event.
|
![]() | OnMouseButtonUp |
OnMouseButtonUp processes mouse up event.
|
![]() | OnMouseMove |
OnMouseMove processes mouse move event.
|
![]() | OnMouseWheel |
OnMouseWheel processes mouse wheel event.
|
![]() | OnTargetCameraChanged |
virtual OnTargetCameraChanged
(Overrides BaseControllerControlOnTargetCameraChanged(BaseCamera, BaseCamera).) |
![]() | ProcessMouseMove(Double, Double, MouseEventArgs) |
ProcessMouseMove handles mouse moves and calls the RotateCamera or the MoveCamera method based on the MouseCameraController settings and pressed modifier keys.
The method can be overridden to move the camera based on some custom logic.
|
![]() | ProcessMouseMove(Double, Double, Point, Boolean, Boolean, Boolean, ModifierKeys) |
ProcessMouseMove handles mouse moves and calls the RotateCamera or the MoveCamera method based on the MouseCameraController settings and pressed modifier keys.
The method can be overridden to move the camera based on some custom logic.
|
![]() ![]() | QuadraticEaseOut |
Simple quadratic easing function used to decelerate the rotation: y = -1 * x * x + 2 * x
|
![]() | QuickZoomCamera |
Quickly zooms the camera for the mouse change defined by mouseDx and mouseDy parameters.
|
![]() | RotateCamera |
RotateCamera method rotates the camera for the mouse change defined by mouseDx and mouseDy parameters.
The method can be overridden in a derived class to provide custom camera rotation implementation.
|
![]() | ShowRotationAdorner |
ShowRotationAdorner method shows the RotationCenterAdorner at the specified rotationCenterPosition.
The method can be overridden to show some other shape when rotation is started (you also need to override the HideRotationAdorner method.
|
![]() | StartMouseProcessing(Point) |
StartMouseProcessing is called when the correct mouse button and keyboard is pressed to start rotating or moving the camera.
|
![]() | StartMouseProcessing(Point, Boolean, Boolean, Boolean, ModifierKeys) |
StartMouseProcessing is called when the correct mouse button and keyboard is pressed to start rotating or moving the camera.
|
![]() | SubscribeEvents |
SubscribeEvents method subscribe mouse events to the newEventsSourceElement. The method can be overridden.
|
![]() | UnsubscribeEvents |
UnsubscribeEvents unsubscribes from the mouse events on the subscribedEventsSourceElement.
|
![]() | UpdateEnabled |
UpdateEnabled method checks the Target Camera's IsEnabled property and enable or disable this controller.
(Overrides BaseControllerControlUpdateEnabled.) |
Name | Description | |
---|---|---|
![]() | CameraMoveEnded |
CameraMoveEnded is fired when the camera movement has ended.
|
![]() | CameraMoveStarted |
CameraMoveStarted is fired when the camera movement is started.
|
![]() | CameraQuickZoomEnded |
CameraQuickZoomEnded is fired when the camera quick zoom has ended.
|
![]() | CameraQuickZoomStarted |
CameraQuickZoomStarted is fired when the camera quick zoom is started.
|
![]() | CameraRotateEnded |
CameraRotateEnded is fired when the camera rotation has ended.
|
![]() | CameraRotateStarted |
CameraRotateStarted is fired when the camera rotation is started.
|
Name | Description | |
---|---|---|
![]() ![]() | EventsSourceElementNameProperty |
EventsSourceElementNameProperty
|
![]() ![]() | EventsSourceElementProperty |
EventsSourceElementProperty
|
![]() ![]() | EventsSourceElementRotationChangeProperty |
EventsSourceElementRotationChangeProperty
|
![]() ![]() | IsAttitudeRotationEnabledProperty |
IsAttitudeRotationEnabledProperty
|
![]() ![]() | IsConcurrentTouchZoomEnabledProperty |
IsConcurrentTouchZoomEnabledProperty
|
![]() ![]() | IsHeadingRotationEnabledProperty |
IsHeadingRotationEnabledProperty
|
![]() ![]() | IsMouseWheelZoomEnabledProperty |
IsMouseWheelZoomEnabledProperty
|
![]() ![]() | IsRotateCursorShownOnMouseOverProperty |
IsRotateCursorShownOnMouseOverProperty
|
![]() ![]() | IsRotationDirectionAdjustedProperty |
IsRotationDirectionAdjustedProperty
|
![]() ![]() | IsTouchMoveEnabledProperty |
IsMoveEnabledProperty
|
![]() ![]() | IsTouchRotateEnabledProperty |
IsTouchRotateEnabledProperty
|
![]() ![]() | IsTouchZoomEnabledProperty |
IsTouchZoomEnabledProperty
|
![]() ![]() | IsXAxisInvertedProperty |
IsYAxisInvertedProperty
|
![]() ![]() | IsXMovementEnabledProperty |
IsXMovementEnabledProperty
|
![]() ![]() | IsYAxisInvertedProperty |
IsYAxisInvertedProperty
|
![]() ![]() | IsYMovementEnabledProperty |
IsYMovementEnabledProperty
|
![]() ![]() | MaxCameraDistanceProperty |
MaxCameraDistanceProperty
|
![]() ![]() | MouseMoveThresholdProperty |
MouseMoveThresholdProperty
|
![]() ![]() | MouseWheelDistanceChangeFactorProperty |
MouseWheelDistanceChangeFactorProperty
|
![]() ![]() | MoveCameraConditionsProperty |
MoveCameraConditionsProperty
|
![]() ![]() | MoveOnlyHorizontallyProperty |
MoveOnlyHorizontallyProperty
|
![]() ![]() | QuickZoomConditionsProperty |
QuickZoomConditionsProperty
|
![]() ![]() | QuickZoomMaxFactorScreenDistanceProperty |
QuickZoomMaxFactorScreenDistanceProperty
|
![]() ![]() | QuickZoomMaxZoomInFactorProperty |
QuickZoomMaxZoomInFactorProperty
|
![]() ![]() | QuickZoomZoomOutFactorProperty |
QuickZoomZoomOutFactorProperty
|
![]() ![]() | RotateAroundMousePositionProperty |
RotateAroundMousePositionProperty
|
![]() ![]() | RotateCameraConditionsProperty |
RotateCameraConditionsProperty
|
![]() ![]() | RotationCenterAdornerProperty |
RotationCenterAdornerProperty
|
![]() ![]() | ShowQuickZoomMarkerProperty |
ShowQuickZoomMarkerProperty
|
![]() ![]() | ShowRotationCenterMarkerProperty |
ShowRotationCenterMarkerProperty
|
![]() | subscribedEventsSourceElement |
FrameworkElement that is used to subscribe to mouse events
|
![]() ![]() | UsedMouseButtonProperty |
UsedMouseButtonProperty
|
![]() | UseDXEngineHitTesting |
UseDXEngineHitTesting specifies if DXEngine's hit testing is used when the Viewport3D is rendered with DXEngine.
Hit testing in MouseCameraController is used when RotateAroundMousePosition property is set to true and determines the center of rotation.
Default value is true, but if you set UseDXEngineHitTesting to false, then WPF hit testing is used even when rendered with DXEngine.
|
![]() ![]() | UseMousePositionForMovementSpeedProperty |
UseMousePositionForMovementSpeedProperty
|
![]() ![]() | ZoomModeProperty |
ZoomToMousePositionProperty
|