commit 177962f67a5cd40e097a72a6076f9c3453a66497 Author: Arjen Hiemstra Date: Wed Jan 28 12:00:43 2015 +0100 Add a LayerView plugin that can render sliced meshes diff --git a/LayerView.py b/LayerView.py new file mode 100644 index 0000000000..e75ea6dff7 --- /dev/null +++ b/LayerView.py @@ -0,0 +1,31 @@ +from UM.View.View import View +from UM.View.Renderer import Renderer +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator +from UM.Resources import Resources + +class LayerView(View): + def __init__(self): + super().__init__() + self._material = None + + def beginRendering(self): + scene = self.getController().getScene() + renderer = self.getRenderer() + + if not self._material: + self._material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, 'basic.vert'), Resources.getPath(Resources.ShadersLocation, 'color.frag')) + + self._material.setUniformValue("u_color", [1.0, 0.0, 0.0, 1.0]) + + for node in DepthFirstIterator(scene.getRoot()): + if not node.render(renderer): + if node.getMeshData() and node.isVisible(): + try: + layerData = node.getMeshData().layerData + except AttributeError: + continue + + renderer.queueMesh(layerData, node.getGlobalTransformation(), material = self._material, mode = Renderer.RenderLineLoop) + + def endRendering(self): + pass diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000000..12efe8e8e7 --- /dev/null +++ b/__init__.py @@ -0,0 +1,7 @@ +from . import LayerView + +def getMetaData(): + return { "name": "LayerView", "type": "View" } + +def register(app): + app.getController().addView("LayerView", LayerView.LayerView())