1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

transformNodeBox(): Replace BOXESPUSHBACK macro with a lambda

This commit is contained in:
Desour 2025-01-07 12:57:27 +01:00 committed by DS
parent cbc074feb5
commit 1e81c454c8

View file

@ -419,57 +419,47 @@ void transformNodeBox(const MapNode &n, const NodeBox &nodebox,
boxes.reserve(boxes_size); boxes.reserve(boxes_size);
#define BOXESPUSHBACK(c) \ auto boxes_insert = [&](const std::vector<aabb3f> &boxes_src) {
for (std::vector<aabb3f>::const_iterator \ boxes.insert(boxes.end(), boxes_src.begin(), boxes_src.end());
it = (c).begin(); \ };
it != (c).end(); ++it) \
(boxes).push_back(*it);
BOXESPUSHBACK(nodebox.fixed); boxes_insert(nodebox.fixed);
if (neighbors & 1) { if (neighbors & 1)
BOXESPUSHBACK(c.connect_top); boxes_insert(c.connect_top);
} else { else
BOXESPUSHBACK(c.disconnected_top); boxes_insert(c.disconnected_top);
}
if (neighbors & 2) { if (neighbors & 2)
BOXESPUSHBACK(c.connect_bottom); boxes_insert(c.connect_bottom);
} else { else
BOXESPUSHBACK(c.disconnected_bottom); boxes_insert(c.disconnected_bottom);
}
if (neighbors & 4) { if (neighbors & 4)
BOXESPUSHBACK(c.connect_front); boxes_insert(c.connect_front);
} else { else
BOXESPUSHBACK(c.disconnected_front); boxes_insert(c.disconnected_front);
}
if (neighbors & 8) { if (neighbors & 8)
BOXESPUSHBACK(c.connect_left); boxes_insert(c.connect_left);
} else { else
BOXESPUSHBACK(c.disconnected_left); boxes_insert(c.disconnected_left);
}
if (neighbors & 16) { if (neighbors & 16)
BOXESPUSHBACK(c.connect_back); boxes_insert(c.connect_back);
} else { else
BOXESPUSHBACK(c.disconnected_back); boxes_insert(c.disconnected_back);
}
if (neighbors & 32) { if (neighbors & 32)
BOXESPUSHBACK(c.connect_right); boxes_insert(c.connect_right);
} else { else
BOXESPUSHBACK(c.disconnected_right); boxes_insert(c.disconnected_right);
}
if (neighbors == 0) { if (neighbors == 0)
BOXESPUSHBACK(c.disconnected); boxes_insert(c.disconnected);
}
if (neighbors < 4) { if (neighbors < 4)
BOXESPUSHBACK(c.disconnected_sides); boxes_insert(c.disconnected_sides);
}
} }
else // NODEBOX_REGULAR else // NODEBOX_REGULAR