/// <summary>
 /// Raycasts penetrating any shape the ray encounters.
 /// Filtering by CollisionGroup
 /// </summary>
 /// <param name="from">From.</param>
 /// <param name="to">To.</param>
 /// <param name="resultsOutput">The list to fill with results.</param>
 /// <param name="collisionFilterGroups">The collision group of this shape sweep</param>
 /// <param name="collisionFilterGroupFlags">The collision group that this shape sweep can collide with</param>
 public void RaycastPenetrating(Vector3 from, Vector3 to, IList<HitResult> resultsOutput, CollisionFilterGroups collisionFilterGroups, CollisionFilterGroupFlags collisionFilterGroupFlags)
 {
     using (var rcb = new XenkoAllHitsRayResultCallback(ref from, ref to, resultsOutput)
     {
         CollisionFilterGroup = (short)collisionFilterGroups,
         CollisionFilterMask = (short)collisionFilterGroupFlags
     })
     {
         collisionWorld.RayTest(ref from, ref to, rcb);
     }
 }
 /// <summary>
 /// Raycasts penetrating any shape the ray encounters.
 /// </summary>
 /// <param name="from">From.</param>
 /// <param name="to">To.</param>
 /// <param name="resultsOutput">The list to fill with results.</param>
 public void RaycastPenetrating(Vector3 from, Vector3 to, IList<HitResult> resultsOutput)
 {
     using (var rcb = new XenkoAllHitsRayResultCallback(ref from, ref to, resultsOutput))
     {
         collisionWorld.RayTest(ref from, ref to, rcb);
     }
 }