From ae95193805435ce604877bc06b5b4518da76d7ed Mon Sep 17 00:00:00 2001 From: cha0s Date: Fri, 12 Apr 2019 20:27:54 -0500 Subject: [PATCH] refactor: BodyView renders vertices not aabb --- packages/physics/body-view.js | 39 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/packages/physics/body-view.js b/packages/physics/body-view.js index e3a02b0..e4c6bb1 100644 --- a/packages/physics/body-view.js +++ b/packages/physics/body-view.js @@ -7,27 +7,36 @@ export class BodyView extends Renderable { super(); this.body = body; this.primitives = new Primitives(); - this.redrawAabb(); + this.redraw(); } get internal() { return this.primitives.internal; } - redrawAabb() { - const aabb = this.body.aabb; - this.primitives.clear(); - const xMiddle = aabb[0] + (aabb[2] / 2); - this.primitives.drawLine( - [xMiddle, aabb[1]], - [xMiddle, aabb[1] + (aabb[3] - 0.0001)], - Primitives.lineStyle(new Color(255, 255, 0), 0.5) - ); - const yMiddle = aabb[1] + (aabb[3] / 2); - this.primitives.drawLine( - [aabb[0], yMiddle], - [aabb[0] + (aabb[2] -0.0001), yMiddle], - Primitives.lineStyle(new Color(255, 255, 0), 0.5) + redraw() { + const primitives = this.primitives; + const vertices = this.body.vertices; + primitives.clear(); + let firstVertice; + let lastVertice; + for (const vertice of vertices) { + if (!firstVertice) { + firstVertice = vertice; + } + if (lastVertice) { + primitives.drawLine( + lastVertice, + vertice, + Primitives.lineStyle(new Color(255, 255, 0), 0.5), + ); + } + lastVertice = vertice; + } + primitives.drawLine( + lastVertice, + firstVertice, + Primitives.lineStyle(new Color(255, 255, 0), 0.5), ); }