diff --git a/fsl/fslview/gl/glmodel.py b/fsl/fslview/gl/glmodel.py index 0607762f9b003ebf5ef79c7c094bdcfb63a51da6..6daa9d9a7d443f40a00065d460f5dae330f03581 100644 --- a/fsl/fslview/gl/glmodel.py +++ b/fsl/fslview/gl/glmodel.py @@ -30,7 +30,7 @@ class GLModel(globject.GLObject): def getDisplayBounds(self): - return self.overlay.getBounds() + return self.opts.getDisplayBounds() def setAxes(self, xax, yax): diff --git a/fsl/fslview/gl/globject.py b/fsl/fslview/gl/globject.py index 021de69c69e5eb1ec64dcaa6efeade5f98172f7c..b0eb49031a458a9fd5c0f154a5159865cfa9aed0 100644 --- a/fsl/fslview/gl/globject.py +++ b/fsl/fslview/gl/globject.py @@ -15,6 +15,25 @@ representation. import numpy as np +import glvolume +import glmask +import glrgbvector +import gllinevector +import glmodel + + +GLOBJECT_OVERLAY_TYPE_MAP = { + 'volume' : glvolume .GLVolume, + 'mask' : glmask .GLMask, + 'rgbvector' : glrgbvector .GLRGBVector, + 'linevector' : gllinevector.GLLineVector, + 'model' : glmodel .GLModel +} +"""This dictionary provides a mapping between all available overlay types (see +the :attr:`.Display.overlayType` property), and the :class:`GLObject` subclass +used to represent them. +""" + def createGLObject(overlay, display): """Create :class:`GLObject` instance for the given overlay, as specified @@ -25,20 +44,7 @@ def createGLObject(overlay, display): :arg display: A :class:`.Display` instance describing how the overlay should be displayed. """ - - import fsl.fslview.gl.glvolume as glvolume - import fsl.fslview.gl.glmask as glmask - import fsl.fslview.gl.glrgbvector as glrgbvector - import fsl.fslview.gl.gllinevector as gllinevector - - _objectmap = { - 'volume' : glvolume .GLVolume, - 'mask' : glmask .GLMask, - 'rgbvector' : glrgbvector .GLRGBVector, - 'linevector' : gllinevector.GLLineVector - } - - ctr = _objectmap.get(display.overlayType, None) + ctr = GLOBJECT_OVERLAY_TYPE_MAP.get(display.overlayType, None) if ctr is not None: return ctr(overlay, display) else: return None @@ -225,7 +231,7 @@ class GLImageObject(GLObject): def getDisplayBounds(self): - return self.display.getDisplayBounds() + return self.displayOpts.getDisplayBounds() def getDataResolution(self, xax, yax):