6#include "qml_material/scenegraph/mesh/quad.hpp"
8namespace qml_material::sg::mesh
35template<
class Vertex,
class CornerFillFn>
36void build_nine_patch(Vertex* v, QVector2D size, QVector4D radius, CornerFillFn corner_fill) {
43 const cell corners[4] = {
44 { { 0.0f, 0.0f }, { radius[0], radius[0] } },
45 { { size.x() - radius[1], 0.0f }, { radius[1], radius[1] } },
46 { { 0.0f, size.y() - radius[2] }, { radius[2], radius[2] } },
47 { { size.x() - radius[3], size.y() - radius[3] }, { radius[3], radius[3] } },
50 for (
int i = 0; i < 4; ++i) {
51 corner_fill(v + u * i, i, corners[i].origin, corners[i].size);
57 quad(v + u * 4, v[5], v[u + 0], v[4], v[u + 2]);
58 quad(v + u * 5, v[u * 2 + 1], v[u * 3 + 0], v[u * 2 + 4], v[u * 3 + 2]);
59 quad(v + u * 6, v[3], v[4], v[u * 2 + 0], v[u * 2 + 1]);
60 quad(v + u * 7, v[u + 2], v[u + 4], v[u * 3 + 0], v[u * 3 + 1]);
61 quad(v + u * 8, v[4], v[u + 2], v[u * 2 + 1], v[u * 3 + 0]);