/// <inheritdoc/>
        public override float GetTimeOfImpact(CollisionObject objectA, Pose targetPoseA, CollisionObject objectB, Pose targetPoseB, float allowedPenetration)
        {
            // We can use conservative advancement because a plane is convex enough so it will work.
            switch (CollisionDetection.ContinuousCollisionDetectionMode)
            {
            case ContinuousCollisionDetectionMode.Full:
                return(CcdHelper.GetTimeOfImpactCA(objectA, targetPoseA, objectB, targetPoseB, allowedPenetration, CollisionDetection));

            default:
                return(CcdHelper.GetTimeOfImpactLinearCA(objectA, targetPoseA, objectB, targetPoseB, allowedPenetration, CollisionDetection));
            }
        }
 /// <inheritdoc/>
 public override float GetTimeOfImpact(CollisionObject objectA, Pose targetPoseA, CollisionObject objectB, Pose targetPoseB, float allowedPenetration)
 {
     // We can use conservative advancement because a plane is convex enough so it will work.
     // We use a linear test because usually planes do not rotate.
     return(CcdHelper.GetTimeOfImpactLinearCA(objectA, targetPoseA, objectB, targetPoseB, allowedPenetration, CollisionDetection));
 }