// 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 android.util.Log;
import fr.arnaudguyon.smartgl.tools.Assert;

        //mOwner = owner;
        mLeftPercent = leftPercent;
        mTopPercent = topPercent;
        mRightPercent = rightPercent;
        mBottomPercent = bottomPercent;
    }

    private static boolean sWarned = false;
    @Override
    public void computePositionAndSize() {
        //Assert.assertTrue(mOwner.getRotation() == 0);   // rotation not handled
        if (mOwner.getRotation() != 0) {
            if (!sWarned) {
                Log.e(TAG, "CollisionRectangle cannot be rotated yet! " + mOwner);
                sWarned = true;
            }
        }

        mLeftPos = mOwner.getPosX() + ((mLeftPercent - mOwner.getPivotX()) * mOwner.getWidth());
        mTopPos = mOwner.getPosY() + ((mTopPercent - mOwner.getPivotY()) * mOwner.getHeight());

        mRightPos = mOwner.getPosX() + ((mRightPercent - mOwner.getPivotX()) * mOwner.getWidth());
        mBottomPos = mOwner.getPosY() + ((mBottomPercent - mOwner.getPivotY()) * mOwner.getHeight());
    }

    @Override
    public boolean collide(Collision otherCol) {
        if (otherCol instanceof CollisionCircle) {
            return collideWithCircle((CollisionCircle) otherCol);
        } else {

// 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/CollisionRectangle.java
import android.util.Log;
import fr.arnaudguyon.smartgl.tools.Assert;

        //mOwner = owner;
        mLeftPercent = leftPercent;
        mTopPercent = topPercent;
        mRightPercent = rightPercent;
        mBottomPercent = bottomPercent;
    }

    private static boolean sWarned = false;
    @Override
    public void computePositionAndSize() {
        //Assert.assertTrue(mOwner.getRotation() == 0);   // rotation not handled
        if (mOwner.getRotation() != 0) {
            if (!sWarned) {
                Log.e(TAG, "CollisionRectangle cannot be rotated yet! " + mOwner);
                sWarned = true;
            }
        }

        mLeftPos = mOwner.getPosX() + ((mLeftPercent - mOwner.getPivotX()) * mOwner.getWidth());
        mTopPos = mOwner.getPosY() + ((mTopPercent - mOwner.getPivotY()) * mOwner.getHeight());

        mRightPos = mOwner.getPosX() + ((mRightPercent - mOwner.getPivotX()) * mOwner.getWidth());
        mBottomPos = mOwner.getPosY() + ((mBottomPercent - mOwner.getPivotY()) * mOwner.getHeight());
    }

    @Override
    public boolean collide(Collision otherCol) {
        if (otherCol instanceof CollisionCircle) {
            return collideWithCircle((CollisionCircle) otherCol);
        } else {

            Assert.assertTrue(false);   // not handled yet
