WLT documentation has moved.

We are publishing both conceptual docs and API references on docs.microsoft.com. For conceptual docs, please visit our new landing page. For API references, please visit the Core WLT section of the dot net API explorer and related pages. Existing content will remain here but will not be updated further.

Search Results for

    Show / Hide Table of Contents

    Class OrienterThreeBody

    Derived class which supports computing implicit rotations in full 3-DOF (6-DOF w/ position).

    Inheritance
    Object
    Orienter
    OrienterThreeBody
    Implements
    IOrienter
    Inherited Members
    Orienter.actives
    Orienter.AlignmentManager
    Orienter.Register(IOrientable)
    Orienter.Unregister(IOrientable)
    Orienter.Reorient(FragmentId, IAlignmentManager)
    Orienter.AverageRotation(Orienter.WeightedRotation, Orienter.WeightedRotation)
    Namespace: Microsoft.MixedReality.WorldLocking.Core
    Assembly: cs.temp.dll.dll
    Syntax
    public class OrienterThreeBody : Orienter, IOrienter
    Remarks

    Whereas the base Orienter class uses the simplifying assumption of only adjusting yaw, that is rotation about the gravity vector Y-axis, the OrienterThreeBody computes an arbitrary 3-DOF rotation to align modeling space with the supplied physical reference points. Since at least three non-collinear points are necessary to compute such a rotation, until they are available, it falls back on a simplified computation. To summarize:

    1. Zero points - identity transform
    2. One point - position alignment only (identity rotation)
    3. All points collinear - yaw and pitch about the line, but no roll about the line.
    4. Non-collinear - 3-DOF alignment.

    Methods

    ComputeRotation(IOrientable, IOrientable)

    Compute yaw and pitch to align virtual line with physical.

    Declaration
    protected override Orienter.WeightedRotation ComputeRotation(IOrientable a, IOrientable b)
    Parameters
    Type Name Description
    IOrientable a

    First point

    IOrientable b

    Second point

    Returns
    Type Description
    Orienter.WeightedRotation

    Computed rotation weighted by inverse distance between points.

    Overrides
    Orienter.ComputeRotation(IOrientable, IOrientable)

    ComputeRotations()

    Override to compute rotations unconstrained as a rotation about the gravity vector, Y-axis.

    Declaration
    protected override bool ComputeRotations()
    Returns
    Type Description
    Boolean

    True on success.

    Overrides
    Orienter.ComputeRotations()
    Remarks

    It takes at least 3 non-collinear points to imply a rotation. If there are fewer than that, this reverts back to the behavior of computing a rotation which pitches to align points but doesn't introduce roll.

    Implements

    IOrienter
    In This Article
    Back to top Generated by DocFX