private boolean objectSelection(FrameBuffer buffer) {
        PhysObject3D                obj;
        SimpleVector                objCenBuf;
        SimpleVector                objBound;
        SimpleVector                shiftCenObj;
        Enumeration<PhysObject3D>   objs = gameWorld.getWorld().getObjects();
        float radius;
        while (objs.hasMoreElements()) {
            obj = objs.nextElement();
            float fov = convertRADAngleIntoFOV(obj.getTransformedCenter().calcSub(getPosition()).calcAngle(getDirection()));
            if(fov <= cam.getMaxFOV()) {
                objCenBuf = Interact2D.projectCenter3D2D(buffer, obj);
                if((objCenBuf.x > 0 && objCenBuf.x < width) && (
                        objCenBuf.y > 0 && objCenBuf.y < height)) {
                    shiftCenObj = cam.getSideVector();
                    shiftCenObj.scalarMul(obj.getCharacteristicSize()[0]);
                    objBound = obj.getTransformedCenter().calcAdd(shiftCenObj);
                    radius = objCenBuf.calcSub(Interact2D.project3D2D(cam, buffer, objBound)).length();
                    if(objCenBuf.calcSub(new SimpleVector(mouseListener.getMouseX(),
                            mouseListener.getMouseY(), 0)).length() < radius) {
                        gameWorld.setSelectObject(obj);
                        return true;
                    }
                }
            }
        }
        return false;
    }