Example #1
0
    def __init__(self):
        super(Window, self).__init__()
        box = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
        self.resize(500, 200)
        self.setLayout(box)

        self.canvas_0 = SceneCanvas(bgcolor='w')
        self.vb_0 = ViewBox(parent=self.canvas_0.scene, bgcolor='r')
        self.vb_0.camera.rect = -1, -1, 2, 2
        self.canvas_0.events.initialize.connect(self.on_init)
        self.canvas_0.events.resize.connect(
            partial(on_resize, self.canvas_0, self.vb_0))
        box.addWidget(self.canvas_0.native)

        # pass the context from the first canvas to the second
        self.canvas_1 = SceneCanvas(bgcolor='w', shared=self.canvas_0.context)
        self.vb_1 = ViewBox(parent=self.canvas_1.scene, bgcolor='b')
        self.vb_1.camera.rect = -1, -1, 2, 2
        self.canvas_1.events.resize.connect(
            partial(on_resize, self.canvas_1, self.vb_1))
        box.addWidget(self.canvas_1.native)

        self.tick_count = 0
        self.timer = Timer(interval=1., connect=self.on_timer, start=True)
        self.setWindowTitle('Shared contexts')
        self.show()
Example #2
0
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 correlate_colourspace='ACEScg',
                 diagram='CIE 1931',
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace
        self._diagram = None
        self.diagram = diagram

        self._diagrams_cycle = Cycle(CHROMATICITY_DIAGRAMS)

        self._grid = None

        self._label = None

        self._chromaticity_diagram_visual = None
        self._spectral_locus_visual = None
        self._RGB_scatter_visual = None
        self._input_colourspace_visual = None
        self._correlate_colourspace_visual = None
        self._pointer_gamut_visual = None
        self._pointer_gamut_boundaries_visual = None
        self._grid_visual = None
        self._axis_visual = None

        self._visuals = ('chromaticity_diagram_visual',
                          'spectral_locus_visual',
                          'RGB_scatter_visual',
                          'input_colourspace_visual',
                          'correlate_colourspace_visual',
                          'pointer_gamut_visual',
                          'pointer_gamut_boundaries_visual',
                          'grid_visual',
                          'axis_visual')

        self._visuals_visibility = None

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 correlate_colourspace='ACEScg',
                 diagram='CIE 1931',
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace
        self._diagram = None
        self.diagram = diagram

        self._diagrams_cycle = Cycle(CHROMATICITY_DIAGRAMS)

        self._grid = None

        self._label = None

        self._chromaticity_diagram_visual = None
        self._spectral_locus_visual = None
        self._RGB_scatter_visual = None
        self._input_colourspace_visual = None
        self._correlate_colourspace_visual = None
        self._pointer_gamut_visual = None
        self._pointer_gamut_boundaries_visual = None
        self._grid_visual = None
        self._axis_visual = None

        self._visuals = ('chromaticity_diagram_visual',
                         'spectral_locus_visual', 'RGB_scatter_visual',
                         'input_colourspace_visual',
                         'correlate_colourspace_visual',
                         'pointer_gamut_visual',
                         'pointer_gamut_boundaries_visual', 'grid_visual',
                         'axis_visual')

        self._visuals_visibility = None

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 correlate_colourspace='ACEScg',
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace

        self._grid = None

        self._label = None

        self._image_visual = None

        self._image_overlay = True

        self._display_input_colourspace_out_of_gamut = False
        self._display_correlate_colourspace_out_of_gamut = False
        self._display_out_of_pointer_gamut = False
        self._display_hdr_colours = False

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 correlate_colourspace='ACEScg',
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace

        self._grid = None

        self._label = None

        self._image_visual = None

        self._image_overlay = True

        self._display_input_colourspace_out_of_gamut = False
        self._display_correlate_colourspace_out_of_gamut = False
        self._display_out_of_pointer_gamut = False
        self._display_hdr_colours = False

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True
Example #6
0
def test_panzoom_link():
    vbs = [ViewBox(camera='panzoom') for _ in range(4)]
    cams = [vb.camera for vb in vbs]

    for cam in cams:
        cam.rect = (0, 0, 100, 100)

    cams[0].link(cams[1])
    cams[0].link(cams[2], axis='x')
    cams[0].link(cams[3], axis='y')

    cams[1].rect = (-20, -20, 130, 130)

    assert cams[0].rect.pos == (-20, -20) and cams[0].rect.size == (130, 130)
    assert cams[2].rect.pos == (-20, 0) and cams[2].rect.size == (130, 100)
    assert cams[3].rect.pos == (0, -20) and cams[3].rect.size == (100, 130)
Example #7
0
def test_turntable_camera_link():
    vbs = [ViewBox(camera='turntable') for _ in range(3)]
    cams = [vb.camera for vb in vbs]

    for cam in cams:
        cam.elevation = 45.0
        cam.azimuth = 120.0
        cam.scale_factor = 4.0

    cams[0].link(cams[1])
    cams[0].link(cams[2], props=['azimuth', 'elevation'])

    cams[1].elevation = 30.0
    cams[1].azimuth = 90.0
    cams[1].scale_factor = 2.0

    assert cams[0].elevation == 30.0
    assert cams[0].azimuth == 90.0
    assert cams[0].scale_factor == 2.0

    assert cams[2].elevation == 30.0
    assert cams[2].azimuth == 90.0
    assert cams[2].scale_factor == 4.0
Example #8
0
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 reference_colourspace='CIE xyY',
                 correlate_colourspace='ACEScg',
                 settings=None,
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._reference_colourspace = None
        self.reference_colourspace = reference_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace

        self._settings = None
        self.settings = settings

        self._camera_presets = {}
        self._visuals_style_presets = OrderedDict()
        self._axis_presets = {}

        self._grid = None

        self._label = None

        self._colourspace_visual_resolution = 16
        self._colourspace_visual_resolution_limits = (1, 64)

        self._input_colourspace_visual = None
        self._correlate_colourspace_visual = None
        self._RGB_scatter_visual = None
        self._pointer_gamut_visual = None
        self._pointer_gamut_hull_visual = None
        self._spectral_locus_visual = None
        self._grid_visual = None
        self._axis_visual = None

        self._visuals = ('RGB_scatter_visual', 'input_colourspace_visual',
                         'correlate_colourspace_visual',
                         'pointer_gamut_visual', 'pointer_gamut_hull_visual',
                         'spectral_locus_visual', 'grid_visual', 'axis_visual')

        self._visuals_visibility = None

        self._create_presets()

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True
    def __init__(self,
                 scene_canvas=None,
                 image=None,
                 input_colourspace='ITU-R BT.709',
                 reference_colourspace='CIE xyY',
                 correlate_colourspace='ACEScg',
                 settings=None,
                 **kwargs):
        self._initialised = False

        ViewBox.__init__(self, **kwargs)

        self.unfreeze()

        self._scene_canvas = scene_canvas

        self._image = None
        self.image = image
        self._input_colourspace = None
        self.input_colourspace = input_colourspace
        self._reference_colourspace = None
        self.reference_colourspace = reference_colourspace
        self._correlate_colourspace = None
        self.correlate_colourspace = correlate_colourspace

        self._settings = None
        self.settings = settings

        self._camera_presets = {}
        self._visuals_style_presets = OrderedDict()
        self._axis_presets = {}

        self._grid = None

        self._label = None

        self._colourspace_visual_resolution = 16
        self._colourspace_visual_resolution_limits = (1, 64)

        self._input_colourspace_visual = None
        self._correlate_colourspace_visual = None
        self._RGB_scatter_visual = None
        self._pointer_gamut_visual = None
        self._pointer_gamut_hull_visual = None
        self._spectral_locus_visual = None
        self._grid_visual = None
        self._axis_visual = None

        self._visuals = ('RGB_scatter_visual', 'input_colourspace_visual',
                         'correlate_colourspace_visual',
                         'pointer_gamut_visual', 'pointer_gamut_hull_visual',
                         'spectral_locus_visual', 'grid_visual', 'axis_visual')

        self._visuals_visibility = None

        self._create_presets()

        self._create_visuals()
        self._attach_visuals()
        self._create_camera()

        self._create_label()

        self._initialised = True