コード例 #1
0
 /// <summary>
 /// Create, initialize, and report the raycast.
 /// </summary>
 public RaycastHit4(Ray4 ray, float distance, Vector4 normal, int hash)
 {
     this.ray      = ray;
     this.distance = distance;
     this.normal   = normal;
     this.hash     = hash;
 }
コード例 #2
0
        public void TestRayConstructor()
        {
            var origin    = Vector4.CreatePosition(1, 2, 3);
            var direction = Vector4.CreateDirection(4, 5, 6);
            var r         = new Ray4(origin, direction);

            Assert.Equal(origin, r.Origin);
            Assert.Equal(direction, r.Direction);
        }
コード例 #3
0
        public void TestScaleRay()
        {
            var r  = new Ray4(Vector4.CreatePosition(1, 2, 3), Vector4.CreateDirection(0, 1, 0));
            var t  = Transform.Scale(2, 3, 4);
            var r2 = t * r;

            Assert.Equal(Vector4.CreatePosition(2, 6, 12), r2.Origin);
            Assert.Equal(Vector4.CreateDirection(0, 3, 0), r2.Direction);
        }
コード例 #4
0
        public void TestTranslateRay()
        {
            var r  = new Ray4(Vector4.CreatePosition(1, 2, 3), Vector4.CreateDirection(0, 1, 0));
            var t  = Transform.Translate(3, 4, 5);
            var r2 = t * r;

            Assert.Equal(Vector4.CreatePosition(4, 6, 8), r2.Origin);
            Assert.Equal(Vector4.CreateDirection(0, 1, 0), r2.Direction);
        }
コード例 #5
0
        public void TestComputePointFromDistance()
        {
            var r = new Ray4(Vector4.CreatePosition(2, 3, 4), Vector4.CreateDirection(1, 0, 0));

            Assert.Equal(Vector4.CreatePosition(2, 3, 4), r[0]);
            Assert.Equal(Vector4.CreatePosition(3, 3, 4), r[1]);
            Assert.Equal(Vector4.CreatePosition(1, 3, 4), r[-1]);
            Assert.Equal(Vector4.CreatePosition(4.5, 3, 4), r[2.5]);
        }
コード例 #6
0
 /// <summary>
 /// Create and initialize the raycast.
 /// </summary>
 public RaycastHit4(Ray4 ray) : this()
 {
     this.ray = ray;
 }
コード例 #7
0
        /// <summary>
        /// Globally cast raycast and return report
        /// </summary>
        /// <param name="ray"></param>
        /// <returns></returns>
        public static RaycastHit4 Raycast(Ray4 ray)
        {
            RaycastHit4 hit = new RaycastHit4(ray);

            return(main.scene.QueryRaycast(hit));
        }