diff --git a/BuildVolume.py b/BuildVolume.py index 8ef72ef3f4..8d63ce41ef 100644 --- a/BuildVolume.py +++ b/BuildVolume.py @@ -2,6 +2,9 @@ from UM.Scene.SceneNode import SceneNode from UM.Application import Application from UM.Resources import Resources from UM.Mesh.MeshData import MeshData +from UM.Mesh.MeshBuilder import MeshBuilder +from UM.Math.Vector import Vector +from UM.Math.Color import Color class BuildVolume(SceneNode): def __init__(self, parent = None): @@ -29,9 +32,8 @@ class BuildVolume(SceneNode): if not self._material: self._material = renderer.createMaterial( Resources.getPath(Resources.ShadersLocation, 'basic.vert'), - Resources.getPath(Resources.ShadersLocation, 'color.frag') + Resources.getPath(Resources.ShadersLocation, 'vertexcolor.frag') ) - self._material.setUniformValue('u_color', [0.0, 0.0, 0.5, 0.1]) renderer.queueNode(self, material = self._material, transparent = True) return True @@ -40,7 +42,7 @@ class BuildVolume(SceneNode): if self._width == 0 or self._height == 0 or self._depth == 0: return - mesh = MeshData() + mb = MeshBuilder() minW = -self._width / 2 maxW = self._width / 2 @@ -49,52 +51,49 @@ class BuildVolume(SceneNode): minD = -self._depth / 2 maxD = self._depth / 2 - #Front - mesh.addVertexWithNormal(maxW, maxH, maxD, 0, 0, -1) - mesh.addVertexWithNormal(minW, minH, maxD, 0, 0, -1) - mesh.addVertexWithNormal(minW, maxH, maxD, 0, 0, -1) - mesh.addVertexWithNormal(maxW, maxH, maxD, 0, 0, -1) - mesh.addVertexWithNormal(maxW, minH, maxD, 0, 0, -1) - mesh.addVertexWithNormal(minW, minH, maxD, 0, 0, -1) + mb.addQuad( + Vector(minW, minH, maxD), + Vector(maxW, minH, maxD), + Vector(maxW, maxH, maxD), + Vector(minW, maxH, maxD), + color = Color(0.2, 0.67, 0.9, 0.25), + normal = Vector(0, 0, -1) + ) - #Back - mesh.addVertexWithNormal(maxW, maxH, minD, 0, 0, 1) - mesh.addVertexWithNormal(minW, maxH, minD, 0, 0, 1) - mesh.addVertexWithNormal(minW, minH, minD, 0, 0, 1) - mesh.addVertexWithNormal(maxW, maxH, minD, 0, 0, 1) - mesh.addVertexWithNormal(minW, minH, minD, 0, 0, 1) - mesh.addVertexWithNormal(maxW, minH, minD, 0, 0, 1) + mb.addQuad( + Vector(maxW, minH, maxD), + Vector(maxW, minH, minD), + Vector(maxW, maxH, minD), + Vector(maxW, maxH, maxD), + color = Color(0.2, 0.67, 0.9, 0.38), + normal = Vector(1, 0, 0) + ) - #Left - mesh.addVertexWithNormal(minW, maxH, maxD, -1, 0, 0) - mesh.addVertexWithNormal(minW, minH, minD, -1, 0, 0) - mesh.addVertexWithNormal(minW, maxH, minD, -1, 0, 0) - mesh.addVertexWithNormal(minW, maxH, maxD, -1, 0, 0) - mesh.addVertexWithNormal(minW, minH, maxD, -1, 0, 0) - mesh.addVertexWithNormal(minW, minH, minD, -1, 0, 0) + mb.addQuad( + Vector(minW, minH, minD), + Vector(minW, maxH, minD), + Vector(maxW, maxH, minD), + Vector(maxW, minH, minD), + color = Color(0.2, 0.67, 0.9, 0.25), + normal = Vector(0, 0, 1) + ) - #Right - mesh.addVertexWithNormal(maxW, maxH, maxD, 1, 0, 0) - mesh.addVertexWithNormal(maxW, minH, minD, 1, 0, 0) - mesh.addVertexWithNormal(maxW, minH, maxD, 1, 0, 0) - mesh.addVertexWithNormal(maxW, maxH, maxD, 1, 0, 0) - mesh.addVertexWithNormal(maxW, maxH, minD, 1, 0, 0) - mesh.addVertexWithNormal(maxW, minH, minD, 1, 0, 0) + mb.addQuad( + Vector(minW, minH, maxD), + Vector(minW, maxH, maxD), + Vector(minW, maxH, minD), + Vector(minW, minH, minD), + color = Color(0.2, 0.67, 0.9, 0.38), + normal = Vector(-1, 0, 0) + ) - #Top - mesh.addVertexWithNormal(maxW, maxH, maxD, 0, -1, 0) - mesh.addVertexWithNormal(minW, maxH, maxD, 0, -1, 0) - mesh.addVertexWithNormal(minW, maxH, minD, 0, -1, 0) - mesh.addVertexWithNormal(maxW, maxH, maxD, 0, -1, 0) - mesh.addVertexWithNormal(minW, maxH, minD, 0, -1, 0) - mesh.addVertexWithNormal(maxW, maxH, minD, 0, -1, 0) + mb.addQuad( + Vector(minW, maxH, maxD), + Vector(maxW, maxH, maxD), + Vector(maxW, maxH, minD), + Vector(minW, maxH, minD), + color = Color(0.2, 0.67, 0.9, 0.5), + normal = Vector(0, -1, 0) + ) - #Bottom - mesh.addVertexWithNormal(maxW, minH, maxD, 0, 1, 0) - mesh.addVertexWithNormal(minW, minH, minD, 0, 1, 0) - mesh.addVertexWithNormal(minW, minH, maxD, 0, 1, 0) - mesh.addVertexWithNormal(maxW, minH, maxD, 0, 1, 0) - mesh.addVertexWithNormal(maxW, minH, minD, 0, 1, 0) - mesh.addVertexWithNormal(minW, minH, minD, 0, 1, 0) - - self.setMeshData(mesh) + self.setMeshData(mb.getData())