Click or drag to resize
Ab4d.SharpEngine logo

TargetPositionCameraFitIntoView(SceneNode, FitIntoViewType, Boolean, Single, Boolean) Method

FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or ViewWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that the specified sceneNode (or all child SceneNodes if sceneNode is GroupNode) will be visible from one edge of the SceneView to another edge.

Namespace: Ab4d.SharpEngine.Cameras
Assembly: Ab4d.SharpEngine (in Ab4d.SharpEngine.dll) Version: 2.0.8956+4c7684e186ca1be74e7a284fbe739d9a1b843d3c
Syntax
C#
public bool FitIntoView(
	SceneNode sceneNode,
	FitIntoViewType fitIntoViewType = FitIntoViewType.CheckAllPositions,
	bool adjustTargetPosition = true,
	float adjustmentFactor = 1f,
	bool waitUntilCameraIsValid = true
)

Parameters

sceneNode  SceneNode
SceneNode (can be also a GroupNode) that will be checked and fit into the view
fitIntoViewType  FitIntoViewType  (Optional)
type of check (default value is CheckAllPositions)
adjustTargetPosition  Boolean  (Optional)
true if the TargetPosition is adjusted; false if TargetPosition is preserved (default value is true)
adjustmentFactor  Single  (Optional)
factor that is multiplied by the calculated Distance or ViewWidth. Can be used to add margin to the bounds - for example value 1.1 would add 10% margin. Default value is 1.0 (no margin).
waitUntilCameraIsValid  Boolean  (Optional)
 

Return Value

Boolean
true if camera was changed; false when camera is not valid (see waitUntilSceneViewSizeIsValid parameter for more info)

Implements

IFitIntoViewCameraFitIntoView(SceneNode, FitIntoViewType, Boolean, Single, Boolean)
Remarks

FitIntoView adjusts the camera's Distance (for PerspectiveCamera) or ViewWidth (for OrthographicCamera) and TargetPosition (if adjustTargetPosition is true) so that the specified sceneNode (or all child SceneNodes if sceneNode is GroupNode) will be visible from one edge of the SceneView to another edge.

When fitIntoViewType is set to the CheckAllPositions, then the method checks each position of the models. This is more precise than CheckBounds but can take much longer when there are objects with a lot of position in the scene. In this cases it is recommended to use the CheckBounds settings.

The adjustmentFactor parameter can be used to set the margin around the scene objects. Its value is multiplied by the calculated Distance or CameraWidth. For example, value 1.1 adds 10% margin around scene objects.

When using OrthographicCamera, the returned CameraWidth and the new TargetPosition will exactly position the object to the bounds of the SceneView. When using PerspectiveCamera there might be some smaller margins (empty space) on one or the other side of the SceneView.

To set fit into view for only part of the scene, you can use the FitIntoView(SceneNode, FitIntoViewType, Boolean, Single, Boolean) overloaded method that also takes a SceneNode as a parameter (SceneNode can be a GroupNode).

To get the calculated Distance or CameraWidth and new TargetPosition without changing the current camera, you can use the GetFitIntoViewDistanceOrViewWidth(SceneNode, FitIntoViewType, Boolean, Vector3) or GetFitIntoViewDistanceOrViewWidth(Vector3, FitIntoViewType, Boolean, Vector3) methods.

See Also