// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/tools/Assert.java
// public class Assert {
// 
//     public static void assertTrue(boolean condition) {
//         assertTrue("", condition);
//     }
//     public static void assertTrue(String text, boolean condition) {
//         if (!condition) {
//             doAssert(text);
//         }
//     }
//     public static void assertNotNull(Object object) {
//         assertNotNull("", object);
//     }
//     public static void assertNotNull(String text, Object object) {
//         if (object == null) {
//             doAssert(text);
//         }
//     }
// 
//     public static void assertEquals(Object object1, Object object2) {
//         if (object1 == null) {
//             if (object2 != null) {
//                 doAssert("");
//             }
//         } else {
//             if (object2 == null) {
//                 doAssert("");
//             } else {
//                 if (!object1.equals(object2)) {
//                     doAssert("");
//                 }
//             }
//         }
//     }
// 
//     private static void doAssert(String text) {
//         throw new RuntimeException(text);
//     }
// }


import fr.arnaudguyon.smartgl.tools.Assert;

//    }

    //@Override
    float getWidth() {
        return getRadius()*2;
    }

    //@Override
    float getHeight() {
        return getRadius()*2;
    }

    public float getRadius() {
        return mGlobalRadius * mOwner.getScaleX();
    }

    @Override
    public boolean collide(Collision otherCol) {
        if (! (otherCol instanceof CollisionCircle)) {
            return otherCol.collide(this);
        }
        final CollisionCircle other = (CollisionCircle) otherCol;
        final float squaredDistance = getSquaredDistanceToCenter(other);
        final float radiusSum = getRadius() + other.getRadius();
        return (squaredDistance < (radiusSum * radiusSum));
    }

   // @Override
    public boolean isInside(Collision otherCol) {
        if (! (otherCol instanceof CollisionCircle)) {

// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/tools/Assert.java
// public class Assert {
// 
//     public static void assertTrue(boolean condition) {
//         assertTrue("", condition);
//     }
//     public static void assertTrue(String text, boolean condition) {
//         if (!condition) {
//             doAssert(text);
//         }
//     }
//     public static void assertNotNull(Object object) {
//         assertNotNull("", object);
//     }
//     public static void assertNotNull(String text, Object object) {
//         if (object == null) {
//             doAssert(text);
//         }
//     }
// 
//     public static void assertEquals(Object object1, Object object2) {
//         if (object1 == null) {
//             if (object2 != null) {
//                 doAssert("");
//             }
//         } else {
//             if (object2 == null) {
//                 doAssert("");
//             } else {
//                 if (!object1.equals(object2)) {
//                     doAssert("");
//                 }
//             }
//         }
//     }
// 
//     private static void doAssert(String text) {
//         throw new RuntimeException(text);
//     }
// }


// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/opengl/CollisionCircle.java
import fr.arnaudguyon.smartgl.tools.Assert;

//    }

    //@Override
    float getWidth() {
        return getRadius()*2;
    }

    //@Override
    float getHeight() {
        return getRadius()*2;
    }

    public float getRadius() {
        return mGlobalRadius * mOwner.getScaleX();
    }

    @Override
    public boolean collide(Collision otherCol) {
        if (! (otherCol instanceof CollisionCircle)) {
            return otherCol.collide(this);
        }
        final CollisionCircle other = (CollisionCircle) otherCol;
        final float squaredDistance = getSquaredDistanceToCenter(other);
        final float radiusSum = getRadius() + other.getRadius();
        return (squaredDistance < (radiusSum * radiusSum));
    }

   // @Override
    public boolean isInside(Collision otherCol) {
        if (! (otherCol instanceof CollisionCircle)) {

            Assert.assertTrue(false);   // other kind of collision not handled yet
