[go: up one dir, main page]

File: View.py

package info (click to toggle)
uranium 3.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,876 kB
  • sloc: python: 22,349; sh: 111; makefile: 11
file content (58 lines) | stat: -rw-r--r-- 1,844 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Copyright (c) 2015 Ultimaker B.V.
# Uranium is released under the terms of the LGPLv3 or higher.
from typing import Optional
from UM.View.Renderer import Renderer
from UM.PluginObject import PluginObject

import UM.Application

MYPY = False
if MYPY:
    from UM.Controller import Controller


## Abstract base class for view objects.
class View(PluginObject):
    def __init__(self):
        super().__init__()
        self._renderer = None  # type: Optional[Renderer]
        self._controller = UM.Application.Application.getInstance().getController()  # type: Controller

    ##  Get the controller object associated with this View.
    #   \sa Controller
    def getController(self):
        return self._controller

    ##  Set the controller object associated with this View.
    #   \param controller The controller object to use.
    #   \sa Controller
    def setController(self, controller: "Controller"):
        self._controller = controller

    ##  Get the Renderer instance for this View.
    def getRenderer(self):
        return self._renderer

    ##  Set the renderer object to use with this View.
    #   \param renderer \type{Renderer} The renderer to use.
    def setRenderer(self, renderer: Renderer):
        self._renderer = renderer

    ##  Begin the rendering process.
    #
    #   This should queue all the meshes that should be rendered.
    def beginRendering(self):
        raise NotImplementedError()

    ##  Perform any steps needed when ending the rendering process.
    #
    #   If there is any cleanup or other tasks that need to be performed
    #   after rendering this method should be used.
    def endRendering(self):
        raise NotImplementedError()
    
    ##  Handle an event.
    #   \param event \type{Event} The event to handle.
    #   \sa Event
    def event(self, event):
        pass