namespace dk { template inline dk::Vector<2> get_diamond_coordinates (const dk::TileIterator& parIterator, const dk::Vector<2>& parSize) { typedef dk::Vector<2> vec; const auto from(parIterator.position()); const dk::CoordinateScalarType xoffs = from.y() % 2; return from * parSize + vec(xoffs * parSize.x() / 2, 0); } template inline dk::Vector<2> get_half_diamond_coordinates (const dk::TileIterator& parIterator, const dk::Vector<2>& parSize) { typedef dk::Vector<2> vec; return get_diamond_coordinates(parIterator, parSize / vec(1, 2)); } template inline dk::Vector get_square_coordinates (const dk::TileIterator& parIterator, const dk::Vector& parSize) { return parIterator.position() * parSize; } //template //inline //dk::Vector get_hex_coordinates (const dk::TileIterator& parIterator, const dk::Vector& parSize) { //} } //namespace dk