Ejemplo n.º 1
0
    void Start()
    {
        EnterNewSuite("Angles");
        Angle a = Angle.FromDegrees(20.0f);
        Angle b = Angle.FromDegrees(310.0f);

        TestEqual(Angle.GetLargerDistance(a, b).GetDegreesUnsigned(), 290.0f);
        TestEqual(Angle.GetSmallerDistance(b, a).GetDegreesUnsigned(), 70.0f);
        TestEqual(Angle.FromHeadingVector(1.0f, 0.0f).GetDegreesUnsigned(), 0.0f);
        TestEqual(Angle.FromHeadingVector(0.0f, 1.0f).GetDegreesUnsigned(), 90.0f);
        TestEqual(Angle.FromHeadingVector(-1.0f, 0.0f).GetDegreesUnsigned(), 180.0f);
        TestEqual(Angle.FromHeadingVector(0.0f, -1.0f).GetDegreesUnsigned(), 270.0f);
        Test(Angle.FromDegrees(30.0f).IsCoterminal(Angle.FromDegrees(-330.0f)));
        Test(Angle.FromDegrees(30.0f).IsCoterminal(Angle.FromDegrees(390.0f)));

        EnterNewSuite("Generics");
        TestEqual(UtilGeneric.Add <int, int, int>(5, 7), 12);
        Vector3 start    = new Vector3(1, 0, 0);
        Vector3 end      = new Vector3(16, 0, 0);
        Vector3 velocity = new Vector3(5, 0, 0);

        TestEqual(UtilVelocity.GetVelocity(start, end, 3.0f), velocity);
        TestEqual(UtilVelocity.GetFuturePosition(2.0f, 3.0f, 6.0f), 20.0f);
    }
Ejemplo n.º 2
0
    // Gets the predicted position of an object with a given start position and velocity after a
    // given number of seconds. Does not take potential collisions or external forces into account.
    public static T GetFuturePosition <T>(T startPos, T velocity, float seconds)
    {
        T distanceTraveled = UtilGeneric.Multiply <T, float, T>(velocity, seconds);

        return(UtilGeneric.Add <T, T, T>(startPos, distanceTraveled));
    }