diff options
Diffstat (limited to 'src/mbgl/geometry/collision_box_buffer.cpp')
-rw-r--r-- | src/mbgl/geometry/collision_box_buffer.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mbgl/geometry/collision_box_buffer.cpp b/src/mbgl/geometry/collision_box_buffer.cpp new file mode 100644 index 0000000000..050a999db8 --- /dev/null +++ b/src/mbgl/geometry/collision_box_buffer.cpp @@ -0,0 +1,27 @@ +#include <mbgl/geometry/collision_box_buffer.hpp> +#include <mbgl/platform/gl.hpp> +#include <mbgl/util/math.hpp> + +#include <cmath> + +namespace mbgl { + +size_t CollisionBoxVertexBuffer::add(int16_t x, int16_t y, float ox, float oy, float maxzoom, float placementZoom) { + const size_t idx = index(); + void *data = addElement(); + + int16_t *shorts = static_cast<int16_t *>(data); + shorts[0] /* pos */ = x; + shorts[1] /* pos */ = y; + shorts[2] /* offset */ = std::round(ox); // use 1/64 pixels for placement + shorts[3] /* offset */ = std::round(oy); + + uint8_t *ubytes = static_cast<uint8_t *>(data); + // a_data1 + ubytes[8] = maxzoom * 10; + ubytes[9] = placementZoom * 10; + + return idx; +} + +} |