public virtual unsafe Ray ContinueOnTargetHit(Ray direction, Vector3 hitNormal, float distance)
        {
            Ray *rayPtr1 = &direction;

            rayPtr1.origin += direction.direction * (distance + STRIKE_EPSILON);
            return(direction);
        }
        public virtual unsafe Ray Continue(Ray direction, float distance)
        {
            Ray *rayPtr1 = &direction;

            rayPtr1.origin += direction.direction * (distance + STRIKE_EPSILON);
            return(direction);
        }