コード例 #1
0
        public void MotionExpansionSweepAabbTest()
        {
            // Test values.
            var linear  = new float2(2.0f, 3.0f);
            var uniform = 5.0f;
            var aabb    = new Aabb()
            {
                Min = new float2(-5.0f, -10.0f), Max = new float2(40.0f, 30.0f)
            };

            // Expectations.
            var expectedAabb = new Aabb
            {
                Min = math.min(aabb.Min, aabb.Min + linear) - uniform,
                Max = math.max(aabb.Max, aabb.Max + linear) + uniform
            };

            var motionExpansion = new MotionExpansion()
            {
                Linear  = linear,
                Uniform = uniform
            };

            var resultAabb = motionExpansion.ExpandAabb(aabb);

            Assert.AreEqual(expectedAabb.Min, resultAabb.Min);
            Assert.AreEqual(expectedAabb.Max, resultAabb.Max);
        }
コード例 #2
0
        public void MotionExpansionMaxDistanceTest()
        {
            var motionExpansion = new MotionExpansion()
            {
                Linear  = new float3(2.0f, 3.0f, 4.0f),
                Uniform = 5.0f
            };

            Assert.AreEqual(math.sqrt(29.0f) + 5.0f, motionExpansion.MaxDistance);
        }
コード例 #3
0
        public void MotionExpansionSweepAabbTest()
        {
            var motionExpansion = new MotionExpansion()
            {
                Linear  = new float3(2.0f, 3.0f, 4.0f),
                Uniform = 5.0f
            };
            var aabb = motionExpansion.ExpandAabb(new Aabb()
            {
                Min = new float3(-10.0f, -10.0f, -10.0f), Max = new float3(10.0f, 10.0f, 10.0f)
            });

            Assert.AreEqual(new float3(-15.0f, -15.0f, -15.0f), aabb.Min);
            Assert.AreEqual(new float3(17.0f, 18.0f, 19.0f), aabb.Max);
        }
コード例 #4
0
        public void MotionExpansionMaxDistanceTest()
        {
            // Test values.
            var linear  = new float2(2.0f, 3.0f);
            var uniform = 5.0f;

            // Expectations.
            var expectedMaxDistance = math.length(linear) + uniform;

            var motionExpansion = new MotionExpansion()
            {
                Linear  = linear,
                Uniform = uniform
            };

            Assert.AreEqual(expectedMaxDistance, motionExpansion.MaxDistance);
        }