Ejemplo n.º 1
0
        public bool HasCollision(Vector3 RayPosition, Vector3 RayDirection)
        {
            CollisionResults Results = new CollisionResults();

            for (int i = 0; i < CollisionBuffer.Length; i += 3)
            {
                if (CollisionUtil.Intersect(CollisionBuffer[i] + Position, CollisionBuffer[i + 1] + Position, CollisionBuffer[i + 2] + Position, RayPosition, RayDirection))
                {
                    Vector3 CollisionPoint = CollisionUtil.GetCollisionPoint(CollisionBuffer[i] + Position, CollisionBuffer[i + 1] + Position, CollisionBuffer[i + 2] + Position, RayPosition, RayDirection);

                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        public CollisionResults CollideWith(Vector3 RayPosition, Vector3 RayDirection)
        {
            CollisionResults Results = new CollisionResults();

            for (int i = 0; i < CollisionBuffer.Length; i += 3)
            {
                if (CollisionUtil.Intersect(CollisionBuffer[i] + Position, CollisionBuffer[i + 1] + Position, CollisionBuffer[i + 2] + Position, RayPosition, RayDirection))
                {
                    Vector3 CollisionPoint = CollisionUtil.GetCollisionPoint(CollisionBuffer[i] + Position, CollisionBuffer[i + 1] + Position, CollisionBuffer[i + 2] + Position, RayPosition, RayDirection);

                    CollisionResult Result = new CollisionResult(
                        Name,
                        CollisionBuffer[i],
                        CollisionBuffer[i + 1],
                        CollisionBuffer[i + 2],
                        Position,
                        CollisionPoint
                        );

                    Results.Add(Result);
                }
            }
            return(Results);
        }
Ejemplo n.º 3
0
 public void AddRange(CollisionResults NewResults)
 {
     Results.AddRange(NewResults.Results);
     Count   = Results.Count();
     Results = Results.OrderBy(x => x.Distance).ToList();
 }