+ data_[thing].pos = Point(x, y);
+ }
+
+ void add(T const * thing, Dimension const & dim)
+ {
+ if (!has(thing))
+ data_[thing].pos = Point(-10000, -10000);
+ data_[thing].dim = dim;
+ }
+
+ Geometry const & geometry(T const * thing) const
+ {
+ check(thing, "geometry");
+ return data_.find(thing)->second;
+ }
+
+ Dimension const & dim(T const * thing) const
+ {
+ checkDim(thing, "dim");
+ return data_.find(thing)->second.dim;