bool Scene::initialize()
{
	bool res = true;
	for (unsigned int i = 0; i < num_geometries(); i++)
		res &= geometries[i]->initialize();
	return res;
}
    box2d<double> envelope() const
    {
	box2d<double> result;
	for (unsigned i=0;i<num_geometries();++i)
	{
	    geometry2d const& geom = get_geometry(i);
	    if (i==0)
	    {
		box2d<double> box = geom.envelope();
		result.init(box.minx(),box.miny(),box.maxx(),box.maxy());
	    }
	    else
	    {
		result.expand_to_include(geom.envelope());
	    }
	}
	return result;
    }