Ejemplo n.º 1
0
        def __init__(self, parent, head_navigator=None, laser=False,
                                                    use_viewpoint=False):
            super(Common, self).__init__(parent)

            if laser:
                controller = bge.logic.getCurrentController()
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self, controller.owner,
                                                controller.sensors[laser])

            if self.BlenderVR.isMaster() and head_navigator is not None:
                if type(head_navigator) is not dict:
                    head_navigator = {}
                if 'method' not in head_navigator:
                    head_navigator['method'] = None
                if 'one_per_user' not in head_navigator:
                    head_navigator['one_per_user'] = True

                from blendervr.interactor.head_controlled_navigation import (
                                                                        HCNav)
                self._navigator = HCNav(self, method=head_navigator['method'],
                                one_per_user=head_navigator['one_per_user'])
                self._navigator.setDefaultUser(
                                        self.BlenderVR.getUserByName('user A'))
                self.registerInteractor(self._navigator)

            if use_viewpoint:
                from blendervr.interactor.viewpoint import ViewPoint
                self._viewpoint = ViewPoint(self)
                self._viewpoint.viewpointScale = 0.2
                self.registerInteractor(self._viewpoint)
Ejemplo n.º 2
0
    class Processor(blendervr.processor.getProcessor()):
        def __init__(self, creator, laser=False):
            super(Processor, self).__init__(creator)
            if laser:
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self)

        def process(self, controller):
            if hasattr(self, '_laser'):
                self._laser.process(controller)
Ejemplo n.º 3
0
    class Processor(blendervr.processor.getProcessor()):

        def __init__(self, creator, laser=False):
            super(Processor, self).__init__(creator)
            if laser:
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self)

        def process(self, controller):
            if hasattr(self, '_laser'):
                self._laser.process(controller)
Ejemplo n.º 4
0
        def __init__(self, parent, head_navigator=None, laser=False,
                                                    use_viewpoint=False):
            super(Common, self).__init__(parent)

            if laser:
                controller = bge.logic.getCurrentController()
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self, controller.owner,
                                                controller.sensors[laser])

            if self.BlenderVR.isMaster() and head_navigator is not None:
                if type(head_navigator) is not dict:
                    head_navigator = {}
                if 'method' not in head_navigator:
                    head_navigator['method'] = None
                if 'one_per_user' not in head_navigator:
                    head_navigator['one_per_user'] = True

                from blendervr.interactor.head_controlled_navigation import (
                                                                        HCNav)
                self._navigator = HCNav(self, method=head_navigator['method'],
                                one_per_user=head_navigator['one_per_user'])
                self._navigator.setDefaultUser(
                                        self.BlenderVR.getUserByName('user A'))
                self.registerInteractor(self._navigator)

            if use_viewpoint:
                from blendervr.interactor.viewpoint import ViewPoint
                self._viewpoint = ViewPoint(self)
                self._viewpoint.viewpointScale = 0.2
                self.registerInteractor(self._viewpoint)
Ejemplo n.º 5
0
    class Common(blendervr.processor.getProcessor()):
        def __init__(self,
                     parent,
                     head_navigator=None,
                     laser=False,
                     use_viewpoint=False):
            super(Common, self).__init__(parent)

            if laser:
                controller = bge.logic.getCurrentController()
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self, controller.owner,
                                    controller.sensors[laser])

            if self.BlenderVR.isMaster() and head_navigator is not None:
                if type(head_navigator) is not dict:
                    head_navigator = {}
                if 'method' not in head_navigator:
                    head_navigator['method'] = None
                if 'one_per_user' not in head_navigator:
                    head_navigator['one_per_user'] = True

                from blendervr.interactor.head_controlled_navigation import (
                    HCNav)
                self._navigator = HCNav(
                    self,
                    method=head_navigator['method'],
                    one_per_user=head_navigator['one_per_user'])
                self._navigator.setDefaultUser(
                    self.BlenderVR.getUserByName('user A'))
                self.registerInteractor(self._navigator)

            if use_viewpoint:
                from blendervr.interactor.viewpoint import ViewPoint
                self._viewpoint = ViewPoint(self)
                self._viewpoint.viewpointScale = 0.2
                self.registerInteractor(self._viewpoint)

        def user_position(self, info):
            super(Common, self).user_position(info)
            if hasattr(self, '_navigator'):
                for user in info['users']:
                    self._navigator.setHeadLocation(user, info)

        def tracker_1(self, info):
            if hasattr(self, '_laser'):
                obj = self._laser.getObject()
                obj.localPosition = info['matrix'].to_translation()
                obj.localOrientation = info['matrix'].to_3x3() \
                    * mathutils.Matrix.Rotation(math.radians(-90.0), 3, 'X')

        def texts(self, info):
            self.logger.debug(info['message'])
            if info['message'] == 'COMPUTER QUIT':
                self.BlenderVR.quit("because user asked !")
            if hasattr(self, '_navigator'):
                cmd = None
                if info['message'] == 'COMPUTER CALIBRATION':
                    cmd = self._navigator.CALIBRATE
                elif info['message'] == 'COMPUTER NAVIGATION':
                    cmd = self._navigator.TOGGLE
                elif info['message'] == 'COMPUTER HOME':
                    self.reset(info['users'])

                if cmd is not None:
                    for user in info['users']:
                        self._navigator.update(cmd, user)
                    self.sendToConsole('navigation_state',
                                       self._navigator.getNavigationState())

        def reset(self, users=None):
            if not hasattr(self, '_navigator'):
                return
            if users is None:
                users = list(self.BlenderVR.getAllUsers().values())
            for user in users:
                self._navigator.update(self._navigator.RESET, user)
                user.resetVehiclePosition()

        def keyboardAndMouse(self, info):
            try:
                if info['key'] == ord('q'):
                    self.BlenderVR.quit("pressed 'q' key")
                if (info['key'] == ord('v')
                        and info['state'] == device.STATE_PRESS
                        and hasattr(self, '_viewpoint')):
                    self._viewpoint.activation(
                        not self._viewpoint.isActivated())
                    return
            except (KeyError, SystemExit):
                pass
            except:
                self.logger.log_traceback(False)
            super(Common, self).keyboardAndMouse(info)
Ejemplo n.º 6
0
 def __init__(self, creator, laser=False):
     super(Processor, self).__init__(creator)
     if laser:
         from blendervr.interactor.laser import Laser
         self._laser = Laser(self)
Ejemplo n.º 7
0
    class Common(blendervr.processor.getProcessor()):
        def __init__(self, parent, head_navigator=None, laser=False,
                                                    use_viewpoint=False):
            super(Common, self).__init__(parent)

            if laser:
                controller = bge.logic.getCurrentController()
                from blendervr.interactor.laser import Laser
                self._laser = Laser(self, controller.owner,
                                                controller.sensors[laser])

            if self.BlenderVR.isMaster() and head_navigator is not None:
                if type(head_navigator) is not dict:
                    head_navigator = {}
                if 'method' not in head_navigator:
                    head_navigator['method'] = None
                if 'one_per_user' not in head_navigator:
                    head_navigator['one_per_user'] = True

                from blendervr.interactor.head_controlled_navigation import (
                                                                        HCNav)
                self._navigator = HCNav(self, method=head_navigator['method'],
                                one_per_user=head_navigator['one_per_user'])
                self._navigator.setDefaultUser(
                                        self.BlenderVR.getUserByName('user A'))
                self.registerInteractor(self._navigator)

            if use_viewpoint:
                from blendervr.interactor.viewpoint import ViewPoint
                self._viewpoint = ViewPoint(self)
                self._viewpoint.viewpointScale = 0.2
                self.registerInteractor(self._viewpoint)

        def user_position(self, info):
            super(Common, self).user_position(info)
            if hasattr(self, '_navigator'):
                for user in info['users']:
                    self._navigator.setHeadLocation(user, info)

        def tracker_1(self, info):
            if hasattr(self, '_laser'):
                obj = self._laser.getObject()
                obj.localPosition = info['matrix'].to_translation()
                obj.localOrientation = info['matrix'].to_3x3() \
                    * mathutils.Matrix.Rotation(math.radians(-90.0), 3, 'X')

        def texts(self, info):
            self.logger.debug(info['message'])
            if info['message'] == 'COMPUTER QUIT':
                self.BlenderVR.quit("because user asked !")
            if hasattr(self, '_navigator'):
                cmd = None
                if info['message'] == 'COMPUTER CALIBRATION':
                    cmd = self._navigator.CALIBRATE
                elif info['message'] == 'COMPUTER NAVIGATION':
                    cmd = self._navigator.TOGGLE
                elif info['message'] == 'COMPUTER HOME':
                    self.reset(info['users'])

                if cmd is not None:
                    for user in info['users']:
                        self._navigator.update(cmd, user)
                    self.sendToConsole('navigation_state',
                                self._navigator.getNavigationState())

        def reset(self, users = None):
            if not hasattr(self, '_navigator'):
                return
            if users is None:
                users = list(self.BlenderVR.getAllUsers().values())
            for user in users:
                self._navigator.update(self._navigator.RESET, user)
                user.resetVehiclePosition()

        def keyboardAndMouse(self, info):
            try:
                if info['key'] == ord('q'):
                    self.BlenderVR.quit("pressed 'q' key")
                if (info['key'] == ord('v')
                        and info['state'] == device.STATE_PRESS
                        and hasattr(self, '_viewpoint')):
                    self._viewpoint.activation(
                                    not self._viewpoint.isActivated())
                    return
            except (KeyError, SystemExit):
                pass
            except:
                self.logger.log_traceback(False)
            super(Common, self).keyboardAndMouse(info)
Ejemplo n.º 8
0
 def __init__(self, creator, laser=False):
     super(Processor, self).__init__(creator)
     if laser:
         from blendervr.interactor.laser import Laser
         self._laser = Laser(self)