Display red boxes for entities as wireframes

Added PolygonModeNode
This commit is contained in:
David Vierra 2015-07-11 11:37:50 -10:00
parent fd76076689
commit 725ee72b8f
3 changed files with 22 additions and 1 deletions

View File

@ -3,11 +3,13 @@
""" """
from __future__ import absolute_import, division, print_function, unicode_literals from __future__ import absolute_import, division, print_function, unicode_literals
import logging import logging
from OpenGL import GL
import numpy import numpy
from mcedit2.rendering import renderstates, scenegraph from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering.blockmeshes import standardCubeTemplates from mcedit2.rendering.blockmeshes import standardCubeTemplates
from mcedit2.rendering.blockmeshes import ChunkMeshBase from mcedit2.rendering.blockmeshes import ChunkMeshBase
from mcedit2.rendering.layers import Layer from mcedit2.rendering.layers import Layer
from mcedit2.rendering.scenegraph import PolygonModeNode
from mcedit2.rendering.slices import _XYZ from mcedit2.rendering.slices import _XYZ
from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer
from mceditlib.anvil.entities import PCPaintingEntityRefBase from mceditlib.anvil.entities import PCPaintingEntityRefBase
@ -147,7 +149,10 @@ class MonsterRenderer(EntityMeshBase):
offset=True, offset=True,
chunkPosition=chunk.chunkPosition) chunkPosition=chunk.chunkPosition)
yield yield
self.sceneNode = scenegraph.VertexNode(monsters)
vertexNode = scenegraph.VertexNode(monsters)
self.sceneNode = PolygonModeNode(GL.GL_FRONT_AND_BACK, GL.GL_LINE)
self.sceneNode.addChild(vertexNode)

View File

@ -212,6 +212,15 @@ class TranslateRenderNode(RenderstateRenderNode):
GL.glPopMatrix() GL.glPopMatrix()
class PolygonModeRenderNode(RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_POLYGON_BIT)
GL.glPolygonMode(self.sceneNode.face, self.sceneNode.mode)
def exit(self):
GL.glPopAttrib()
class VertexRenderNode(RenderNode): class VertexRenderNode(RenderNode):
def __init__(self, sceneNode): def __init__(self, sceneNode):
""" """

View File

@ -208,6 +208,13 @@ class OrthoNode(Node):
self._size = value self._size = value
self.dirty = True self.dirty = True
class PolygonModeNode(Node):
RenderNodeClass = rendergraph.PolygonModeRenderNode
def __init__(self, face, mode):
super(PolygonModeNode, self).__init__()
self.face = face
self.mode = mode
class VertexNode(Node): class VertexNode(Node):
RenderNodeClass = rendergraph.VertexRenderNode RenderNodeClass = rendergraph.VertexRenderNode