public static void updateBoundingBox(final WorldAxisAlignedBoundingBox theWorldAxisAlignedBoundingBox,
                                         final Vector3f[] myVectors) {

        if (myVectors == null || myVectors.length == 0) {
            return;
        }

        /* get minimum and maximum */
        _myTempMin.set(myVectors[0]);
        _myTempMax.set(myVectors[0]);

        for (int i = 1; i < myVectors.length; i++) {
            /* minimum */
            if (_myTempMin.x > myVectors[i].x) {
                _myTempMin.x = myVectors[i].x;
            }
            if (_myTempMin.y > myVectors[i].y) {
                _myTempMin.y = myVectors[i].y;
            }
            if (_myTempMin.z > myVectors[i].z) {
                _myTempMin.z = myVectors[i].z;
            }
            /* maximum */
            if (_myTempMax.x < myVectors[i].x) {
                _myTempMax.x = myVectors[i].x;
            }
            if (_myTempMax.y < myVectors[i].y) {
                _myTempMax.y = myVectors[i].y;
            }
            if (_myTempMax.z < myVectors[i].z) {
                _myTempMax.z = myVectors[i].z;
            }
        }

        /* create world aligned boundingbox */
        /* bb position */
        theWorldAxisAlignedBoundingBox.position.sub(_myTempMax, _myTempMin);
        theWorldAxisAlignedBoundingBox.position.scale(0.5f);
        theWorldAxisAlignedBoundingBox.position.add(_myTempMin);
        /* bb scale */
        theWorldAxisAlignedBoundingBox.scale.sub(_myTempMax, _myTempMin);
        theWorldAxisAlignedBoundingBox.scale.x = Math.abs(theWorldAxisAlignedBoundingBox.scale.x);
        theWorldAxisAlignedBoundingBox.scale.y = Math.abs(theWorldAxisAlignedBoundingBox.scale.y);
        theWorldAxisAlignedBoundingBox.scale.z = Math.abs(theWorldAxisAlignedBoundingBox.scale.z);
    }