//template <typename FnOnVisit> void visitNeighboringPoints (const Point & point, const PointVisitorFn & visitorFn) const { visitorFn(getPointAbove(point)); visitorFn(getPointBelow(point)); visitorFn(getPointLeft(point)); visitorFn(getPointRight(point)); }
vector3df CSObject::getPointLeftAndAbove(float d, float u) { vector3df p = getPosition(); p -= d * getLeft(); p.Y = getPointAbove(u).Y; return p; };
vector3df CSObject::getPointInBackAndAbove(float d, float u) { vector3df p = getPointInBack(d); p.Y = getPointAbove(u).Y; return p; };