OrientationSensor class
Represents an orientation sensor.
This sensor returns a rotation matrix and a Quaternion that can be used to adjust the user's perspective in a game application.
Syntax
var orientationSensor = Windows.Devices.Sensors.OrientationSensor;
Attributes
- DualApiPartitionAttribute()
- MarshalingBehaviorAttribute(Agile)
- StaticAttribute(Windows.Devices.Sensors.IOrientationSensorStatics, NTDDI_WIN8)
- ThreadingAttribute(Both)
- VersionAttribute(NTDDI_WIN8)
Members
The OrientationSensor class has these types of members:
Events
The OrientationSensor class has these events.
| Event | Description |
|---|---|
| ReadingChanged | Occurs each time the orientation sensor reports a new sensor reading. |
Methods
The OrientationSensor class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.
| Method | Description |
|---|---|
| GetCurrentReading | Gets the current sensor reading |
| GetDefault | Gets the default orientation sensor. |
Properties
The OrientationSensor class has these properties.
| Property | Access type | Description |
|---|---|---|
| Read-only | Gets the minimum report interval supported by the sensor. | |
| Read/write | Gets or sets the report interval supported by the sensor. |
Remarks
The following example demonstrates how a Windows Store app built with XAML and C# uses the GetDefault method to establish a connection to an orientation sensor. If no orientation sensor is found, the method will return a null value.
_sensor = OrientationSensor.GetDefault();
The following example demonstrates how a Windows Store app built with XAML registers a ReadingChanged event handler.
private void ScenarioEnable(object sender, RoutedEventArgs e) { if (_sensor != null) { // Establish the report interval _sensor.ReportInterval = _desiredReportInterval; Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged); _sensor.ReadingChanged += new TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs>(ReadingChanged); ScenarioEnableButton.IsEnabled = false; ScenarioDisableButton.IsEnabled = true; } else { rootPage.NotifyUser("No orientation sensor found", NotifyType.StatusMessage); } }
The following example shows the ReadingChanged event handler.
async private void ReadingChanged(object sender, OrientationSensorReadingChangedEventArgs e) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { OrientationSensorReading reading = e.Reading; // Quaternion values SensorQuaternion quaternion = reading.Quaternion; // get a reference to the object to avoid re-creating it for each access ScenarioOutput_X.Text = String.Format("{0,8:0.00000}", quaternion.X); ScenarioOutput_Y.Text = String.Format("{0,8:0.00000}", quaternion.Y); ScenarioOutput_Z.Text = String.Format("{0,8:0.00000}", quaternion.Z); ScenarioOutput_W.Text = String.Format("{0,8:0.00000}", quaternion.W); // Rotation Matrix values SensorRotationMatrix rotationMatrix = reading.RotationMatrix; ScenarioOutput_M11.Text = String.Format("{0,8:0.00000}", rotationMatrix.M11); ScenarioOutput_M12.Text = String.Format("{0,8:0.00000}", rotationMatrix.M12); ScenarioOutput_M13.Text = String.Format("{0,8:0.00000}", rotationMatrix.M13); ScenarioOutput_M21.Text = String.Format("{0,8:0.00000}", rotationMatrix.M21); ScenarioOutput_M22.Text = String.Format("{0,8:0.00000}", rotationMatrix.M22); ScenarioOutput_M23.Text = String.Format("{0,8:0.00000}", rotationMatrix.M23); ScenarioOutput_M31.Text = String.Format("{0,8:0.00000}", rotationMatrix.M31); ScenarioOutput_M32.Text = String.Format("{0,8:0.00000}", rotationMatrix.M32); ScenarioOutput_M33.Text = String.Format("{0,8:0.00000}", rotationMatrix.M33); }); }
Requirements
|
Minimum supported client | Windows 8 [Windows Store apps, desktop apps] |
|---|---|
|
Minimum supported server | Windows Server 2012 [Windows Store apps, desktop apps] |
|
Minimum supported phone | Windows Phone 8 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 2/25/2013
