Scenegraph refactor part 1

scenegraph -> scenegraph.scenenode
rendergraph -> scenegraph.rendernode
This commit is contained in:
David Vierra 2015-07-12 13:11:36 -10:00
parent b2eff71a62
commit d23f575154
30 changed files with 180 additions and 146 deletions

View File

@ -4,6 +4,7 @@ import os
from PySide import QtGui, QtCore
from PySide.QtCore import Qt
from mcedit2.rendering.blockmodels import BlockModels
from mcedit2 import editortools
@ -25,7 +26,8 @@ from mcedit2.util.showprogress import showProgress
from mcedit2.util.undostack import MCEUndoStack
from mcedit2.widgets.inspector import InspectorWidget
from mcedit2.worldview.viewaction import UseToolMouseAction, TrackingMouseAction
from mcedit2.rendering import chunkloader, scenegraph
from mcedit2.rendering import chunkloader
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.geometrycache import GeometryCache
from mcedit2.rendering.textureatlas import TextureAtlas
from mcedit2.widgets.layout import Column, Row
@ -307,7 +309,7 @@ class EditorSession(QtCore.QObject):
progress("Loading textures and models...")
self.setConfiguredBlocks(configuredBlocks) # Must be called after resourceLoader is in place
self.editorOverlay = scenegraph.Node()
self.editorOverlay = scenenode.Node()
self.biomeTypes = BiomeTypes()

View File

@ -10,7 +10,8 @@ from mcedit2.editortools import EditorTool
from mcedit2.command import SimplePerformCommand
from mcedit2.editortools.brush.masklevel import FakeBrushSection
from mcedit2.editortools.brush.modes import BrushModes
from mcedit2.rendering import worldscene, scenegraph
from mcedit2.rendering import worldscene
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.depths import DepthOffset
from mcedit2.rendering.selection import SelectionBoxNode
from mcedit2.util.load_ui import load_ui, registerCustomWidget
@ -103,7 +104,7 @@ class BrushTool(EditorTool):
BrushModeSetting.connectAndCall(self.modeSettingChanged)
self.cursorWorldScene = None
self.cursorNode = scenegraph.TranslateNode()
self.cursorNode = scenenode.TranslateNode()
self.toolWidget.xSpinSlider.setMinimum(1)
self.toolWidget.ySpinSlider.setMinimum(1)

View File

@ -6,8 +6,7 @@ import logging
from mcedit2.editortools import EditorTool
from mcedit2.rendering.selection import SelectionBoxNode
from mcedit2.widgets.nbttree.nbttreemodel import NBTTreeModel
from mcedit2.rendering import scenegraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.util.load_ui import load_ui
@ -39,7 +38,7 @@ class ChunkTool(EditorTool):
self.currentChunk = None
self.selectionNode = None
self.overlayNode = scenegraph.Node()
self.overlayNode = scenenode.Node()
self.updateChunkWidget()
self.updateNBTView()

View File

@ -6,11 +6,11 @@ import logging
import traceback
from PySide import QtCore, QtGui
from mcedit2.command import SimpleRevisionCommand
from mcedit2.command import SimpleRevisionCommand
from mcedit2.editortools import EditorTool
from mcedit2.handles.boxhandle import BoxHandle
from mcedit2.rendering import scenegraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.worldscene import WorldScene
from mcedit2.util.showprogress import showProgress
from mcedit2.util.worldloader import WorldLoader
@ -206,9 +206,9 @@ class GenerateTool(EditorTool):
self.toolWidget.setLayout(Column(*column))
self.overlayNode = scenegraph.Node()
self.overlayNode = scenenode.Node()
self.sceneHolderNode = scenegraph.TranslateNode()
self.sceneHolderNode = scenenode.TranslateNode()
self.overlayNode.addChild(self.sceneHolderNode)
self.previewNode = None
@ -368,7 +368,7 @@ class GenerateTool(EditorTool):
if isinstance(node, list):
nodes = node
node = scenegraph.Node()
node = scenenode.Node()
for c in nodes:
node.addChild(c)

View File

@ -6,13 +6,12 @@ import logging
from PySide import QtGui, QtCore
from PySide.QtCore import Qt
from mcedit2.editorsession import PendingImport
from mcedit2.editorsession import PendingImport
from mcedit2.editortools import EditorTool
from mcedit2.command import SimpleRevisionCommand
from mcedit2.editortools.select import SelectionFaceNode
from mcedit2.rendering.selection import SelectionBoxNode, SelectionFaceNode, boxFaceUnderCursor
from mcedit2.rendering import scenegraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.depths import DepthOffset
from mcedit2.rendering.worldscene import WorldScene
from mcedit2.util.load_ui import load_ui
@ -120,7 +119,7 @@ class CoordinateWidget(QtGui.QWidget):
x, y, z = self.point
self.point = Vector(x, y, value)
class PendingImportNode(scenegraph.TranslateNode):
class PendingImportNode(scenenode.TranslateNode):
def __init__(self, pendingImport, textureAtlas):
super(PendingImportNode, self).__init__()
self.pendingImport = pendingImport
@ -167,7 +166,7 @@ class MoveTool(EditorTool):
def __init__(self, editorSession, *args, **kwargs):
super(MoveTool, self).__init__(editorSession, *args, **kwargs)
self.overlayNode = scenegraph.Node()
self.overlayNode = scenenode.Node()
self.loader = None
self.dragStartFace = None

View File

@ -8,7 +8,6 @@ from OpenGL import GL
from PySide import QtGui, QtCore
from mcedit2.editortools import EditorTool
from mcedit2.editortools.brush import shapes
from mcedit2.editortools.brush.shapes import ChunkShape
from mcedit2.handles.boxhandle import BoxHandle
from mcedit2.rendering import cubes
@ -16,13 +15,12 @@ from mcedit2.rendering.selection import SelectionScene, SelectionFaceNode
from mcedit2.util.load_ui import load_ui
from mcedit2.util.glutils import gl
from mcedit2.rendering.depths import DepthOffset
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.widgets.layout import Column
from mcedit2.widgets.shapewidget import ShapeWidget
from mceditlib import faces
from mceditlib.geometry import Vector
from mceditlib.selection import BoundingBox
from mceditlib import selection
log = logging.getLogger(__name__)
@ -184,7 +182,7 @@ class SelectionTool(EditorTool):
None))
self.cursorNode = SelectionCursor()
self.overlayNode = scenegraph.Node()
self.overlayNode = scenenode.Node()
self.faceHoverNode = SelectionFaceNode()
self.selectionNode = SelectionScene()
self.overlayNode.addChild(self.selectionNode)
@ -290,7 +288,7 @@ class SelectionTool(EditorTool):
def createShapedSelection(self, box):
return self.shapeInput.currentShape.createShapedSelection(box, self.editorSession.currentDimension)
class SelectionCursorRenderNode(rendergraph.RenderNode):
class SelectionCursorRenderNode(rendernode.RenderNode):
def drawSelf(self):
point = self.sceneNode.point
if point is None:
@ -315,7 +313,7 @@ class SelectionCursorRenderNode(rendergraph.RenderNode):
class SelectionCursor(scenegraph.Node):
class SelectionCursor(scenenode.Node):
RenderNodeClass = SelectionCursorRenderNode
def __init__(self, point=Vector(0, 0, 0), face=faces.FaceXDecreasing, color=(.3, .3, 1)):
super(SelectionCursor, self).__init__()

View File

@ -3,9 +3,11 @@
"""
from __future__ import absolute_import, division, print_function
import logging
from PySide import QtCore
import numpy
from mcedit2.rendering import scenegraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.selection import SelectionBoxNode, SelectionFaceNode, boxFaceUnderCursor
from mceditlib import faces
from mceditlib.selection import BoundingBox
@ -13,7 +15,7 @@ from mceditlib.selection import BoundingBox
log = logging.getLogger(__name__)
class BoxHandle(scenegraph.Node, QtCore.QObject):
class BoxHandle(scenenode.Node, QtCore.QObject):
# The face that was clicked on
dragResizeFace = None

View File

@ -3,9 +3,12 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
from OpenGL import GL
import numpy
from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering import renderstates
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.blockmeshes import standardCubeTemplates
from mcedit2.rendering.blockmeshes import ChunkMeshBase
from mcedit2.rendering.layers import Layer
@ -32,6 +35,6 @@ class ChunkSectionsRenderer(ChunkMeshBase):
buffer.buffer[i, :] = self.vertexTemplate
buffer.vertex[i, ..., 1] += cy * 16
self.sceneNode = scenegraph.VertexNode(buffer)
self.sceneNode = scenenode.VertexNode(buffer)
yield

View File

@ -3,14 +3,17 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
from OpenGL import GL
import numpy
from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering import renderstates
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.blockmeshes import standardCubeTemplates
from mcedit2.rendering.blockmeshes import ChunkMeshBase
from mcedit2.rendering.chunkmeshes.entity import models
from mcedit2.rendering.layers import Layer
from mcedit2.rendering.scenegraph import PolygonModeNode, DepthFuncNode
from mcedit2.rendering.scenegraph.scenenode import PolygonModeNode, DepthFuncNode
from mcedit2.rendering.slices import _XYZ
from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer
from mceditlib.anvil.entities import PCPaintingEntityRefBase
@ -62,7 +65,7 @@ class TileEntityMesh(EntityMeshBase):
tiles = self._computeVertices(tilePositions, (0xff, 0xff, 0x33, 0x44), chunkPosition=chunk.chunkPosition)
yield
self.sceneNode = scenegraph.VertexNode(tiles)
self.sceneNode = scenenode.VertexNode(tiles)
@ -108,15 +111,15 @@ class ItemFrameMesh(EntityMeshBase):
texCorners = [(1, 1), (1, 0), (0, 0), (0, 1)]
vertexBuffer.texcoord[:] += texCorners
vertexNode = scenegraph.VertexNode([vertexBuffer])
vertexNode = scenenode.VertexNode([vertexBuffer])
if mapTex is not None:
bindTexNode = scenegraph.BindTextureNode(mapTex)
bindTexNode = scenenode.BindTextureNode(mapTex)
bindTexNode.addChild(vertexNode)
nodes.append(bindTexNode)
else:
nodes.append(vertexNode)
self.sceneNode = scenegraph.Node()
self.sceneNode = scenenode.Node()
for node in nodes:
self.sceneNode.addChild(node)
@ -130,7 +133,7 @@ class ItemFrameMesh(EntityMeshBase):
class MonsterModelRenderer(ChunkMeshBase):
def makeChunkVertices(self, chunk, limitBox):
sceneNode = scenegraph.Node()
sceneNode = scenenode.Node()
for i, ref in enumerate(chunk.Entities):
ID = ref.id
if ID not in models.cookedModels:
@ -150,15 +153,15 @@ class MonsterModelRenderer(ChunkMeshBase):
vertexBuffer.vertex[:] = modelVerts[..., :3]
vertexBuffer.texcoord[:] = modelVerts[..., 3:5]
node = scenegraph.VertexNode(vertexBuffer)
rotateNode = scenegraph.RotateNode(ref.Rotation[0], (0., 1., 0.))
node = scenenode.VertexNode(vertexBuffer)
rotateNode = scenenode.RotateNode(ref.Rotation[0], (0., 1., 0.))
rotateNode.addChild(node)
translateNode = scenegraph.TranslateNode((ref.Position - (chunk.cx << 4, 0, chunk.cz << 4)))
translateNode = scenenode.TranslateNode((ref.Position - (chunk.cx << 4, 0, chunk.cz << 4)))
translateNode.addChild(rotateNode)
modelTex = self.chunkUpdate.updateTask.getModelTexture(models.textures[ID])
textureNode = scenegraph.BindTextureNode(modelTex, (1./modelTex.w, 1./modelTex.h, 1))
textureNode = scenenode.BindTextureNode(modelTex, (1./modelTex.w, 1./modelTex.h, 1))
textureNode.addChild(translateNode)
sceneNode.addChild(textureNode)
@ -191,7 +194,7 @@ class MonsterRenderer(EntityMeshBase):
chunkPosition=chunk.chunkPosition)
yield
vertexNode = scenegraph.VertexNode(monsters)
vertexNode = scenenode.VertexNode(monsters)
polyNode = PolygonModeNode(GL.GL_FRONT_AND_BACK, GL.GL_LINE)
polyNode.addChild(vertexNode)
depthNode = DepthFuncNode(GL.GL_ALWAYS)
@ -229,5 +232,5 @@ class ItemRenderer(EntityMeshBase):
numpy.array(entityColors, dtype='uint8')[:, numpy.newaxis, numpy.newaxis],
offset=True, chunkPosition=chunk.chunkPosition)
yield
self.sceneNode = scenegraph.VertexNode(items)
self.sceneNode = scenenode.VertexNode(items)

View File

@ -3,8 +3,11 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
import numpy
from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering import renderstates
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.blockmeshes import standardCubeTemplates
from mcedit2.rendering.blockmeshes import ChunkMeshBase
from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer
@ -98,7 +101,7 @@ class LowDetailBlockMesh(ChunkMeshBase):
yield
if self.detailLevel == 2:
self.sceneNode = scenegraph.VertexNode(va0)
self.sceneNode = scenenode.VertexNode(va0)
return
# Calculate how deep each column needs to go to be flush with the adjacent column;
@ -133,9 +136,9 @@ class LowDetailBlockMesh(ChunkMeshBase):
va2.vertex[:, (0, 3), 0] -= 1.0 # turn diagonally
nodes = [scenegraph.VertexNode(v) for v in (va1, va2, va0)]
nodes = [scenenode.VertexNode(v) for v in (va1, va2, va0)]
self.sceneNode = scenegraph.Node()
self.sceneNode = scenenode.Node()
for node in nodes:
self.sceneNode.addChild(node)

View File

@ -3,8 +3,11 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
import numpy
from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering import renderstates
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.blockmeshes import standardCubeTemplates
from mcedit2.rendering.blockmeshes import ChunkMeshBase
from mcedit2.rendering.layers import Layer
@ -86,6 +89,6 @@ class TerrainPopulatedRenderer(ChunkMeshBase):
verts = self.vertexTemplate[visibleFaces]
buffer = QuadVertexArrayBuffer(0, textures=False, lights=False)
buffer.buffer = verts
self.sceneNode = scenegraph.VertexNode(buffer)
self.sceneNode = scenenode.VertexNode(buffer)
yield

View File

@ -3,7 +3,8 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
from mcedit2.rendering import scenegraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.chunkmeshes.entitymesh import EntityMeshBase
from mcedit2.rendering.layers import Layer
@ -17,7 +18,7 @@ class TileTicksRenderer(EntityMeshBase):
if hasattr(chunk, "TileTicks"):
ticks = chunk.TileTicks
if len(ticks):
self.sceneNode = scenegraph.VertexNode(
self.sceneNode = scenenode.VertexNode(
self._computeVertices([[t[i].value for i in "xyz"] for t in ticks],
(0xff, 0xff, 0xff, 0x44),
chunkPosition=chunk.chunkPosition))

View File

@ -4,14 +4,14 @@
from __future__ import absolute_import, division, print_function
import logging
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import NamedChildrenNode
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.rendering.scenegraph.scenenode import NamedChildrenNode
log = logging.getLogger(__name__)
class ChunkNode(scenegraph.Node):
RenderNodeClass = rendergraph.TranslateRenderNode
class ChunkNode(scenenode.Node):
RenderNodeClass = rendernode.TranslateRenderNode
def __init__(self, chunkPosition):
"""

View File

@ -3,8 +3,10 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
from OpenGL import GL
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.util.glutils import gl
from mcedit2.util.load_png import loadPNGTexture
@ -14,7 +16,7 @@ log = logging.getLogger(__name__)
def makeQuad(minx, miny, width, height):
return [minx, miny, minx+width, miny, minx+width, miny+height, minx, miny + height]
class CompassRenderNode(rendergraph.RenderNode):
class CompassRenderNode(rendernode.RenderNode):
_tex = None
def compile(self):
@ -48,7 +50,7 @@ class CompassRenderNode(rendergraph.RenderNode):
with gl.glEnable(GL.GL_BLEND, GL.GL_TEXTURE_2D):
GL.glDrawArrays(GL.GL_QUADS, 0, 4)
class CompassNode(scenegraph.Node):
class CompassNode(scenenode.Node):
_yawPitch = (0., 0.)
RenderNodeClass = CompassRenderNode
def __init__(self, small=False):

View File

@ -8,13 +8,13 @@ import logging
import numpy
from OpenGL import GL
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.util.glutils import Texture, gl
from mcedit2.rendering.depths import DepthOffset
log = logging.getLogger(__name__)
class LoadableChunksRenderNode(rendergraph.RenderNode):
class LoadableChunksRenderNode(rendernode.RenderNode):
def drawSelf(self):
with gl.glPushAttrib(GL.GL_FOG_BIT | GL.GL_ENABLE_BIT):
@ -47,7 +47,7 @@ class LoadableChunksRenderNode(rendergraph.RenderNode):
return self._floorTexture
class LoadableChunksNode(scenegraph.Node):
class LoadableChunksNode(scenenode.Node):
skipLargeLevels = False
RenderNodeClass = LoadableChunksRenderNode

View File

@ -5,10 +5,10 @@
from __future__ import absolute_import, division, print_function
import logging
import numpy
cimport numpy
from mcedit2.rendering import renderstates, scenegraph
from mcedit2.rendering import renderstates
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.layers import Layer
from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer
cimport mcedit2.rendering.blockmodels as blockmodels
@ -304,5 +304,5 @@ class BlockModelMesh(object):
vertexArray = QuadVertexArrayBuffer(buffer_ptr)
vabuffer = vertexArray.buffer
memcpy(vabuffer.data, vertexBuffer, buffer_ptr * sizeof(float) * quadFloats)
self.sceneNode = scenegraph.VertexNode(vertexArray)
self.sceneNode = scenenode.VertexNode(vertexArray)
free(vertexBuffer)

View File

@ -6,21 +6,21 @@ import logging
from OpenGL import GL
from mcedit2.rendering import rendergraph
from mcedit2.rendering.scenegraph import rendernode
from mcedit2.rendering.depths import DepthOffset
log = logging.getLogger(__name__)
class RenderstatePlainNode(rendergraph.RenderstateRenderNode):
class RenderstatePlainNode(rendernode.RenderstateRenderNode):
def enter(self):
pass
def exit(self):
pass
class RenderstateVinesNode(rendergraph.RenderstateRenderNode):
class RenderstateVinesNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_ENABLE_BIT)
GL.glDisable(GL.GL_CULL_FACE)
@ -29,7 +29,7 @@ class RenderstateVinesNode(rendergraph.RenderstateRenderNode):
def exit(self):
GL.glPopAttrib()
class RenderstateLowDetailNode(rendergraph.RenderstateRenderNode):
class RenderstateLowDetailNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_ENABLE_BIT)
GL.glDisable(GL.GL_CULL_FACE)
@ -38,7 +38,7 @@ class RenderstateLowDetailNode(rendergraph.RenderstateRenderNode):
def exit(self):
GL.glPopAttrib()
class RenderstateAlphaTestNode(rendergraph.RenderstateRenderNode):
class RenderstateAlphaTestNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_ENABLE_BIT)
GL.glEnable(GL.GL_ALPHA_TEST)
@ -46,7 +46,7 @@ class RenderstateAlphaTestNode(rendergraph.RenderstateRenderNode):
def exit(self):
GL.glPopAttrib()
class _RenderstateAlphaBlendNode(rendergraph.RenderstateRenderNode):
class _RenderstateAlphaBlendNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_ENABLE_BIT)
GL.glEnable(GL.GL_BLEND)
@ -60,7 +60,7 @@ class RenderstateWaterNode(_RenderstateAlphaBlendNode):
class RenderstateIceNode(_RenderstateAlphaBlendNode):
pass
class RenderstateEntityNode(rendergraph.RenderstateRenderNode):
class RenderstateEntityNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glPushAttrib(GL.GL_ENABLE_BIT | GL.GL_POLYGON_BIT)
GL.glPolygonOffset(DepthOffset.Renderer-1, DepthOffset.Renderer-1)

View File

@ -0,0 +1,7 @@
"""
__init__.py
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
log = logging.getLogger(__name__)

View File

@ -389,7 +389,7 @@ class DepthOffsetRenderNode(RenderstateRenderNode):
def updateRenderNode(renderNode):
"""
:type renderNode: mcedit2.rendering.rendergraph.RenderNode
:type renderNode: mcedit2.rendering.rendernode.RenderNode
"""
sceneNode = renderNode.sceneNode
@ -406,7 +406,7 @@ def createRenderNode(sceneNode):
"""
:type sceneNode: Node
:rtype: mcedit2.rendering.rendergraph.RenderNode
:rtype: mcedit2.rendering.rendernode.RenderNode
"""
renderNode = sceneNode.RenderNodeClass(sceneNode)
updateChildren(renderNode)
@ -416,7 +416,7 @@ def createRenderNode(sceneNode):
def updateChildren(renderNode):
"""
:type renderNode: mcedit2.rendering.rendergraph.RenderNode
:type renderNode: mcedit2.rendering.rendernode.RenderNode
:return:
:rtype:
"""

View File

@ -5,15 +5,14 @@ from __future__ import absolute_import, division, print_function
import logging
import weakref
from mcedit2.rendering import rendergraph
from mcedit2.rendering.scenegraph import rendernode
log = logging.getLogger(__name__)
from OpenGL import GL
class Node(object):
RenderNodeClass = rendergraph.RenderNode
RenderNodeClass = rendernode.RenderNode
def __init__(self):
super(Node, self).__init__()
@ -101,7 +100,7 @@ class Node(object):
self.parent.dirty = True
class NamedChildrenNode(Node):
RenderNodeClass = rendergraph.RenderNode
RenderNodeClass = rendernode.RenderNode
def __init__(self):
super(NamedChildrenNode, self).__init__()
@ -148,7 +147,7 @@ class RenderstateNode(Node):
class TextureAtlasNode(Node):
RenderNodeClass = rendergraph.TextureAtlasRenderNode
RenderNodeClass = rendernode.TextureAtlasRenderNode
def __init__(self, textureAtlas=None):
super(TextureAtlasNode, self).__init__()
@ -164,7 +163,7 @@ class TextureAtlasNode(Node):
self.dirty = True
class TranslateNode(Node):
RenderNodeClass = rendergraph.TranslateRenderNode
RenderNodeClass = rendernode.TranslateRenderNode
def __init__(self, translateOffset=(0., 0., 0.)):
super(TranslateNode, self).__init__()
@ -180,7 +179,7 @@ class TranslateNode(Node):
self.dirty = True
class RotateNode(Node):
RenderNodeClass = rendergraph.RotateRenderNode
RenderNodeClass = rendernode.RotateRenderNode
def __init__(self, degrees, axis):
super(RotateNode, self).__init__()
@ -190,26 +189,26 @@ class RotateNode(Node):
class DepthMaskNode(Node):
RenderNodeClass = rendergraph.DepthMaskRenderNode
RenderNodeClass = rendernode.DepthMaskRenderNode
mask = False
class DepthFuncNode(Node):
RenderNodeClass = rendergraph.DepthFuncRenderNode
RenderNodeClass = rendernode.DepthFuncRenderNode
def __init__(self, func=GL.GL_LESS):
super(DepthFuncNode, self).__init__()
self.func = func
class ClearNode(Node):
RenderNodeClass = rendergraph.ClearRenderNode
RenderNodeClass = rendernode.ClearRenderNode
def __init__(self, clearColor=(0, 0, 0, 1)):
super(ClearNode, self).__init__()
self.clearColor = clearColor
class OrthoNode(Node):
RenderNodeClass = rendergraph.OrthoRenderNode
RenderNodeClass = rendernode.OrthoRenderNode
def __init__(self, size=(1, 1)):
super(OrthoNode, self).__init__()
@ -225,7 +224,7 @@ class OrthoNode(Node):
self.dirty = True
class PolygonModeNode(Node):
RenderNodeClass = rendergraph.PolygonModeRenderNode
RenderNodeClass = rendernode.PolygonModeRenderNode
def __init__(self, face, mode):
super(PolygonModeNode, self).__init__()
self.face = face
@ -233,7 +232,7 @@ class PolygonModeNode(Node):
class VertexNode(Node):
RenderNodeClass = rendergraph.VertexRenderNode
RenderNodeClass = rendernode.VertexRenderNode
def __init__(self, vertexArrays):
"""
@ -246,7 +245,7 @@ class VertexNode(Node):
self.vertexArrays = vertexArrays
class BindTextureNode(Node):
RenderNodeClass = rendergraph.BindTextureRenderNode
RenderNodeClass = rendernode.BindTextureRenderNode
def __init__(self, texture, scale=None):
"""
@ -258,7 +257,7 @@ class BindTextureNode(Node):
self.scale = scale
# changing texture not implemented
class MatrixRenderNode(rendergraph.RenderstateRenderNode):
class MatrixRenderNode(rendernode.RenderstateRenderNode):
def enter(self):
projection = self.sceneNode.projection
if projection is not None:
@ -323,7 +322,7 @@ class MatrixNode(Node):
self.dirty = True
class DepthOffsetNode(Node):
RenderNodeClass = rendergraph.DepthOffsetRenderNode
RenderNodeClass = rendernode.DepthOffsetRenderNode
def __init__(self, depthOffset):
super(DepthOffsetNode, self).__init__()
self.depthOffset = depthOffset

View File

@ -2,15 +2,19 @@
selection
"""
from __future__ import absolute_import, division, print_function
from OpenGL import GL
from PySide import QtCore
import logging
from OpenGL import GL
from PySide import QtCore
import numpy
from mcedit2.rendering import scenegraph, rendergraph, cubes
from mcedit2.rendering import cubes
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.rendering.chunknode import ChunkGroupNode, ChunkNode
from mcedit2.rendering.depths import DepthOffset
from mcedit2.rendering.renderstates import _RenderstateAlphaBlendNode
from mcedit2.rendering.scenegraph import VertexNode, RenderstateNode
from mcedit2.rendering.scenegraph.scenenode import VertexNode, RenderstateNode
from mcedit2.rendering.vertexarraybuffer import QuadVertexArrayBuffer
from mcedit2.util import profiler
from mcedit2.util.glutils import gl
@ -22,7 +26,7 @@ from mceditlib.util import exhaust
log = logging.getLogger(__name__)
class CullFaceRenderNode(rendergraph.RenderstateRenderNode):
class CullFaceRenderNode(rendernode.RenderstateRenderNode):
def enter(self):
GL.glEnable(GL.GL_CULL_FACE)
@ -92,7 +96,7 @@ class NonAirMaskSelection(SelectionBox):
class SelectionScene(scenegraph.Node):
class SelectionScene(scenenode.Node):
def __init__(self):
"""
@ -254,7 +258,7 @@ faceShades = {
faces.FaceDown: (0x22, 0x22, 0x77),
}
class SelectionBoxRenderNode(rendergraph.RenderNode):
class SelectionBoxRenderNode(rendernode.RenderNode):
def drawSelf(self):
box = self.sceneNode.selectionBox
if box is None:
@ -281,7 +285,7 @@ class SelectionBoxRenderNode(rendergraph.RenderNode):
GL.glLineWidth(1.0)
cubes.drawBox(box, cubeType=GL.GL_LINES)
class SelectionBoxNode(scenegraph.Node):
class SelectionBoxNode(scenenode.Node):
RenderNodeClass = SelectionBoxRenderNode
_selectionBox = None
depth = DepthOffset.Selection
@ -327,7 +331,7 @@ class SelectionBoxNode(scenegraph.Node):
self.dirty = True
class SelectionFaceRenderNode(rendergraph.RenderNode):
class SelectionFaceRenderNode(rendernode.RenderNode):
def drawSelf(self):
box = self.sceneNode.selectionBox
if box is None:
@ -349,7 +353,7 @@ class SelectionFaceRenderNode(rendergraph.RenderNode):
cubes.drawFace(box, self.sceneNode.face)
class SelectionFaceNode(scenegraph.Node):
class SelectionFaceNode(scenenode.Node):
RenderNodeClass = SelectionFaceRenderNode
_selectionBox = None
_face = faces.FaceYIncreasing

View File

@ -7,13 +7,13 @@ import logging
from OpenGL import GL
import numpy
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.util.glutils import gl
log = logging.getLogger(__name__)
class SkyRenderNode(rendergraph.RenderNode):
class SkyRenderNode(rendernode.RenderNode):
def drawSelf(self):
with gl.glPushMatrix(GL.GL_MODELVIEW):
GL.glLoadIdentity()
@ -35,5 +35,5 @@ class SkyRenderNode(rendergraph.RenderNode):
GL.glDrawArrays(GL.GL_QUADS, 0, 4)
class SkyNode(scenegraph.Node):
class SkyNode(scenenode.Node):
RenderNodeClass = SkyRenderNode

View File

@ -3,19 +3,21 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import logging
from OpenGL import GL
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
log = logging.getLogger(__name__)
class WorkplaneNode(scenegraph.Node):
class WorkplaneNode(scenenode.Node):
def __init__(self):
super(WorkplaneNode, self).__init__()
self.translateNode = scenegraph.TranslateNode()
self.translateNode = scenenode.TranslateNode()
self.addChild(self.translateNode)
self.axis = 1
@ -65,7 +67,7 @@ class WorkplaneNode(scenegraph.Node):
if self.vertexNode:
self.translateNode.removeChild(self.vertexNode)
self.vertexNode = scenegraph.VertexNode([gridArrayBuffer])
self.vertexNode = scenenode.VertexNode([gridArrayBuffer])
self.translateNode.addChild(self.vertexNode)
@property

View File

@ -5,12 +5,14 @@ from __future__ import absolute_import, division, print_function, unicode_litera
import logging
import sys
import collections
from OpenGL import GL
import numpy
import itertools
from OpenGL import GL
import numpy
from mcedit2.rendering.layers import Layer
from mcedit2.rendering import chunkupdate, scenegraph
from mcedit2.rendering import chunkupdate
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering import renderstates
from mcedit2.rendering.chunknode import ChunkNode, ChunkGroupNode
from mcedit2.rendering.chunkupdate import ChunkRenderInfo
@ -199,21 +201,21 @@ class SceneUpdateTask(object):
class WorldScene(scenegraph.Node):
class WorldScene(scenenode.Node):
def __init__(self, dimension, textureAtlas=None, geometryCache=None, bounds=None):
super(WorldScene, self).__init__()
self.dimension = dimension
self.textureAtlas = textureAtlas
self.depthOffsetNode = scenegraph.DepthOffsetNode(DepthOffset.Renderer)
self.depthOffsetNode = scenenode.DepthOffsetNode(DepthOffset.Renderer)
self.addChild(self.depthOffsetNode)
self.textureAtlasNode = scenegraph.TextureAtlasNode(textureAtlas)
self.textureAtlasNode = scenenode.TextureAtlasNode(textureAtlas)
self.depthOffsetNode.addChild(self.textureAtlasNode)
self.renderstateNodes = {}
for rsClass in renderstates.allRenderstates:
rsNode = scenegraph.RenderstateNode(rsClass)
rsNode = scenenode.RenderstateNode(rsClass)
self.textureAtlasNode.addChild(rsNode)
self.renderstateNodes[rsClass] = rsNode

View File

@ -3,10 +3,10 @@
"""
from __future__ import absolute_import, division, print_function
import logging
import pprint
from math import floor
from OpenGL import GL
from mcedit2.rendering.scenegraph import Node, VertexNode
from mcedit2.rendering.scenegraph.scenenode import VertexNode
from mcedit2.rendering.selection import SelectionBoxNode
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
from mcedit2.util import bresenham

View File

@ -6,11 +6,13 @@ import contextlib
import inspect
import os
import tempfile
from PySide import QtGui, QtCore
import logging
from PySide.QtCore import Qt
import gc
from mcedit2.rendering import rendergraph
from PySide import QtGui, QtCore
from PySide.QtCore import Qt
from mcedit2.rendering.scenegraph import rendernode
from mcedit2.util import settings
from mcedit2.widgets.layout import Column, Row
@ -123,7 +125,7 @@ class ObjGraphWidget(QtGui.QWidget):
traceback.print_exc()
return
if isinstance(obj, rendergraph.RenderNode):
if isinstance(obj, rendernode.RenderNode):
def edge_func(x):
return x.children
else:

View File

@ -7,7 +7,8 @@ import logging
from PySide import QtGui
from mcedit2.rendering import worldscene, scenegraph
from mcedit2.rendering import worldscene
from mcedit2.rendering.scenegraph import scenenode
from mcedit2.util import profiler
from mcedit2.widgets.layout import Column, Row
from mcedit2.worldview.viewcontrols import ViewControls
@ -18,7 +19,6 @@ from mceditlib import faces
from mceditlib.geometry import Vector
from mceditlib.selection import BoundingBox
log = logging.getLogger(__name__)
@ -78,7 +78,7 @@ def CutawayWorldViewFrame(dimension, textureAtlas, geometryCache, sharedGLWidget
return viewFrame
class SlicedWorldScene(scenegraph.Node):
class SlicedWorldScene(scenenode.Node):
def __init__(self, dimension, textureAtlas):
super(SlicedWorldScene, self).__init__()
self.sliceScenes = {}

View File

@ -3,16 +3,20 @@
"""
from __future__ import absolute_import, division, print_function, unicode_literals
from collections import namedtuple
from OpenGL import GL
from PySide import QtCore, QtGui
import logging
from OpenGL import GL
from PySide import QtCore, QtGui
import numpy
from mcedit2.rendering import compass, scenegraph, rendergraph
from mcedit2.rendering import compass
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.rendering.layers import Layer
from mcedit2.util.glutils import gl
from mcedit2.util.raycast import rayCastInBounds, MaxDistanceError
from mcedit2.worldview.worldview import WorldView
from mceditlib.geometry import Vector, Ray
from mceditlib.geometry import Ray
log = logging.getLogger(__name__)
@ -27,7 +31,7 @@ class LineSegment(namedtuple("LineSegment", "p1 p2")):
return r.atHeight(y)
class ViewCornersRenderNode(rendergraph.RenderNode):
class ViewCornersRenderNode(rendernode.RenderNode):
#
# Renders the intersection of a horizontal plane with the view frustum
@ -105,7 +109,7 @@ class ViewCornersRenderNode(rendergraph.RenderNode):
GL.glDrawArrays(GL.GL_LINE_STRIP, 0, len(points))
class ViewCornersNode(scenegraph.Node):
class ViewCornersNode(scenenode.Node):
RenderNodeClass = ViewCornersRenderNode
_corners = None

View File

@ -11,6 +11,7 @@ import itertools
from OpenGL import GL
from PySide import QtCore, QtGui
from PySide.QtCore import Qt
from PySide.QtOpenGL import QGLWidget
import numpy
@ -21,13 +22,13 @@ from mcedit2.rendering.geometrycache import GeometryCache
from mcedit2.rendering.layers import Layer
from mcedit2.rendering.textureatlas import TextureAtlas
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
from mcedit2.rendering import scenegraph, rendergraph
from mcedit2.rendering.scenegraph import scenenode, rendernode
from mcedit2.util import profiler, raycast
from mcedit2.util.mimeformats import MimeFormats
from mcedit2.util.qglcontext import validateQGLContext
from mcedit2.util.settings import Settings
from mcedit2.widgets.infopanel import InfoPanel
from mceditlib import faces, exceptions
from mceditlib import faces
from mceditlib.geometry import Vector, Ray
from mceditlib.exceptions import LevelFormatError, ChunkNotPresent
from mceditlib.util import displayName
@ -44,7 +45,7 @@ def worldMeshVertexSize(worldMesh):
for cm in worldMesh.chunkGroupNode.children:
assert isinstance(cm, ChunkNode)
for bm in cm.getChunkVertexNodes():
assert isinstance(bm, scenegraph.VertexNode)
assert isinstance(bm, scenenode.VertexNode)
for va in bm.vertexArrays:
assert isinstance(va, VertexArrayBuffer)
yield va.buffer.nbytes
@ -116,7 +117,7 @@ class WorldView(QGLWidget):
self.autoUpdateInterval = 0.5 # frequency of screen redraws in response to loaded chunks
self.compassNode = self.createCompass()
self.compassOrthoNode = scenegraph.OrthoNode((1, float(self.height()) / self.width()))
self.compassOrthoNode = scenenode.OrthoNode((1, float(self.height()) / self.width()))
self.compassOrthoNode.addChild(self.compassNode)
self.viewActions = []
@ -131,7 +132,7 @@ class WorldView(QGLWidget):
self.geometryCache = geometryCache
self.matrixNode = None
self.overlayNode = scenegraph.Node()
self.overlayNode = scenenode.Node()
self.sceneGraph = None
self.renderGraph = None
@ -183,7 +184,7 @@ class WorldView(QGLWidget):
if self.renderGraph:
self.renderGraph.destroy()
self.sceneGraph = self.createSceneGraph()
self.renderGraph = rendergraph.createRenderNode(self.sceneGraph)
self.renderGraph = rendernode.createRenderNode(self.sceneGraph)
self.resetLoadOrder()
self.update()
@ -214,15 +215,15 @@ class WorldView(QGLWidget):
return worldscene.WorldScene(self.dimension, self.textureAtlas, self.geometryCache)
def createSceneGraph(self):
sceneGraph = scenegraph.Node()
sceneGraph = scenenode.Node()
self.worldScene = self.createWorldScene()
self.worldScene.setVisibleLayers(self.layerToggleGroup.getVisibleLayers())
clearNode = scenegraph.ClearNode()
clearNode = scenenode.ClearNode()
skyNode = sky.SkyNode()
self.loadableChunksNode = loadablechunks.LoadableChunksNode(self.dimension)
self.matrixNode = scenegraph.MatrixNode()
self.matrixNode = scenenode.MatrixNode()
self._updateMatrices()
self.matrixNode.addChild(self.loadableChunksNode)
@ -526,7 +527,7 @@ class WorldView(QGLWidget):
self.frameSamples.append(time.time())
with profiler.context("renderScene"):
rendergraph.renderScene(self.renderGraph)
rendernode.renderScene(self.renderGraph)

View File

@ -4,21 +4,18 @@
"""
from __future__ import absolute_import, division, print_function
import logging
from math import pi, cos, sin
import math
from OpenGL import GL
from PySide import QtGui
import math
from mcedit2.plugins import registerGeneratePlugin
from mcedit2.rendering.scenegraph import VertexNode
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
from mcedit2.synth.l_system import Geometric, Line, Symbol
from mcedit2.plugins import registerGeneratePlugin
from mcedit2.rendering.scenegraph.scenenode import VertexNode
from mcedit2.rendering.vertexarraybuffer import VertexArrayBuffer
from mcedit2.synth.l_system import Geometric, Symbol
from mcedit2.synth.l_system_plugin import LSystemPlugin
from mcedit2.util import bresenham
from mcedit2.widgets.blockpicker import BlockTypeButton
from mceditlib import faces
from mceditlib.geometry import Vector
log = logging.getLogger(__name__)
"""