示例#1
0
        public void LocalRotateForwardToSideTest()
        {
            var f = new Vector3(0, 0, 1);
            var s = new Vector3(-1, 0, 0);

            Assert.AreEqual(s, LocalSpaceBasisHelpers.LocalRotateForwardToSide(null, f));
        }
示例#2
0
        public void RegenerateOrthonormalBasisTest()
        {
            var f = Vector3.UnitZ * 2;
            var u = Vector3.UnitY;

            Vector3 s;

            LocalSpaceBasisHelpers.RegenerateOrthonormalBasis(f, u, out f, out s, out u);

            Assert.AreEqual(Vector3.UnitZ, f);
            Assert.AreEqual(u, Vector3.UnitY);
            Assert.AreEqual(Vector3.Cross(f, u), s);
        }
示例#3
0
 public LocalSpace(Matrix4x4 transformation)
 {
     LocalSpaceBasisHelpers.FromMatrix(transformation, out ForwardField, out SideField, out UpField, out PositionField);
 }
示例#4
0
 // for supplying both a new forward and and new up
 public void RegenerateOrthonormalBasis(Vector3 newForward, Vector3 newUp)
 {
     LocalSpaceBasisHelpers.RegenerateOrthonormalBasis(newForward, newUp, out ForwardField, out SideField, out UpField);
 }
示例#5
0
 // ------------------------------------------------------------------------
 // regenerate the orthonormal basis vectors given a new forward
 //(which is expected to have unit length)
 public void RegenerateOrthonormalBasisUF(Vector3 newUnitForward)
 {
     LocalSpaceBasisHelpers.RegenerateOrthonormalBasisUF(newUnitForward, out ForwardField, out SideField, ref UpField);
 }
示例#6
0
 // ------------------------------------------------------------------------
 // set "side" basis vector to normalized cross product of forward and up
 public void SetUnitSideFromForwardAndUp()
 {
     LocalSpaceBasisHelpers.SetUnitSideFromForwardAndUp(ref ForwardField, out SideField, ref UpField);
 }
示例#7
0
 // ------------------------------------------------------------------------
 // reset transform: set local space to its identity state, equivalent to a
 // 4x4 homogeneous transform like this:
 //
 //     [ X 0 0 0 ]
 //     [ 0 1 0 0 ]
 //     [ 0 0 1 0 ]
 //     [ 0 0 0 1 ]
 //
 // where X is 1 for a left-handed system and -1 for a right-handed system.
 public void ResetLocalSpace()
 {
     LocalSpaceBasisHelpers.ResetLocalSpace(out ForwardField, out SideField, out UpField, out PositionField);
 }