Table of Contents

Enum OrientationModes

Namespace
LightningChartLib.WinForms.Charting
Assembly
LightningChart.WinForms.Charting.NET4.dll

Camera orientation / rotation interpretation types, giving meaning for RotationX, RotationY and RotationZ settings and their calculation order, thus affecting camera position and orientation. See remarks for generic information on camera placement and orientation. See different enumeration values and OrientationMode property for more information on available options, their usage and effects.

public enum OrientationModes

Fields

XYZ_Mixed = 0

XYZ Mixed mode orientation interpretation.

Camera position is defined as X-Y extrinsic rotation and camera up direction by world Z-axis rotation.

This was the only available angle property interpretation used in LC up to version 8.3.

This interpretation has some problematic features and will be deprecated in the future. It's highly suggested to move using ZXY_Extrinsic interpretation. See Remarks for more information

ZXY_Extrinsic = 1

Remarks

Camera positioning / orientation

Camera orientation and position is controlled by multiple different properties.

Target Defines the location in world coordinates the camera looks at. This location will be at the center of the rendered image.
ViewDistance Distance of the camera from the Target in world coordinates.
<p>In effect defines how large an area is seen, together with <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.FieldOfViewAngle" data-throw-if-not-resolved="false"></xref>. 
Modified on zooming operations.</p></td></tr><tr><td class="term">
  <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationX" data-throw-if-not-resolved="false"></xref>, <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationY" data-throw-if-not-resolved="false"></xref> and
 <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationZ" data-throw-if-not-resolved="false"></xref></td><td class="description">Defines the orientation and thus in effect the position of the camera. 
 Effect of the properties varies based on selected <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.OrientationMode" data-throw-if-not-resolved="false"></xref>.</td></tr></tbody></table>

Rotation(XYZ) properties define the orientation of the camera. After this the camera is placed so that the Target is in the center of the view, at ViewDistance away of it.

User device based rotations

When user rotates camera using mouse or some other pointer device the orientation changes differently on different orientation modes. Especially horizontal rotation is done around a separate axis, that changes differently on different orientation modes. See different modes for detailed explanation on the rotation differences.
<p></p><h2>Terminology reference</h2>
Similar terminology as in <a href="https://en.wikipedia.org/wiki/Euler_angles">Wikipedia</a> is used in this documentation. 

<table><tbody><tr><td class="term">Intrinsic</td><td class="description">Defines orientation as rotations from starting orientation 
in specific order so that every rotations is done around 
previously rotated cameras axes, not the world axes. 
</td></tr><tr><td class="term">Extrinsic</td><td class="description">Defines orientation as rotations from starting orientation 
in specific order so that every rotations is done on original world axes, 
not the changed cameras axes. 
</td></tr><tr><td class="term">y-x'-z''</td><td class="description">Small letters indicate intrinsic rotations, at the order they are stated. 

<p>y' is the rotation around objects Y-axis, done first. </p><p>x' is the rotation around objects X-axis, after the first rotation. </p><p>z'' is the rotation around objects Z-axis, after the first two rotations. </p></td></tr><tr><td class="term">Z-X-Y</td><td class="description">Capital letters indicate extrinsic rotations, at the order they are stated. 
All rotations are done around matching world axes.</td></tr><tr><td class="term">Camera up direction</td><td class="description">The camera and it's position / orientation defines what is seen on the 
rendered view. Camera position / orientation is mostly defined by <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationX" data-throw-if-not-resolved="false"></xref> 
and <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationY" data-throw-if-not-resolved="false"></xref> properties, especially 
if <xref href="LightningChartLib.WinForms.Charting.Views.View3D.Camera3D.RotationZ" data-throw-if-not-resolved="false"></xref> is zero. Camera can however be rotated 
around it's looking direction, affecting the view. This orientation is 
defined by <i>camera up</i> vector, a vector that defines what way 
is up for the cameras view. 

<p>
There is no accessible property like this, but it's referenced as a 
concept. 
</p></td></tr><tr><td class="term">Horizontal rotation axis</td><td class="description">When camera is rotated by user device, like mouse, new 
camera orientation is calculated, affecting multiple of the rotation 
properties. Vertical rotation always affects the camera same way, 
rotating the view direction around current cameras right direction (X axis).

<p>
Horizontal rotation however has its own rotation axis defined. It's not 
directly readable or settable, but referenced on different parts
of documentation and automatically determined based on different 
orientation settings. Sometimes this is referenced as rotation up direction. 
</p></td></tr></tbody></table><h2>Extra information</h2><p>
For generic information on orientation definition through angles, see 
Wikipedia article on Euler and Tait-Bryan angles 
<a href="https://en.wikipedia.org/wiki/Euler_angles">https://en.wikipedia.org/wiki/Euler_angles</a>.
</p>