G* class interface extension
There is performance problem with the class structure of G* (Model, Entity and friends). These classes don't differentiate based on whether they have to construct their neighbours (return by copy) or just provide a read only view (const&), but handle it all through one function
std::vector<> faces() const;.
Is it possible to change this or add an additional method? There are lots of vector copies just to read the values (say from GEdge).