Use the new addLine to build the build volume mesh

This commit is contained in:
Arjen Hiemstra 2015-03-19 12:14:36 +01:00
parent b11757d80f
commit f75c2db13c

View file

@ -20,7 +20,6 @@ class BuildVolume(SceneNode):
self._depth = 0
self._material = None
self._line_mesh = None
self._grid_mesh = None
self._grid_material = None
@ -37,8 +36,6 @@ class BuildVolume(SceneNode):
def render(self, renderer):
if not self.getMeshData():
return True
if self._line_mesh is None:
return True
if not self._material:
self._material = renderer.createMaterial(
@ -52,9 +49,8 @@ class BuildVolume(SceneNode):
self._grid_material.setUniformValue('u_gridColor0', Color(255, 255, 255, 255))
self._grid_material.setUniformValue('u_gridColor1', Color(140, 170, 240, 255))
#renderer.queueNode(self, material = self._material, transparent = True)
renderer.queueNode(self, material = self._material, mode = Renderer.RenderLines)
renderer.queueNode(self, mesh = self._grid_mesh, material = self._grid_material)
renderer.queueNode(self, mesh = self._line_mesh, mode = Renderer.RenderLines, material = self._material)
return True
def rebuild(self):
@ -68,85 +64,22 @@ class BuildVolume(SceneNode):
minD = -self._depth / 2
maxD = self._depth / 2
md = MeshData()
md.addVertex(minW, minH, minD)
md.addVertex(maxW, minH, minD)
md.addVertex(minW, minH, minD)
md.addVertex(minW, maxH, minD)
md.addVertex(minW, maxH, minD)
md.addVertex(maxW, maxH, minD)
md.addVertex(maxW, minH, minD)
md.addVertex(maxW, maxH, minD)
md.addVertex(minW, minH, maxD)
md.addVertex(maxW, minH, maxD)
md.addVertex(minW, minH, maxD)
md.addVertex(minW, maxH, maxD)
md.addVertex(minW, maxH, maxD)
md.addVertex(maxW, maxH, maxD)
md.addVertex(maxW, minH, maxD)
md.addVertex(maxW, maxH, maxD)
md.addVertex(minW, minH, minD)
md.addVertex(minW, minH, maxD)
md.addVertex(maxW, minH, minD)
md.addVertex(maxW, minH, maxD)
md.addVertex(minW, maxH, minD)
md.addVertex(minW, maxH, maxD)
md.addVertex(maxW, maxH, minD)
md.addVertex(maxW, maxH, maxD)
for n in range(0, md.getVertexCount()):
md.setVertexColor(n, BuildVolume.VolumeOutlineColor)
self._line_mesh = md
mb = MeshBuilder()
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)
)
mb.addLine(Vector(minW, minH, minD), Vector(maxW, minH, minD), color = self.VolumeOutlineColor)
mb.addLine(Vector(minW, minH, minD), Vector(minW, maxH, minD), color = self.VolumeOutlineColor)
mb.addLine(Vector(minW, maxH, minD), Vector(maxW, maxH, minD), color = self.VolumeOutlineColor)
mb.addLine(Vector(maxW, minH, minD), Vector(maxW, maxH, minD), color = self.VolumeOutlineColor)
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)
)
mb.addLine(Vector(minW, minH, maxD), Vector(maxW, minH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(minW, minH, maxD), Vector(minW, maxH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(minW, maxH, maxD), Vector(maxW, maxH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(maxW, minH, maxD), Vector(maxW, maxH, maxD), color = self.VolumeOutlineColor)
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)
)
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)
)
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)
)
mb.addLine(Vector(minW, minH, minD), Vector(minW, minH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(maxW, minH, minD), Vector(maxW, minH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(minW, maxH, minD), Vector(minW, maxH, maxD), color = self.VolumeOutlineColor)
mb.addLine(Vector(maxW, maxH, minD), Vector(maxW, maxH, maxD), color = self.VolumeOutlineColor)
self.setMeshData(mb.getData())