コード例 #1
0
    def __init__(self, camera):
        self._camera = camera.camera
        self._camera_node = camera.node
        self.original_parent = None

        self.handler_map = {'CAM_TOGGLE_FOLLOW': self.test_follow}
        #            'CAM_INDEPENDENT' : self._make_independent}

        event.register_handlers(self.handler_map)

        # This sets up automatic setting of the key down properties
        watched_buttons = {
            '_forward': ['CAM_FORWARD'],
            '_backward': ['CAM_BACK'],
            '_left': ['CAM_LEFT'],
            '_right': ['CAM_RIGHT'],
            '_down': ['CAM_DOWN'],
            '_up': ['CAM_UP'],
            '_pitch_up': ['CAM_PITCH_UP'],
            '_pitch_down': ['CAM_PITCH_DOWN'],
            '_zoom_in': ['CAM_ZOOM_IN'],
            '_zoom_out': ['CAM_ZOOM_OUT'],
            '_yaw_left': ['CAM_YAW_LEFT'],
            '_yaw_right': ['CAM_YAW_RIGHT']
        }

        self.key_observer = ButtonStateObserver(self, watched_buttons)
コード例 #2
0
ファイル: graphics.py プロジェクト: venkatarajasekhar/tortuga
    def __init__(self, camera):
        self._camera = camera.camera
        self._camera_node = camera.node
        self.original_parent = None

        self.handler_map = {"CAM_TOGGLE_FOLLOW": self.test_follow}
        #            'CAM_INDEPENDENT' : self._make_independent}

        event.register_handlers(self.handler_map)

        # This sets up automatic setting of the key down properties
        watched_buttons = {
            "_forward": ["CAM_FORWARD"],
            "_backward": ["CAM_BACK"],
            "_left": ["CAM_LEFT"],
            "_right": ["CAM_RIGHT"],
            "_down": ["CAM_DOWN"],
            "_up": ["CAM_UP"],
            "_pitch_up": ["CAM_PITCH_UP"],
            "_pitch_down": ["CAM_PITCH_DOWN"],
            "_zoom_in": ["CAM_ZOOM_IN"],
            "_zoom_out": ["CAM_ZOOM_OUT"],
            "_yaw_left": ["CAM_YAW_LEFT"],
            "_yaw_right": ["CAM_YAW_RIGHT"],
        }

        self.key_observer = ButtonStateObserver(self, watched_buttons)
コード例 #3
0
ファイル: input.py プロジェクト: ChrisCarlsen/tortuga
 def __init__(self, subject, buttons):
     """
     @type subject: Anything
     @param subject: The object which the attribute is set on.
     
     @type buttons: Dict
     @param buttons: Maps attribute name to a list of events to watch for
                     that attribute.
     """
     
     self._attr_codes = {}
     self._subject = subject
     
     handler_map = {}
     for attr_name, event_types in buttons.iteritems():
         # Ensure the attribute exists on the object
         if not hasattr(subject, attr_name):
             setattr(subject, attr_name, False)
         self._attr_codes[attr_name] = set()
             
         # Generate our handler function
         handler = self.generate_handler(attr_name)
         
         for event_type in event_types:
             event.register_handlers(event_type, handler)
コード例 #4
0
ファイル: input.py プロジェクト: stormageAC/tortuga
    def __init__(self, subject, buttons):
        """
        @type subject: Anything
        @param subject: The object which the attribute is set on.
        
        @type buttons: Dict
        @param buttons: Maps attribute name to a list of events to watch for
                        that attribute.
        """

        self._attr_codes = {}
        self._subject = subject

        handler_map = {}
        for attr_name, event_types in buttons.iteritems():
            # Ensure the attribute exists on the object
            if not hasattr(subject, attr_name):
                setattr(subject, attr_name, False)
            self._attr_codes[attr_name] = set()

            # Generate our handler function
            handler = self.generate_handler(attr_name)

            for event_type in event_types:
                event.register_handlers(event_type, handler)
コード例 #5
0
ファイル: input.py プロジェクト: ChrisCarlsen/tortuga
    def __init__(self, config, input_sys, window): #, keyboard):
        self._window = window
        self._input_sys = input_sys
        
        # Call C++ Super class constructor
#       OIS.MouseListener.__init__( self)
        OIS.KeyListener.__init__(self)
        Ogre.WindowEventListener.__init__(self)
#        self._setup_logging(config.get()
#        self.logger.info('* * * Beginning initialization')
        
        self._setup_ois()
        event.register_handlers('SIM_UPDATE', self._update)
        
        #self.logger.info('* * * Initialized')
        
        # Register our self as listener for the input events
#        mouse.setEventCallback(self)
        self.keyboard.setEventCallback(self)
コード例 #6
0
ファイル: input.py プロジェクト: stormageAC/tortuga
    def __init__(self, config, input_sys, window):  #, keyboard):
        self._window = window
        self._input_sys = input_sys

        # Call C++ Super class constructor
        #       OIS.MouseListener.__init__( self)
        OIS.KeyListener.__init__(self)
        Ogre.WindowEventListener.__init__(self)
        #        self._setup_logging(config.get()
        #        self.logger.info('* * * Beginning initialization')

        self._setup_ois()
        event.register_handlers('SIM_UPDATE', self._update)

        #self.logger.info('* * * Initialized')

        # Register our self as listener for the input events
        #        mouse.setEventCallback(self)
        self.keyboard.setEventCallback(self)
コード例 #7
0
    def __init__(self, config, deps):
        core.Subsystem.__init__(self, config.get("name", "Simulation"))
        Simulation.SIMULATION = self
        self._windowListener = WindowListener(self.windowClosed)

        self._simulation = simulation.Simulation(config)
        self._root = ogre.Root.getSingleton()

        self._debugOutput = config.get("debugOutput", False)

        # Load data file
        self._guiFileName = self._getGUIFileName(config)
        guiData = {}
        try:
            stream = file(self._guiFileName, "r")
            guiData = yaml.load(stream)
            stream.close()
        except (IOError, yaml.YAMLError):
            # File does not exist, ignore
            pass

        # Load settings and create screen
        simGUICfg = guiData.get("SIM", {})
        width = simGUICfg.get("windowWidth", 800)
        height = simGUICfg.get("windowHeight", 600)
        top = simGUICfg.get("windowTop", 100)
        left = simGUICfg.get("windowLeft", 100)
        params = ogre.NameValuePairList()
        params["top"] = str(top)
        params["left"] = str(left)

        self._window = self._root.createRenderWindow("Simulator", width, height, False, params)

        self._debug = config.get("debug", False)
        self._backgrounded = False

        # Load Scenes and grab the main one
        self._simulation.create_all_scenes()
        self.scene = self._simulation.get_scene("Main")

        # Input System
        self._inputForwarder = input.OISInputForwarder({}, self._simulation.input_system, self._window)

        event.register_handlers({"SCREENSHOT": self._onScreenshot})

        # Determine camera settings
        margin = 0.005
        width = 0.5 - 1.5 * margin
        height = width * 0.75
        top = 1 - margin - height
        mainHeight = 1 - 2 * margin - height
        if not config.get("vehicleView"):
            mainHeight = 1

        # Setup viewport
        camera = self.scene.get_camera("Main").camera
        camera.setAutoAspectRatio(True)
        viewport = self._window.addViewport(camera, height=mainHeight)
        viewport._updateDimensions()

        if config.get("vehicleView"):
            robot = self.scene._robots["Tortuga"]
            forwardCamera = Simulation._createCamera(robot, "_forward", (0.5, 0, 0), (1, 0, 0))
            viewport = self._window.addViewport(
                forwardCamera, ZOrder=1, top=top, left=margin, height=height, width=width
            )
            viewport._updateDimensions()

            downwardCamera = Simulation._createCamera(robot, "_downward", (0.5, 0, -0.1), (0, 0, -1))
            viewport = self._window.addViewport(
                downwardCamera, ZOrder=2, top=top, left=0.5 + margin / 2, height=height, width=width
            )
            viewport._updateDimensions()

        self._simulation.start()

        time.sleep(1)
        if self._debug:
            ogrenewt.Debugger.getSingleton().init(self.scene.scene_mgr)
コード例 #8
0
    def __init__(self, config, deps):
        core.Subsystem.__init__(self, config.get('name', 'Simulation'))
        Simulation.SIMULATION = self
        self._windowListener = WindowListener(self.windowClosed)

        self._simulation = simulation.Simulation(config)
        self._root = ogre.Root.getSingleton()

        self._debugOutput = config.get('debugOutput', False)

        # Load data file
        self._guiFileName = self._getGUIFileName(config)
        guiData = {}
        try:
            stream = file(self._guiFileName, 'r')
            guiData = yaml.load(stream)
            stream.close()
        except (IOError, yaml.YAMLError):
            # File does not exist, ignore
            pass

        # Load settings and create screen
        simGUICfg = guiData.get('SIM', {})
        width = simGUICfg.get("windowWidth", 800)
        height = simGUICfg.get("windowHeight", 600)
        top = simGUICfg.get("windowTop", 100)
        left = simGUICfg.get("windowLeft", 100)
        params = ogre.NameValuePairList()
        params['top'] = str(top)
        params['left'] = str(left)

        self._window = self._root.createRenderWindow("Simulator", width,
                                                     height, False, params)

        self._debug = config.get('debug', False)
        self._backgrounded = False

        # Load Scenes and grab the main one
        self._simulation.create_all_scenes()
        self.scene = self._simulation.get_scene('Main')

        # Input System
        self._inputForwarder = input.OISInputForwarder( \
            {}, self._simulation.input_system, self._window)

        event.register_handlers({'SCREENSHOT': self._onScreenshot})

        # Determine camera settings
        margin = 0.005
        width = 0.5 - 1.5 * margin
        height = width * 0.75
        top = 1 - margin - height
        mainHeight = 1 - 2 * margin - height
        if not config.get('vehicleView'):
            mainHeight = 1

        # Setup viewport
        camera = self.scene.get_camera('Main').camera
        camera.setAutoAspectRatio(True)
        viewport = self._window.addViewport(camera, height=mainHeight)
        viewport._updateDimensions()

        if config.get('vehicleView'):
            robot = self.scene._robots['Tortuga']
            forwardCamera = Simulation._createCamera(robot, '_forward',
                                                     (0.5, 0, 0), (1, 0, 0))
            viewport = self._window.addViewport(forwardCamera,
                                                ZOrder=1,
                                                top=top,
                                                left=margin,
                                                height=height,
                                                width=width)
            viewport._updateDimensions()

            downwardCamera = Simulation._createCamera(robot, '_downward',
                                                      (0.5, 0, -0.1),
                                                      (0, 0, -1))
            viewport = self._window.addViewport(downwardCamera,
                                                ZOrder=2,
                                                top=top,
                                                left=0.5 + margin / 2,
                                                height=height,
                                                width=width)
            viewport._updateDimensions()

        self._simulation.start()

        time.sleep(1)
        if self._debug:
            ogrenewt.Debugger.getSingleton().init(self.scene.scene_mgr)