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)
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)
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)
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)
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)
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)