Free |
public class FreeCamera : BaseCamera, IMovableCamera, IFitIntoViewCamera
The FreeCamera type exposes the following members.
Name | Description | |
---|---|---|
FreeCamera | Initializes a new instance of the FreeCamera class |
Name | Description | |
---|---|---|
CameraPosition | Gets or sets the position of the camera. | |
RotationCenterPosition | Gets or sets a nullable Point3D that can specify a custom 3D position around which this FreeCamera is rotated. When RotationCenterPosition is set (not null) and this camera is rotated then the TargetPosition and CameraPosition are changed. | |
RotationUpAxis | Gets or sets a nullable Vector3D that can specify a custom rotation up axis that is used to when camera is rotated "horizontally" (e.g when user drags the mouse horizontally). When RotationUpAxis is not set (is null) then camera rotates around the current camera's UpDirection. This provides the standard free camera experience and is the default setting. | |
TargetPosition | Gets or sets the position where the camera is looking at and around which point the camera is being rotated. | |
UpDirection | Gets or sets a Vector3D that specifies the up direction of the camera. |
Name | Description | |
---|---|---|
BaseCreateFrom |
This method is called from CreateFrom method and actually sets the properties on this camera.
(Overrides BaseCameraBaseCreateFrom(Camera)) | |
FitIntoView(FitIntoViewType, Boolean, Double, Boolean) | FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or CameraWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that all the objects on the scene will be visible from one edge of the viewport to another edge. | |
FitIntoView(IListPoint3D, Boolean, Double, Boolean) | FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or CameraWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that all the specified positions will be visible from one edge of the viewport to another edge. | |
FitIntoView(Rect3D, Boolean, Double, Boolean) | FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or CameraWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that all the specified Rect3D will be visible from one edge of the viewport to another edge. | |
FitIntoView(IListVisual3D, FitIntoViewType, Boolean, Double, Boolean) | FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or CameraWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that all the objects on defined in list of Visual3D objects will be visible from one edge of the viewport to another edge. | |
GetFitIntoViewDistanceOrCameraWidth | GetFitIntoViewDistanceOrCameraWidth returns Distance (for PerspectiveCamera) or CameraWidth (for OrthographicCamera) and sets the newTargetPosition that will adjust the camera so that all the objects on the scene will be visible from one edge of the viewport to another edge. | |
GetNormalizedUpDirection | GetNormalizedUpDirection returns the normalized UpDirection vector. If the vector that is set to the UpDirection property is not perpendicular to the look direction, the returned up direction is corrected to be perpendicular. | |
GetNormalizedUpDirection(Vector3D, Vector3D) | GetNormalizedUpDirection returns the normalized UpDirection vector. If the specified upDirection is not perpendicular to the look direction, the returned up direction is corrected to be perpendicular. | |
GetRotatedCamera | GetRotatedCamera method calculates rotatedCameraPosition, rotatedTargetPosition and rotatedUpDirection based on the rotating the camera from the initial camera position and direction. | |
IsValid |
Gets a Boolean that specifies if the camera is valid (has TargetViewport3D that has a valid size; has valid values for all properties).
When camera is valid the Point3DTo2D(Point3D) returns correct value; when the camera is not valid, the Point3DTo2D method cannot calculate the 2D screen position.
(Overrides BaseCameraIsValid(Boolean)) | |
MoveBackward | Moves the camera backward (in the opposite as look direction) | |
MoveDown | Moves the camera down (in the opposite up direction) | |
MoveForward | Moves the camera forward (in the look direction) | |
MoveLeft | Moves the camera left (strafe) | |
MoveRight | Moves the camera right (strafe) | |
MoveUp | Moves the camera up (in the up direction) | |
OnIsValidChanged |
OnIsValidChanged is called on IsValidChanged event. The event is subscribed by calling SubscribeToIsValidChanged and unsubscribed by calling UnsubscribeFromIsValidChanged.
(Overrides BaseCameraOnIsValidChanged(Object, EventArgs)) | |
RotateCamera(Double, Double) |
Rotates the free camera for the specified heading and attitude.
When RotationCenterPosition is set, the camera rotates around RotationCenterPosition which changes the TargetPosition and CameraPosition.
(Overrides BaseCameraRotateCamera(Double, Double)) | |
RotateCamera(Double, Double, Double) | Rotates the free camera for the specified heading, attitude and bank. When RotationCenterPosition is set, the camera rotates around RotationCenterPosition which changes the TargetPosition and CameraPosition. | |
RotateCamera(Double, Double, Double, Int32, FuncDouble, Double, FreeCameraAnimationNodeFreeCameraAnimationTypes) | Rotates the free camera for the specified heading, attitude and bank. When RotationCenterPosition is set, the camera rotates around RotationCenterPosition which changes the TargetPosition and CameraPosition. When animationDurationInMilliseconds parameter is bigger then 0, then rotation is animated. | |
RotateTo(Point3D, Vector3D, Int32, FuncDouble, Double, FreeCameraAnimationNodeFreeCameraAnimationTypes) | Animates the CameraPosition and UpDirection to the targetCameraPosition and targetUpDirection. The rotation preserves the TargetPosition and the distance between CameraPosition and TargetPosition. The animation takes animationDurationInMilliseconds and uses easingFunction. By default (when animationType is SphericalInterpolation), the animation uses spherical interpolation instead of linear interpolation to come from the current to the target position. | |
RotateTo(Point3D, Point3D, Vector3D, Int32, FuncDouble, Double, FreeCameraAnimationNodeFreeCameraAnimationTypes) | Animates the CameraPosition, TargetPosition and UpDirection to the targetCameraPosition, targetTargetPosition and targetUpDirection. The animation takes animationDurationInMilliseconds and uses easingFunction. By default (when animationType is SphericalInterpolation), the animation uses spherical interpolation instead of linear interpolation to come from the current to the target position. | |
SetCameraPosition | SetCameraPosition method preserves the current TargetPosition and sets the CameraPosition and the UpDirection based on the specified heading, attitude, bank and distance values. | |
SetTargetPosition | SetTargetPosition method preserves the current CameraPosition and sets the TargetPosition and the UpDirection based on the specified heading, attitude, bank and distance values. | |
StrafeCamera | Calculates the moveVector based on the current camera's LookDirection and UpDirection | |
UpdateCamera |
Updates the ProjectionCamera
(Overrides BaseCameraUpdateCamera(ProjectionCamera)) |
Name | Description | |
---|---|---|
CameraPositionProperty | CameraPositionProperty | |
RotationCenterPositionProperty | RotationCenterPositionProperty | |
RotationUpAxisProperty | RotationUpAxisProperty | |
TargetPositionProperty | TargetPositionProperty | |
UpDirectionProperty | UpDirectionProperty |