From 9357294cfc4c73aa5ccc56a34aae8834a4766378 Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Thu, 11 Feb 2016 04:57:01 +0100 Subject: Use single box for halo mesh --- src/mesh.cpp | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'src/mesh.cpp') diff --git a/src/mesh.cpp b/src/mesh.cpp index d79f545f3..3c3932204 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -406,7 +406,7 @@ scene::IMesh* cloneMesh(scene::IMesh *src_mesh) } scene::IMesh* convertNodeboxesToMesh(const std::vector &boxes, - const f32 *uv_coords) + const f32 *uv_coords, float expand) { scene::SMesh* dst_mesh = new scene::SMesh(); @@ -421,31 +421,19 @@ scene::IMesh* convertNodeboxesToMesh(const std::vector &boxes, video::SColor c(255,255,255,255); - for(std::vector::const_iterator + for (std::vector::const_iterator i = boxes.begin(); i != boxes.end(); ++i) { aabb3f box = *i; - - f32 temp; - if (box.MinEdge.X > box.MaxEdge.X) - { - temp=box.MinEdge.X; - box.MinEdge.X=box.MaxEdge.X; - box.MaxEdge.X=temp; - } - if (box.MinEdge.Y > box.MaxEdge.Y) - { - temp=box.MinEdge.Y; - box.MinEdge.Y=box.MaxEdge.Y; - box.MaxEdge.Y=temp; - } - if (box.MinEdge.Z > box.MaxEdge.Z) - { - temp=box.MinEdge.Z; - box.MinEdge.Z=box.MaxEdge.Z; - box.MaxEdge.Z=temp; - } + box.repair(); + + box.MinEdge.X -= expand; + box.MinEdge.Y -= expand; + box.MinEdge.Z -= expand; + box.MaxEdge.X += expand; + box.MaxEdge.Y += expand; + box.MaxEdge.Z += expand; // Compute texture UV coords f32 tx1 = (box.MinEdge.X / BS) + 0.5; -- cgit v1.2.3