def initEvents(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawEvent = vizconnect.getRawEventDict() #VC: initialize a new event _name = 'TOGGLE_MODEL_EVENT' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown(47):# make=Generic, model=Keyboard, name=keyboard, signal=Key V event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'RESTORE_MODEL_EVENT' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown(19):# make=Generic, model=Keyboard, name=keyboard, signal=Key R event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: return values can be modified here return None
def initEvents(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawEvent = vizconnect.getRawEventDict() #VC: initialize a new event _name = 'CHANGE_SCENES' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown(46):# make=Generic, model=Keyboard, name=keyboard, signal=Key C event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'grabber' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init which needs to happen before viz.go if initFlag&vizconnect.INIT_PREVIZGO: viz.setOption('viz.display.stencil',1) #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools from tools import grabber from tools import highlighter #VC: set some parameters usingPhysics = False highlightMode = tools.highlighter.MODE_OUTLINE placementMode = tools.placer.MODE_MID_AIR #VC: create the raw object rawTool[_name] = grabber.Grabber(usingPhysics=usingPhysics, usingSprings=usingPhysics, highlightMode=highlightMode, placementMode=placementMode, updatePriority=vizconnect.PRIORITY_ANIMATOR+3) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Left Mouse Button tool.grabAndHold() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Grabber') #VC: set the parent of the node if initFlag&vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent(vizconnect.getAvatar('main_avatar').getAttachmentPoint('r_hand')) #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'grabber' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init which needs to happen before viz.go if initFlag&vizconnect.INIT_PREVIZGO: viz.setOption('viz.display.stencil',1) #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools from tools import grabber from tools import highlighter #VC: set some parameters usingPhysics = False highlightMode = tools.highlighter.MODE_OUTLINE placementMode = tools.placer.MODE_MID_AIR #VC: create the raw object rawTool[_name] = grabber.Grabber(usingPhysics=usingPhysics, usingSprings=usingPhysics, highlightMode=highlightMode, placementMode=placementMode, updatePriority=vizconnect.PRIORITY_ANIMATOR+3) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['mouse_buttons'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=mouse_buttons, signal=Left Mouse Button tool.grabAndHold() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Grabber') #VC: set the parent of the node if initFlag&vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent(vizconnect.getAvatar('head_and_hand').getAttachmentPoint('r_hand')) #VC: return values can be modified here return None
def initInputs(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawInput = vizconnect.getRawInputDict() #VC: initialize a new input _name = 'r_hand_input' if vizconnect.isPendingInit('input', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: create the raw object rawInput[_name] = viz.mouse #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addInput(rawInput[_name], _name, make='Generic', model='Mouse Buttons') #VC: init the mappings for the wrapper if initFlag&vizconnect.INIT_WRAPPER_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(input): if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Left Mouse Button input.setQuasimode('alt1') vizconnect.getInput(_name).setUpdateFunction(update) #VC: initialize a new input _name = 'keyboard' if vizconnect.isPendingInit('input', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters index = 0 #VC: create the raw object d = viz.add('directinput.dle') device = d.getKeyboardDevices()[index] rawInput[_name] = d.addKeyboard(device) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addInput(rawInput[_name], _name, make='Generic', model='Keyboard') #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'proxy' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from tools import proxy rawTool[_name] = proxy.Proxy() #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['flystick_buttons'].isButtonDown( 0 ): # make=Generic, model=VRPN Buttons, name=flystick_buttons, signal=Button 0 tool.action1() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Proxy') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getAvatar('head_and_hand').getAttachmentPoint( 'r_hand')) #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'proxy' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: create the raw object from tools import proxy rawTool[_name] = proxy.Proxy() #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Left Mouse Button tool.action1() if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_RIGHT:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Right Mouse Button tool.action2() if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_MIDDLE:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Middle Mouse Button tool.action3() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Proxy') #VC: set the parent of the node if initFlag&vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent(vizconnect.getAvatar('main_avatar').getAttachmentPoint('r_hand')) #VC: set the name of the default vizconnect.setDefault('tool', 'proxy') #VC: return values can be modified here return None
def joystick_action(): global current_node global global_sphere global global_navigation_enabled # BUTTON_TRIGGER = 'space' # BUTTON_1 = 'a' # BUTTON_2 = 'b' rawInput = vizconnect.getConfiguration().getRawDict("input") BUTTON_LEFT = 4 BUTTON_RIGHT = 1 BUTTON_TRIGGER = 0 if rawInput['flystick'].isButtonDown(BUTTON_TRIGGER): global_navigation_enabled = False if global_navigation_enabled == True else True global_plane.visible(viz.TOGGLE) print("Navigation Enabled: " + str(global_navigation_enabled)) print("Plane Enabled: " + str(global_plane.getVisible()) ) if global_navigation_enabled: if rawInput['flystick'].isButtonDown(BUTTON_LEFT): print("left") if (current_node.left is not None): current_node = current_node.left load_scene(current_node, global_sphere, global_plane) # viz.playSound('sounds/click.wav',viz.SOUND_PRELOAD) elif rawInput['flystick'].isButtonDown(BUTTON_RIGHT): print("right") if (current_node.right is not None): current_node = current_node.right load_scene(current_node, global_sphere, global_plane) # viz.playSound('sounds/click.wav',viz.SOUND_PRELOAD) elif (current_node.left is not None): current_node = current_node.left load_scene(current_node, global_sphere, global_plane)
def initInputs(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawInput = vizconnect.getRawInputDict() #VC: initialize a new input _name = 'keyboard' if vizconnect.isPendingInit('input', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters index = 0 #VC: create the raw object d = viz.add('directinput.dle') device = d.getKeyboardDevices()[index] rawInput[_name] = d.addKeyboard(device) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addInput(rawInput[_name], _name, make='Generic', model='Keyboard') #VC: initialize a new input _name = 'r_hand_input' if vizconnect.isPendingInit('input', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters index = 0 #VC: create the raw object import steamvr try: input = steamvr.getControllerList()[index] input._isValid = True except IndexError: viz.logWarn( "** WARNING: Not able to connect to a controller at index {0}. It's likely that not enough controllers are connected." .format(index)) input = viz.VizExtensionSensor(-1) input.isButtonDown = lambda e: False input.getTrackpad = lambda: [0, 0] input._isValid = False rawInput[_name] = input #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addInput(rawInput[_name], _name, make='HTC', model='Vive Controller') #VC: init the mappings for the wrapper if initFlag & vizconnect.INIT_WRAPPER_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(input): if rawInput['r_hand_input'].isButtonDown( 2 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Trigger input.setQuasimode() vizconnect.getInput(_name).setUpdateFunction(update) #VC: initialize a new input _name = 'l_hand_input' if vizconnect.isPendingInit('input', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters index = 1 #VC: create the raw object import steamvr try: input = steamvr.getControllerList()[index] input._isValid = True except IndexError: viz.logWarn( "** WARNING: Not able to connect to a controller at index {0}. It's likely that not enough controllers are connected." .format(index)) input = viz.VizExtensionSensor(-1) input.isButtonDown = lambda e: False input.getTrackpad = lambda: [0, 0] input._isValid = False rawInput[_name] = input #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addInput(rawInput[_name], _name, make='HTC', model='Vive Controller') #VC: set the name of the default vizconnect.setDefault('input', 'r_hand_input') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'walking' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters height = 0 acceleration = 4 maxSpeed = 10.44 rotationAcceleration = 90 maxRotationSpeed = 120 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 transportationGroup = None #VC: create the raw object from transportation import walking rawTransport[_name] = walking.Walking( node=transportationGroup, height=height, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['joystick'].getPosition()[1] < -0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Up transport.moveForward(mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition()[1] > 0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Down transport.moveBackward(mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition()[0] < -0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Left transport.moveLeft(mag=abs(rawInput['joystick'].getPosition()[0])) if rawInput['joystick'].getPosition()[0] > 0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Right transport.moveRight(mag=abs(rawInput['joystick'].getPosition()[0])) if rawInput['joystick'].getRotation()[0] < -0.05:# make=Generic, model=Joystick, name=joystick, signal=Rotate X Left transport.turnLeft(mag=abs(rawInput['joystick'].getRotation()[0])) if rawInput['joystick'].getRotation()[0] > 0.05:# make=Generic, model=Joystick, name=joystick, signal=Rotate X Right transport.turnRight(mag=abs(rawInput['joystick'].getRotation()[0])) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='Walking') #VC: set the parent of the node if initFlag&vizconnect.INIT_PARENTS: vizconnect.getTransport(_name).setParent(vizconnect.getRoot()) #VC: set the name of the default vizconnect.setDefault('transport', 'wandmagicccarpet') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'wandmagiccarpet' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = None debug = False acceleration = 2 maxSpeed = 2 rotationAcceleration = 60 maxRotationSpeed = 65 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['flystick_analog'].getData()[1] > 0.05:# make=Generic, model=VRPN Analog, name=flystick_analog, signal=Analog 1 Positive transport.moveForward(mag=abs(rawInput['flystick_analog'].getData()[1])) if rawInput['flystick_analog'].getData()[1] < -0.05:# make=Generic, model=VRPN Analog, name=flystick_analog, signal=Analog 1 Negative transport.moveBackward(mag=abs(rawInput['flystick_analog'].getData()[1])) if rawInput['flystick_analog'].getData()[0] < -0.05:# make=Generic, model=VRPN Analog, name=flystick_analog, signal=Analog 0 Negative transport.moveLeft(mag=abs(rawInput['flystick_analog'].getData()[0])) if rawInput['flystick_analog'].getData()[0] > 0.05:# make=Generic, model=VRPN Analog, name=flystick_analog, signal=Analog 0 Positive transport.moveRight(mag=abs(rawInput['flystick_analog'].getData()[0])) if rawInput['flystick_buttons'].isButtonDown(3):# make=Generic, model=VRPN Buttons, name=flystick_buttons, signal=Button 3 transport.moveUp(mag=1) if rawInput['flystick_buttons'].isButtonDown(2):# make=Generic, model=VRPN Buttons, name=flystick_buttons, signal=Button 2 transport.moveDown(mag=1) if rawInput['flystick_buttons'].isButtonDown(4):# make=Generic, model=VRPN Buttons, name=flystick_buttons, signal=Button 4 transport.turnLeft(mag=1) if rawInput['flystick_buttons'].isButtonDown(1):# make=Generic, model=VRPN Buttons, name=flystick_buttons, signal=Button 1 transport.turnRight(mag=1) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the pivot of the node if initFlag&vizconnect.INIT_PIVOTS: vizconnect.getTransport(_name).setPivot(vizconnect.getAvatar('head_and_hand').getAttachmentPoint('head').getNode3d()) #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'walking' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters height = 0 acceleration = 4 maxSpeed = 10.44 rotationAcceleration = 90 maxRotationSpeed = 120 autoBreakingDragCoef = 0.1 dragCoef = 0.001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.001 transportationGroup = None #VC: create the raw object from transportation import walking rawTransport[_name] = walking.Walking( node=transportationGroup, height=height, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['joystick'].getPosition( )[1] < -0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Up transport.moveForward( mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition( )[1] > 0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Down transport.moveBackward( mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition( )[0] < -0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Left transport.moveLeft( mag=abs(rawInput['joystick'].getPosition()[0])) if rawInput['joystick'].getPosition( )[0] > 0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Right transport.moveRight( mag=abs(rawInput['joystick'].getPosition()[0])) if rawInput['joystick'].getPosition( )[2] < -0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Z Down transport.moveUp( mag=abs(rawInput['joystick'].getPosition()[2])) if rawInput['joystick'].getPosition( )[2] > 0.25: # make=Generic, model=Joystick, name=joystick, signal=Analog Z Up transport.moveDown( mag=abs(rawInput['joystick'].getPosition()[2])) if rawInput['joystick'].getRotation( )[1] > 0.25: # make=Generic, model=Joystick, name=joystick, signal=Rotate Y Right transport.lookUp( mag=abs(rawInput['joystick'].getRotation()[1])) if rawInput['joystick'].getRotation( )[1] < -0.25: # make=Generic, model=Joystick, name=joystick, signal=Rotate Y Left transport.lookDown( mag=abs(rawInput['joystick'].getRotation()[1])) if rawInput['joystick'].getRotation( )[0] < -0.25: # make=Generic, model=Joystick, name=joystick, signal=Rotate X Left transport.turnLeft( mag=abs(rawInput['joystick'].getRotation()[0])) if rawInput['joystick'].getRotation( )[0] > 0.25: # make=Generic, model=Joystick, name=joystick, signal=Rotate X Right transport.turnRight( mag=abs(rawInput['joystick'].getRotation()[0])) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='Walking') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTransport(_name).setParent(vizconnect.getRoot()) #VC: set the pivot of the node if initFlag & vizconnect.INIT_PIVOTS: vizconnect.getTransport(_name).setPivot(None) #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'grabber' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init which needs to happen before viz.go if initFlag & vizconnect.INIT_PREVIZGO: viz.setOption('viz.display.stencil', 1) #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools from tools import grabber from tools import highlighter #VC: set some parameters usingPhysics = False highlightMode = tools.highlighter.MODE_OUTLINE placementMode = tools.placer.MODE_MID_AIR #VC: create the raw object rawTool[_name] = grabber.Grabber( usingPhysics=usingPhysics, usingSprings=usingPhysics, highlightMode=highlightMode, placementMode=placementMode, updatePriority=vizconnect.PRIORITY_ANIMATOR + 3) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals #def update(tool): #if rawInput['joystick'].isInMode('super') and rawInput['joystick'].isButtonDown(4):# make=Generic, model=Joystick, name=joystick, signal=Button 4 #tool.grab() #rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Grabber') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getTracker('ppt_rhand')) #VC: initialize a new tool _name = 'grabber2' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init which needs to happen before viz.go if initFlag & vizconnect.INIT_PREVIZGO: viz.setOption('viz.display.stencil', 1) #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools from tools import grabber from tools import highlighter #VC: set some parameters usingPhysics = True highlightMode = tools.highlighter.MODE_OUTLINE placementMode = tools.placer.MODE_MID_AIR #VC: create the raw object rawTool[_name] = grabber.Grabber( usingPhysics=usingPhysics, usingSprings=usingPhysics, highlightMode=highlightMode, placementMode=placementMode, updatePriority=vizconnect.PRIORITY_ANIMATOR + 3) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Grabber') #VC: set the name of the default vizconnect.setDefault('tool', 'grabber') #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'grabber' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init which needs to happen before viz.go if initFlag & vizconnect.INIT_PREVIZGO: viz.setOption('viz.display.stencil', 1) #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools from tools import grabber from tools import highlighter #VC: set some parameters usingPhysics = True highlightMode = tools.highlighter.MODE_OUTLINE placementMode = tools.placer.MODE_MID_AIR #VC: create the raw object rawTool[_name] = grabber.Grabber( usingPhysics=usingPhysics, usingSprings=usingPhysics, highlightMode=highlightMode, placementMode=placementMode, updatePriority=vizconnect.PRIORITY_ANIMATOR + 3) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['flystick'].isButtonDown( 0 ): # make=ART, model=Flystick, name=flystick, signal=Button 0 tool.grabAndHold() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Grabber') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getAvatar('head_and_hand').getAttachmentPoint( 'r_hand')) #VC: initialize a new tool _name = 'laser_pointer' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters displayDistance = True #VC: create the raw object from tools import laser_pointer rawTool[_name] = laser_pointer.LaserPointer( displayDistance=displayDistance, updatePriority=vizconnect.PRIORITY_ANIMATOR + 3) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['flystick'].isButtonDown( 5 ): # make=ART, model=Flystick, name=flystick, signal=Button 5 tool.shoot() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Laser Pointer') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getAvatar('head_and_hand').getAttachmentPoint( 'r_hand')) #VC: set the name of the default vizconnect.setDefault('tool', 'grabber') #VC: return values can be modified here return None
def initAvatars(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawAvatar = vizconnect.getRawAvatarDict() #VC: initialize a new avatar _name = 'head_and_hand' if vizconnect.isPendingInit('avatar', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters rightHandFilename = 'glove.cfg' leftHandFilename = '' #VC: create the raw object # base avatar avatar = viz.addGroup() avatar._bodyPartDict = {} avatar._handModelDict = {} # head head = viz.addGroup() head.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_HEAD] = head # left hand if leftHandFilename: leftHand = avatar.add(leftHandFilename) avatar.leftHandFilename = leftHandFilename else: leftHand = viz.addGroup() avatar.leftHandFilename = None leftHand.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_L_HAND] = leftHand # right hand if rightHandFilename: rightHand = avatar.add(rightHandFilename) avatar.rightHandFilename = rightHandFilename else: rightHand = viz.addGroup() avatar.rightHandFilename = None rightHand.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_R_HAND] = rightHand # done rawAvatar[_name] = avatar #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addAvatar(rawAvatar[_name], _name, make='Generic', model='Head and Hand') #VC: init the gestures if initFlag&vizconnect.INIT_GESTURES: #VC: need to get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: gestures for the avatar's r_hand import hand # remove the old hand rightHand = rawAvatar[_name]._bodyPartDict[vizconnect.AVATAR_R_HAND] if rightHand: rightHand.remove() # add a new hand def initHand(): sensor = hand.InputSensor() rawAvatar[_name].handSensor = sensor sensor.createHandRenderer = lambda *args,**kw: hand._InputDeviceRenderer(*args,**kw) def appliedGetData(): #VC: set the mappings for the gestures if rawInput['mouse_buttons'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=mouse_buttons, signal=Left Mouse Button return (hand.GESTURE_FIST, False, False)# GESTURE_FIST #VC: end gesture mappings return (hand.GESTURE_FLAT_HAND,False,False) sensor.getData = appliedGetData file=None if hasattr(rawAvatar[_name], "rightHandFilename"): file = rawAvatar[_name].rightHandFilename return hand.HandModel(left=False, type=hand.GLOVE_5DT, file=file, sensor=sensor) rightHand = initHand() rightHand.setParent(rawAvatar[_name]) rawAvatar[_name]._bodyPartDict[vizconnect.AVATAR_R_HAND] = rightHand rawAvatar[_name]._handModelDict[vizconnect.AVATAR_R_HAND] = rightHand #VC: gestures may change the raw avatar, so refresh the raw in the wrapper vizconnect.getAvatar(_name).setRaw(rawAvatar[_name]) #VC: init the animator if initFlag&vizconnect.INIT_ANIMATOR: # need to get the raw tracker dict for animating the avatars from vizconnect.util.avatar import animator from vizconnect.util.avatar import skeleton # get the skeleton from the avatar _skeleton = skeleton.Disembodied(rawAvatar[_name]) #VC: set which trackers animate which body part # format is: bone: (tracker, parent, degrees of freedom used) _trackerAssignmentDict = { vizconnect.AVATAR_HEAD:(vizconnect.getTracker('mouse_and_keyboard_walking').getNode3d(), None, vizconnect.DOF_6DOF), vizconnect.AVATAR_R_HAND:(vizconnect.getTracker('mouse_scrollwheel').getNode3d(), vizconnect.AVATAR_HEAD, vizconnect.DOF_POS), } #VC: create the raw object _rawAnimator = animator.Disembodied(rawAvatar[_name], _skeleton, _trackerAssignmentDict) #VC: set animator in wrapper (DO NOT EDIT) vizconnect.getAvatar(_name).setAnimator(_rawAnimator, make='Virtual', model='Disembodied') #VC: return values can be modified here return None
def initTools(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTool = vizconnect.getRawToolDict() #VC: initialize a new tool _name = 'proxy' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from tools import proxy rawTool[_name] = proxy.Proxy() #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(tool): if rawInput['flystick'].isButtonDown( 0 ): # make=ART, model=Flystick, name=flystick, signal=Button 0 tool.action1() if rawInput['flystick'].isButtonDown( 1 ): # make=ART, model=Flystick, name=flystick, signal=Button 1 tool.action2() if rawInput['flystick'].isButtonDown( 2 ): # make=ART, model=Flystick, name=flystick, signal=Button 2 tool.action3() if rawInput['flystick'].isButtonDown( 3 ): # make=ART, model=Flystick, name=flystick, signal=Button 3 tool.action4() if rawInput['flystick'].isButtonDown( 4 ): # make=ART, model=Flystick, name=flystick, signal=Button 4 tool.action5() if rawInput['flystick'].isButtonDown( 5 ): # make=ART, model=Flystick, name=flystick, signal=Button 5 tool.action() rawTool[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Proxy') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getAvatar('head_and_hand').getAttachmentPoint( 'r_hand')) #VC: initialize a new tool _name = 'laser_pointer' if vizconnect.isPendingInit('tool', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: initialization code needed by the parameters import tools.laser_pointer #VC: set some parameters displayDistance = True showEndNode = True distanceMetric = tools.laser_pointer.DISTANCE_METERS #VC: create the raw object endNode = None if showEndNode else viz.addGroup() rawTool[_name] = tools.laser_pointer.LaserPointer( displayDistance=displayDistance, updatePriority=vizconnect.PRIORITY_ANIMATOR + 3, endNode=endNode, distanceMetric=distanceMetric) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTool(rawTool[_name], _name, make='Virtual', model='Laser Pointer') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTool(_name).setParent( vizconnect.getAvatar('head_and_hand').getAttachmentPoint( 'l_hand')) #VC: set the name of the default vizconnect.setDefault('tool', 'proxy') #VC: return values can be modified here return None
def initEvents(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawEvent = vizconnect.getRawEventDict() #VC: initialize a new event _name = 'CONTROL_NEW_FILE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 49 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key N event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CYCLE_VIEW_MODE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['l_hand_input'].isButtonDown( 0 ): # make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Menu event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_MATERIAL_TRIGGER' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['r_hand_input'].isButtonDown( 3 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Trackpad event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLIP' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['r_hand_input'].isButtonDown( 1 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Grip event.sendOnce(e=viz.Event(mag=1)) if rawInput['l_hand_input'].isButtonDown( 1 ): # make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Grip event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLOUD_INCREASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['l_hand_input'].getTrackpad()[1] > 0.01 and\ rawInput['l_hand_input'].isButtonDown(3):# make=HTC, model=Vive Controller, name=l_hand_input, signal=Trackpad Top (along with) make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Trackpad event.sendOnce(e=viz.Event(mag=abs( rawInput['l_hand_input'].getTrackpad()[1]) * 1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLOUD_DECREASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['l_hand_input'].getTrackpad()[1] < -0.01 and\ rawInput['l_hand_input'].isButtonDown(3):# make=HTC, model=Vive Controller, name=l_hand_input, signal=Trackpad Bottom (along with) make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Trackpad event.sendOnce(e=viz.Event(mag=abs( rawInput['l_hand_input'].getTrackpad()[1]) * 1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_TOGGLE_STRESSINDICATOR' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['r_hand_input'].isButtonDown( 0 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Menu event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_TOGGLE_ENVIRONMENT' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 19 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key R event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_LEFT_HAND_GRAB' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['l_hand_input'].isButtonDown( 2 ): # make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Trigger event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_LEFT_HAND_RELEASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if not rawInput['l_hand_input'].isButtonDown( 2 ): # make=HTC, model=Vive Controller, name=l_hand_input, signal=Button Trigger event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_RIGHT_HAND_GRAB' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['r_hand_input'].isInMode( 'super' ) and rawInput['r_hand_input'].isButtonDown( 2 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Trigger event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_RIGHT_HAND_RELEASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['r_hand_input'].isInMode( 'super' ) and not rawInput['r_hand_input'].isButtonDown( 2 ): # make=HTC, model=Vive Controller, name=r_hand_input, signal=Button Trigger event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'wandmagiccarpet' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: request that any dependencies be created if initFlag & vizconnect.INIT_INDEPENDENT: initTrackers(vizconnect.INIT_INDEPENDENT, ['head_tracker']) #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = vizconnect.getTracker( 'head_tracker').getNode3d() debug = False acceleration = 2 maxSpeed = 2 rotationAcceleration = 60 maxRotationSpeed = 65 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['ppt_wand'].getJoystickPosition( )[1] < -0.05: # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Analog Up transport.moveForward(mag=abs( rawInput['ppt_wand'].getJoystickPosition()[1])) if rawInput['ppt_wand'].getJoystickPosition( )[1] > 0.05: # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Analog Down transport.moveBackward(mag=abs( rawInput['ppt_wand'].getJoystickPosition()[1])) if rawInput['ppt_wand'].isButtonDown( 1 ): # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Top Left Button transport.moveLeft(mag=1) if rawInput['ppt_wand'].isButtonDown( 2 ): # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Top Right Button transport.moveRight(mag=1) if rawInput['ppt_wand'].isButtonDown( 0 ): # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Bottom Left Button transport.moveUp(mag=1) if rawInput['ppt_wand'].isButtonDown( 3 ): # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Bottom Right Button transport.moveDown(mag=1) if rawInput['ppt_wand'].getJoystickPosition( )[0] < -0.05: # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Analog Left transport.turnLeft(mag=abs( rawInput['ppt_wand'].getJoystickPosition()[0])) if rawInput['ppt_wand'].getJoystickPosition( )[0] > 0.05: # make=WorldViz, model=PPT Wand, name=ppt_wand, signal=Analog Right transport.turnRight(mag=abs( rawInput['ppt_wand'].getJoystickPosition()[0])) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getTransport(_name).setParent(vizconnect.getRoot()) #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'wandmagiccarpet' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = None debug = False acceleration = 2 maxSpeed = 2 rotationAcceleration = 60 maxRotationSpeed = 65 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['flystick'].getJoystickPosition( )[1] > 0.05: # make=ART, model=Flystick, name=flystick, signal=Analog Down transport.moveForward(mag=1.0) if rawInput['keyboard'].isButtonDown( 17 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key W transport.moveForward(mag=1) if rawInput['flystick'].getJoystickPosition( )[1] < -0.05: # make=ART, model=Flystick, name=flystick, signal=Analog Up transport.moveBackward(mag=1.0) if rawInput['keyboard'].isButtonDown( 31 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key S transport.moveBackward(mag=1) if rawInput['keyboard'].isButtonDown( 30 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key A transport.moveLeft(mag=1) if rawInput['keyboard'].isButtonDown( 32 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key D transport.moveRight(mag=1) # if rawInput['flystick'].isButtonDown(2):# make=ART, model=Flystick, name=flystick, signal=Button 2 # transport.moveUp(mag=1.0) # if rawInput['flystick'].isButtonDown(1):# make=ART, model=Flystick, name=flystick, signal=Button 1 # transport.moveDown(mag=1.0) if rawInput['flystick'].getJoystickPosition( )[0] < -0.05: # make=ART, model=Flystick, name=flystick, signal=Analog Left transport.turnLeft(mag=1.0) if rawInput['flystick'].getJoystickPosition( )[0] > 0.05: # make=ART, model=Flystick, name=flystick, signal=Analog Right transport.turnRight(mag=1.0) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the name of the default vizconnect.setDefault('transport', 'wandmagiccarpet') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'main_transport' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: request that any dependencies be created if initFlag & vizconnect.INIT_INDEPENDENT: initTrackers(vizconnect.INIT_INDEPENDENT, ['head_tracker']) #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = vizconnect.getTracker( 'head_tracker').getNode3d() debug = False acceleration = 2 maxSpeed = 2 rotationAcceleration = 60 maxRotationSpeed = 65 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['r_hand_input'].getTrackpad( )[1] > 0.01: # make=HTC, model=Vive Controller, name=r_hand_input, signal=Trackpad Top transport.moveForward( mag=abs(rawInput['r_hand_input'].getTrackpad()[1])) if rawInput['r_hand_input'].getTrackpad( )[1] < -0.01: # make=HTC, model=Vive Controller, name=r_hand_input, signal=Trackpad Bottom transport.moveBackward( mag=abs(rawInput['r_hand_input'].getTrackpad()[1])) if rawInput['r_hand_input'].getTrackpad( )[0] < -0.01: # make=HTC, model=Vive Controller, name=r_hand_input, signal=Trackpad Left transport.moveLeft( mag=abs(rawInput['r_hand_input'].getTrackpad()[0])) if rawInput['r_hand_input'].getTrackpad( )[0] > 0.01: # make=HTC, model=Vive Controller, name=r_hand_input, signal=Trackpad Right transport.moveRight( mag=abs(rawInput['r_hand_input'].getTrackpad()[0])) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the pivot of the node if initFlag & vizconnect.INIT_PIVOTS: vizconnect.getTransport(_name).setPivot( vizconnect.getAvatar('main_avatar').getAttachmentPoint( 'head').getNode3d()) #VC: set the name of the default vizconnect.setDefault('transport', 'main_transport') #VC: return values can be modified here return None
def initAvatars(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawAvatar = vizconnect.getRawAvatarDict() #VC: initialize a new avatar _name = 'head_and_hand' if vizconnect.isPendingInit('avatar', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: set some parameters # rightHandFilename = 'glove.cfg' rightHandFilename = '' leftHandFilename = '' #VC: create the raw object # base avatar avatar = viz.addGroup() avatar._bodyPartDict = {} avatar._handModelDict = {} # head head = viz.addGroup() head.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_HEAD] = head # left hand if leftHandFilename: leftHand = avatar.add(leftHandFilename) avatar.leftHandFilename = leftHandFilename else: leftHand = viz.addGroup() avatar.leftHandFilename = None leftHand.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_L_HAND] = leftHand # right hand if rightHandFilename: rightHand = avatar.add(rightHandFilename) avatar.rightHandFilename = rightHandFilename else: rightHand = viz.addGroup() avatar.rightHandFilename = None rightHand.setParent(avatar) avatar._bodyPartDict[vizconnect.AVATAR_R_HAND] = rightHand # done rawAvatar[_name] = avatar #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addAvatar(rawAvatar[_name], _name, make='Generic', model='Head and Hand') #VC: init the gestures if initFlag & vizconnect.INIT_GESTURES: #VC: need to get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: gestures for the avatar's r_hand import hand # remove the old hand rightHand = rawAvatar[_name]._bodyPartDict[ vizconnect.AVATAR_R_HAND] if rightHand: rightHand.remove() # add a new hand def initHand(): sensor = hand.InputSensor() rawAvatar[_name].handSensor = sensor sensor.createHandRenderer = lambda *args, **kw: hand._InputDeviceRenderer( *args, **kw) def appliedGetData(): #VC: set the mappings for the gestures if rawInput['flystick'].isButtonDown( 0 ): # make=ART, model=Flystick, name=flystick, signal=Button 0 return (hand.GESTURE_FIST, False, False ) # GESTURE_FIST #VC: end gesture mappings return (hand.GESTURE_FLAT_HAND, False, False) sensor.getData = appliedGetData file = None if hasattr(rawAvatar[_name], "rightHandFilename"): file = rawAvatar[_name].rightHandFilename return hand.HandModel(left=False, type=hand.GLOVE_5DT, file=file, sensor=sensor) rightHand = initHand() rightHand.setParent(rawAvatar[_name]) rawAvatar[_name]._bodyPartDict[ vizconnect.AVATAR_R_HAND] = rightHand rawAvatar[_name]._handModelDict[ vizconnect.AVATAR_R_HAND] = rightHand #VC: gestures may change the raw avatar, so refresh the raw in the wrapper vizconnect.getAvatar(_name).setRaw(rawAvatar[_name]) #VC: init the animator if initFlag & vizconnect.INIT_ANIMATOR: # need to get the raw tracker dict for animating the avatars from vizconnect.util.avatar import animator from vizconnect.util.avatar import skeleton # get the skeleton from the avatar _skeleton = skeleton.Disembodied(rawAvatar[_name]) #VC: set which trackers animate which body part # format is: bone: (tracker, parent, degrees of freedom used) _trackerAssignmentDict = { vizconnect.AVATAR_HEAD: (vizconnect.getTracker('dtrack_head').getNode3d(), None, vizconnect.DOF_6DOF), vizconnect.AVATAR_R_HAND: (vizconnect.getTracker('dtrack_flystick').getNode3d(), None, vizconnect.DOF_6DOF), } #VC: create the raw object _rawAnimator = animator.Disembodied(rawAvatar[_name], _skeleton, _trackerAssignmentDict) #VC: set animator in wrapper (DO NOT EDIT) vizconnect.getAvatar(_name).setAnimator(_rawAnimator, make='Virtual', model='Disembodied') #VC: set the parent of the node if initFlag & vizconnect.INIT_PARENTS: vizconnect.getAvatar(_name).setParent( vizconnect.getGroup('cave_manual_configuration')) #VC: set the name of the default vizconnect.setDefault('avatar', 'head_and_hand') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'wandmagiccarpet' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: request that any dependencies be created if initFlag&vizconnect.INIT_INDEPENDENT: initTrackers(vizconnect.INIT_INDEPENDENT, ['merged']) #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = vizconnect.getTracker('merged').getNode3d() debug = False acceleration = 2.0 maxSpeed = 2.0 rotationAcceleration = 60.0 maxRotationSpeed = 65.0 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['keyboard'].isButtonDown(17):# make=Generic, model=Keyboard, name=keyboard, signal=Key W transport.moveForward(mag=1) if rawInput['keyboard'].isButtonDown(31):# make=Generic, model=Keyboard, name=keyboard, signal=Key S transport.moveBackward(mag=1) if rawInput['keyboard'].isButtonDown(30):# make=Generic, model=Keyboard, name=keyboard, signal=Key A transport.moveLeft(mag=1) if rawInput['keyboard'].isButtonDown(32):# make=Generic, model=Keyboard, name=keyboard, signal=Key D transport.moveRight(mag=1) if rawInput['keyboard'].isButtonDown(57):# make=Generic, model=Keyboard, name=keyboard, signal=Key SPACE transport.moveUp(mag=1) if rawInput['keyboard'].isButtonDown(29):# make=Generic, model=Keyboard, name=keyboard, signal=Key CONTROL_L transport.moveDown(mag=1) if rawInput['keyboard'].isButtonDown(16):# make=Generic, model=Keyboard, name=keyboard, signal=Key Q transport.turnLeft(mag=1) if rawInput['keyboard'].isButtonDown(18):# make=Generic, model=Keyboard, name=keyboard, signal=Key E transport.turnRight(mag=1) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the pivot of the node if initFlag&vizconnect.INIT_PIVOTS: vizconnect.getTransport(_name).setPivot(vizconnect.getDisplay('rift').getNode3d()) #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'main_transport' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: request that any dependencies be created if initFlag&vizconnect.INIT_INDEPENDENT: initTrackers(vizconnect.INIT_INDEPENDENT, ['head_tracker']) #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = vizconnect.getTracker('head_tracker').getNode3d() debug = False acceleration = 4.0 maxSpeed = 10.44 rotationAcceleration = 90.0 maxRotationSpeed = 120.0 autoBreakingDragCoef = 0.1 dragCoef = 0.0001 rotationAutoBreakingDragCoef = 0.2 rotationDragCoef = 0.0001 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['keyboard'].isButtonDown(17):# make=Generic, model=Keyboard, name=keyboard, signal=Key W transport.moveForward(mag=1) if rawInput['keyboard'].isButtonDown(31):# make=Generic, model=Keyboard, name=keyboard, signal=Key S transport.moveBackward(mag=1) if rawInput['keyboard'].isButtonDown(30):# make=Generic, model=Keyboard, name=keyboard, signal=Key A transport.moveLeft(mag=1) if rawInput['keyboard'].isButtonDown(32):# make=Generic, model=Keyboard, name=keyboard, signal=Key D transport.moveRight(mag=1) if rawInput['keyboard'].isButtonDown(45):# make=Generic, model=Keyboard, name=keyboard, signal=Key X transport.moveUp(mag=1) if rawInput['keyboard'].isButtonDown(44):# make=Generic, model=Keyboard, name=keyboard, signal=Key Z transport.moveDown(mag=1) if rawInput['keyboard'].isButtonDown(16):# make=Generic, model=Keyboard, name=keyboard, signal=Key Q transport.turnLeft(mag=1) if rawInput['keyboard'].isButtonDown(18):# make=Generic, model=Keyboard, name=keyboard, signal=Key E transport.turnRight(mag=1) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: set the pivot of the node if initFlag&vizconnect.INIT_PIVOTS: vizconnect.getTransport(_name).setPivot(vizconnect.getAvatar('main_avatar').getAttachmentPoint('head').getNode3d()) #VC: set the name of the default vizconnect.setDefault('transport', 'main_transport') #VC: return values can be modified here return None
def initEvents(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawEvent = vizconnect.getRawEventDict() #VC: initialize a new event _name = 'CONTROL_NEW_FILE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 49 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key N event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLIP' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 48 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key B event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLOUD_INCREASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 23 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key I event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CLOUD_DECREASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 37 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key K event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_TOGGLE_ENVIRONMENT' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 19 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key R event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_CYCLE_VIEW_MODE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['keyboard'].isButtonDown( 47 ): # make=Generic, model=Keyboard, name=keyboard, signal=Key V event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_LEFT_HAND_GRAB' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['joystick'].isButtonDown( 5 ): # make=Generic, model=Joystick, name=joystick, signal=Button 5 event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_LEFT_HAND_RELEASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if not rawInput['joystick'].isButtonDown( 5 ): # make=Generic, model=Joystick, name=joystick, signal=Button 5 event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_RIGHT_HAND_GRAB' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if rawInput['joystick'].isButtonDown( 6 ): # make=Generic, model=Joystick, name=joystick, signal=Button 6 event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: initialize a new event _name = 'CONTROL_RIGHT_HAND_RELEASE' if vizconnect.isPendingInit('event', _name, initFlag, initList): #VC: init the raw object if initFlag & vizconnect.INIT_RAW: #VC: create the raw object from vizconnect.util import events rawEvent[_name] = events.CustomEvent(viz.getEventID(_name)) #VC: init the mappings for the raw object if initFlag & vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag & vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(event): if not rawInput['joystick'].isButtonDown( 6 ): # make=Generic, model=Joystick, name=joystick, signal=Button 6 event.sendOnce(e=viz.Event(mag=1)) rawEvent[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag & vizconnect.INIT_WRAPPERS: vizconnect.addEvent(rawEvent[_name], _name, make='Vizconnect', model='Custom') #VC: return values can be modified here return None
def initAvatars(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawAvatar = vizconnect.getRawAvatarDict() #VC: initialize a new avatar _name = 'main_avatar' if vizconnect.isPendingInit('avatar', _name, initFlag, initList): #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters head = False rightHand = True leftHand = False torso = False lowerBody = False rightArm = False leftArm = False #VC: create the raw object # base avatar import vizfx avatar = vizfx.addChild('mark.cfg') avatar.disable(viz.LIGHTING) avatar._bodyPartDict = {} avatar._handModelDict = {} avatar.visible(head, r'mark_head.cmf') avatar.visible(rightHand, r'mark_hand_r.cmf') avatar.visible(leftHand, r'mark_hand_l.cmf') avatar.visible(torso, r'mark_torso.cmf') avatar.visible(lowerBody, r'mark_legs.cmf') avatar.visible(rightArm, r'mark_arm_r.cmf') avatar.visible(leftArm, r'mark_arm_l.cmf') rawAvatar[_name] = avatar #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addAvatar(rawAvatar[_name], _name, make='WorldViz', model='Mark') #VC: init the gestures if initFlag&vizconnect.INIT_GESTURES: #VC: need to get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: gestures for the avatar's r_hand import hand def initHand(): sensor = hand.InputSensor() rawAvatar[_name].handSensor = sensor sensor.createHandRenderer = lambda *args,**kw: hand._InputDeviceRenderer(*args,**kw) def appliedGetData(): #VC: set the mappings for the gestures if rawInput['r_hand_input'].getState()&viz.MOUSEBUTTON_LEFT:# make=Generic, model=Mouse Buttons, name=r_hand_input, signal=Left Mouse Button return (hand.GESTURE_FIST, False, False)# GESTURE_FIST #VC: end gesture mappings return (hand.GESTURE_FLAT_HAND,False,False) sensor.getData = appliedGetData return hand.AvatarHandModel(rawAvatar[_name], left=False, type=hand.GLOVE_5DT, sensor=sensor) rightHand = initHand() rawAvatar[_name]._bodyPartDict[vizconnect.AVATAR_R_HAND] = rightHand rawAvatar[_name]._handModelDict[vizconnect.AVATAR_R_HAND] = rightHand #VC: gestures may change the raw avatar, so refresh the raw in the wrapper vizconnect.getAvatar(_name).setRaw(rawAvatar[_name]) #VC: init the animator if initFlag&vizconnect.INIT_ANIMATOR: # need to get the raw tracker dict for animating the avatars from vizconnect.util.avatar import animator from vizconnect.util.avatar import skeleton # get the skeleton from the avatar _skeleton = skeleton.CompleteCharactersHD(rawAvatar[_name]) #VC: set which trackers animate which body part # format is: bone: (tracker, parent, degrees of freedom used) _trackerAssignmentDict = { vizconnect.AVATAR_HEAD:(vizconnect.getTracker('head_tracker').getNode3d(), None, vizconnect.DOF_6DOF), vizconnect.AVATAR_R_HAND:(vizconnect.getTracker('r_hand_tracker').getNode3d(), vizconnect.AVATAR_HEAD, vizconnect.DOF_POS), } #VC: create the raw object _rawAnimator = animator.Direct(rawAvatar[_name], _skeleton, _trackerAssignmentDict) #VC: set animator in wrapper (DO NOT EDIT) vizconnect.getAvatar(_name).setAnimator(_rawAnimator, make='Virtual', model='Direct') #VC: set the parent of the node if initFlag&vizconnect.INIT_PARENTS: vizconnect.getAvatar(_name).setParent(vizconnect.getTransport('main_transport')) #VC: set the name of the default vizconnect.setDefault('avatar', 'main_avatar') #VC: return values can be modified here return None
def initTransports(initFlag=vizconnect.INIT_INDEPENDENT, initList=None): #VC: place any general initialization code here rawTransport = vizconnect.getRawTransportDict() #VC: initialize a new transport _name = 'wandmagiccarpet' if vizconnect.isPendingInit('transport', _name, initFlag, initList): #VC: request that any dependencies be created if initFlag&vizconnect.INIT_INDEPENDENT: initTrackers(vizconnect.INIT_INDEPENDENT, ['rift_orientation_tracker']) #VC: init the raw object if initFlag&vizconnect.INIT_RAW: #VC: set some parameters orientationTracker = vizconnect.getTracker('rift_orientation_tracker').getNode3d() debug = False acceleration = 20 maxSpeed = 20 rotationAcceleration = 60 maxRotationSpeed = 65 autoBreakingDragCoef = 0 dragCoef = 0.5 rotationAutoBreakingDragCoef = 0 rotationDragCoef = 0.5 usingPhysics = False parentedTracker = False transportationGroup = None #VC: create the raw object from transportation import wand_magic_carpet rawTransport[_name] = wand_magic_carpet.WandMagicCarpet( orientationTracker=orientationTracker, debug=debug, acceleration=acceleration, maxSpeed=maxSpeed, rotationAcceleration=rotationAcceleration, maxRotationSpeed=maxRotationSpeed, autoBreakingDragCoef=autoBreakingDragCoef, dragCoef=dragCoef, rotationAutoBreakingDragCoef=rotationAutoBreakingDragCoef, rotationDragCoef=rotationDragCoef, usingPhysics=usingPhysics, parentedTracker=parentedTracker, node=transportationGroup) #VC: init the mappings for the raw object if initFlag&vizconnect.INIT_MAPPINGS: #VC: per frame mappings if initFlag&vizconnect.INIT_MAPPINGS_PER_FRAME: #VC: get the raw input dict so we have access to signals import vizact rawInput = vizconnect.getConfiguration().getRawDict('input') #VC: set the update function which checks for input signals def update(transport): if rawInput['joystick'].getPosition()[1] < -0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Up transport.moveForward(mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition()[1] > 0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Down transport.moveBackward(mag=abs(rawInput['joystick'].getPosition()[1])) if rawInput['joystick'].getPosition()[0] < -0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Left transport.moveLeft(mag=abs(rawInput['joystick'].getPosition()[0])) if rawInput['joystick'].getPosition()[0] > 0.05:# make=Generic, model=Joystick, name=joystick, signal=Analog Right transport.moveRight(mag=abs(rawInput['joystick'].getPosition()[0])) rawTransport[_name].setUpdateFunction(update) #VC: init the wrapper (DO NOT EDIT) if initFlag&vizconnect.INIT_WRAPPERS: vizconnect.addTransport(rawTransport[_name], _name, make='Virtual', model='WandMagicCarpet') #VC: return values can be modified here return None