Esempio n. 1
0
def main():
    
    global wingl
    global wingr
    viz.cam.setHandler(vizcam.KeyboardCamera())
    myo.init()
    gyrolist = [[0,0,0]]
    viz.setMultiSample(4)
    viz.fov(150)
    wingl = viz.addChild('basketball.osgb')
    wingl.setScale([10,0.3,1])
    wingl.setCenter([100,100,100])
    wingl.setEuler([0,90,0])
    wingl.collideSphere(0.5)
    lStartPOS = [ 0, 2.5, 2 ]
    wingl.setPosition( lStartPOS )
    wingr = viz.addChild('basketball.osgb')
    wingr.setScale([10,0.3,1])
    wingr.setCenter([100,100,100])
    wingr.setEuler([0,90,0])
    wingr.collideSphere(0.5)
    rStartPOS = [ 0, 2.5, 2 ]
    wingr.setPosition( rStartPOS )

    #viz.MainView.setPosition([0,2,-15])
    hub = myo.Hub()
    hub.set_locking_policy(myo.locking_policy.none)
    hub.run(1000, Listener())
    vizact.ontimer(0.01 ,updateMyo, [gy, gy2, gy3, wingl, orx, ory, orz, orw, or1x, or1y, or1z, or1w, wingr])
Esempio n. 2
0
def addAppendage(avatar, skinChoices, skin = 0, appendage = 0):
	global thirdAppendage, usingInvisibleRod
	
	thirdAppendageHorn = viz.addGroup()

	if(appendage == 0):
		#Third Arm
		usingInvisibleRod = False
		thirdAppendage = viz.addChild(resources.ARM)
		if skin == 9:
			texture = viz.addTexture("skin_tones/010.png")
			texture.wrap(viz.WRAP_S,viz.REPEAT)
			texture.wrap(viz.WRAP_T,viz.REPEAT)
		else:
			texture = viz.addTexture("skin_tones/00" + skinChoices[skin] + ".png")
			texture.wrap(viz.WRAP_S,viz.REPEAT)
			texture.wrap(viz.WRAP_T,viz.REPEAT)
		thirdAppendage.texture(texture)
		thirdAppendage.emissive([.75, .75, .75])
		thirdAppendage.setScale(resources.ARM_SCALE)
	elif(appendage == 1):
		#Cylinder
		usingInvisibleRod = False
		thirdAppendage = viz.addChild(resources.CYLINDER)
		thirdAppendage.setScale(resources.ARM_SCALE)
	thirdAppendage.setParent(thirdAppendageHorn)
	global tahLink
	tahLink = viz.link(avatar.getBone('Bip01 Spine'), thirdAppendageHorn)
	global offsetOp
	offsetOp = tahLink.preTrans([0, 0.3, 0.1])
	tahLink.preEuler([-90.0, 0.0, 0.0])

	thirdAppendage.collideBox()
	thirdAppendage.disable(viz.DYNAMICS)
	TouchCube.thirdAppendage = thirdAppendage
Esempio n. 3
0
def SpawnStandingNPC(train, stage):
    # Remove
    if (len(trainStandingNPC) > 0):
        for x in range(0, len(trainStandingNPC)):
            trainStandingNPC[x].remove()

    trainStandingNPC[:] = []

    spotsTaken = []
    for x in range(0, 82):
        spotsTaken.append(1)
        spotsTaken[x] = False

    numToSpawn = 0

    if (stage == 0):
        numToSpawn = 0
    elif (stage == 1):
        numToSpawn = 2
    elif (stage == 2):
        numToSpawn = 20
    elif (stage == 3):
        numToSpawn = 55
    elif (stage == 4):
        numToSpawn = 75
    elif (stage == 5):
        numToSpawn = 80
    else:
        numToSpawn = 0

    if (numToSpawn > 0):
        for x in range(0, numToSpawn):
            # Random Pos
            numFound = False
            rand = 0

            while (numFound == False):
                rand = random.randint(0, 81)
                if (spotsTaken[rand] == False):
                    numFound = True
                    spotsTaken[rand] = True

            pos = trainStandingPos[rand]

            trainStandingNPC.append(1)

            randGener = random.randint(0, 10)
            if (randGener < 5):
                trainStandingNPC[x] = viz.addChild('vcc_male.cfg')
            else:
                trainStandingNPC[x] = viz.addChild('vcc_female.cfg')

            trainStandingNPC[x].state(1)  # Looping idle animation
            trainStandingNPC[x].setEuler(random.randint(-180, 180), 0,
                                         0)  # Turns him to face you
            trainStandingNPC[x].setPosition(
                pos
            )  # Moves him back so that he is in full view xPos,yPos,zPos
            trainStandingNPC[x].setParent(train)
Esempio n. 4
0
def SpawnPlatformNPC():
    seatTaken = []
    for x in range(0, 29):
        seatTaken.append(1)
        seatTaken[x] = False

    for x in range(0, 10):
        # Random Pos
        numFound = False
        rand = 0

        while (numFound == False):
            rand = random.randint(0, 28)
            if (seatTaken[rand] == False):
                numFound = True
                seatTaken[rand] = True

        pos = platStandingPos[rand]

        platformNPC.append(1)

        randGener = random.randint(0, 10)
        if (randGener < 5):
            platformNPC[x] = viz.addChild('vcc_male.cfg')
        else:
            platformNPC[x] = viz.addChild('vcc_female.cfg')

        platformNPC[x].state(1)  # Looping idle animation
        platformNPC[x].setEuler(0, 0, 0)
        platformNPC[x].setPosition(pos)


#seatedNPC.append(1)
#seatedNPC[0] = viz.addChild('vcc_male2.cfg')
#seatedNPC[0].state(6) # Looping idle animation
#seatedNPC[0].setEuler(180,0,) # Turns him to face you
#seatedNPC[0].setPosition(-0.8,0.2,7) # Moves him back so that he is in full view
##man.collideMesh()
#
#seatedNPC.append(1)
#seatedNPC[1] = viz.addChild('vcc_male2.cfg')
#seatedNPC[1].state(6) # Looping idle animation
#seatedNPC[1].setEuler(180,0,) # Turns him to face you
#seatedNPC[1].setPosition(0.0,0.2,7) # Moves him back so that he is in full view
##man.collideMesh()
#
#seatedNPC.append(1)
#seatedNPC[2] = viz.addChild('vcc_male2.cfg')
#seatedNPC[2].state(6) # Looping idle animation
#seatedNPC[2].setEuler(180,0,) # Turns him to face you
#seatedNPC[2].setPosition(0.7,0.2,7) # Moves him back so that he is in full view
##man.collideMesh()
#
#seatedNPC.append(1)
#seatedNPC[3] = viz.addChild('vcc_male2.cfg')
#seatedNPC[3].state(6) # Looping idle animation
#seatedNPC[3].setEuler(180,0,) # Turns him to face you
#seatedNPC[3].setPosition(1.4,0.2,7) # Moves him back so that he is in full view
##man.collideMesh()
Esempio n. 5
0
def loadColiseum():
	"""loads colosseum enviornment"""
	sf = .5
	colosseum = viz.addChild('.\\dataset\\environment\\coliseum.OSGB')
	colosseum.setEuler([0,-90,0])
	colosseum.setScale([sf,sf,sf])
	colosseum.setPosition([-37.5*sf , 0, 0]) #center colisseum

	pedistal = viz.addChild('.\\dataset\\environment\\capital.OSGB')
	pedistal.setScale([100,100,100])
	pedistal.setPosition([0,-7.26,0]) #Found by testing
Esempio n. 6
0
def main():
	### Configuration parameters
	# moved to config.py

	### Game startup
	#overwrite escape key
	viz.setOption('viz.default_key.quit','0')
	
	# Physics
	viz.phys.enable()
	#viz.phys.setGravity(0,0,0)

	# Initialize pointer tool
	# Unused?
	glove = viz.addChild('.\\dataset\\Hand\\handPoint_Reduced.ply')
	glove.disable([viz.PHYSICS, viz.DYNAMICS])

	glovePhys = glove.collideSphere()
	glove.setPosition([0,1,0])
	glove.setScale([1,1,1])

	# Initialize environment this will load the coliseum and sky
	sky = viz.addChild('sky_day.osgb')
	sky.collideMesh()
	sky.disable(viz.DYNAMICS)
	init.loadTemple()

	# Initialize pointer controls
	device = init.pointerInput(config.pointerMode, glove, sky)

	# Initialize display
	puzzle.model.display = init.DisplayInstance(config.dispMode,config.camMode,device,glove)
	#init.display(config.dispMode)

	# Initialize camera controls
	#init.cameraInput(config.camMode,config.dispMode, device, glove)

	# Launch menu system
	menu.init()
	puzzle.model.pointer = glove
	puzzle.model.pointer.setScale(0.015, 0.015, 0.015)
	puzzle.model.pointer.setEuler(0, -115, 0)
	
	# Override default escape key map to call main menu
	vizact.onkeydown(viz.KEY_ESCAPE, menu.toggle)
	
#	# Record moviefilms
#	viz.setOption('viz.AVIRecorder.maxWidth', '1280')
#	viz.setOption('viz.AVIRecorder.maxHeight', '720')
#	vizact.onkeydown(viz.KEY_F11, viz.window.startRecording, 'D:\\recording.avi')
#	vizact.onkeydown(viz.KEY_F12, viz.window.stopRecording)
	
	# Stuff to run on program termination
	vizact.onexit(puzzle.controller.end)
Esempio n. 7
0
def main():
    ### Configuration parameters
    # moved to config.py

    ### Game startup
    # overwrite escape key
    viz.setOption("viz.default_key.quit", "0")

    # Physics
    viz.phys.enable()
    # viz.phys.setGravity(0,0,0)

    # Initialize pointer tool
    # Unused?
    glove = viz.addChild(".\\dataset\\Hand\\handPoint_Reduced.ply")
    glove.disable([viz.PHYSICS, viz.DYNAMICS])

    glovePhys = glove.collideSphere()
    glove.setPosition([0, 1, 0])
    glove.setScale([1, 1, 1])

    # Initialize environment this will load the coliseum and sky
    sky = viz.addChild("sky_day.osgb")
    sky.collideMesh()
    sky.disable(viz.DYNAMICS)
    init.loadTemple()

    # Initialize pointer controls
    device = init.pointerInput(config.pointerMode, glove, sky)

    # Initialize display
    puzzle.model.display = init.DisplayInstance(config.dispMode, config.camMode, device, glove)
    # init.display(config.dispMode)

    # Initialize camera controls
    # init.cameraInput(config.camMode,config.dispMode, device, glove)

    # Launch menu system
    menu.init()
    puzzle.model.pointer = glove
    puzzle.model.pointer.setScale(0.015, 0.015, 0.015)
    puzzle.model.pointer.setEuler(0, -115, 0)

    # Override default escape key map to call main menu
    vizact.onkeydown(viz.KEY_ESCAPE, menu.toggle)

    # 	# Record moviefilms
    # 	viz.setOption('viz.AVIRecorder.maxWidth', '1280')
    # 	viz.setOption('viz.AVIRecorder.maxHeight', '720')
    # 	vizact.onkeydown(viz.KEY_F11, viz.window.startRecording, 'D:\\recording.avi')
    # 	vizact.onkeydown(viz.KEY_F12, viz.window.stopRecording)

    # Stuff to run on program termination
    vizact.onexit(puzzle.controller.end)
Esempio n. 8
0
def loadColiseum():
	"""loads colosseum enviornment"""
	sf = .5
	colosseum = viz.addChild('.\\dataset\\environment\\coliseum.OSGB')
	colosseum.setEuler([0, -90, 0])
	colosseum.setScale([sf, sf, sf])
	colosseum.setPosition([-37.5*sf, 0.0, 0.0]) #center colisseum

	pedistal = viz.addChild('.\\dataset\\environment\\capital.OSGB')
	pedistal.setScale([100, 100, 100])
	pedistal.setPosition([0.0, -7.26, 0.0]) #Found by testing
Esempio n. 9
0
def main():
    global train
    train = viz.addChild('Assets/Railcar_Main_OS.osgb', scene=viz.Scene1)
    platform = viz.addChild('Assets/environment.osgb', scene=viz.Scene1)
    viz.addChild('sky_day.osgb', scene=viz.Scene1)
    EnvironmentSetup.Start(train)
    NPCSpawner.InitPlat(platform)
    NPCSpawner.InitSeatedPos(train)
    NPCSpawner.InitStandingPos(train)
    NPCSpawner.SpawnPlatformNPC()
    viztask.schedule(RecordHR())
    viztask.schedule(InitalSetup(train))
Esempio n. 10
0
def recordViewAnimation():
    ### replace with your own application setup
    import viz
    import vizcam
    import vizact

    viz.setMultiSample(4)

    viz.go()

    vizcam.WalkNavigate()

    piazza = viz.addChild("piazza.osgb")
    ###

    ### Add this at the bottom
    '''
	 Create an AnimationPathRecorder and link it to any node, which needs to have it's transformation documented.
	 If 'start' is set to True the recording will start automatically, otherwise you need to start manually.
	 you can specify the file name under which the animation will be saved. '.txt' is automatically added.
	'''
    rec = AnimationPathRecorder(start=False)
    viz.link(viz.MainView, rec)

    # toggle path recording and saving finished recording to a file named 'test_animation.txt'
    def toggleRecord(rec):
        if rec.isRunning():
            rec.stop()
            rec.writeToFile("test_animation")
            print "Animation path saved to test_animation.txt"
        else:
            rec.start()
            print "Animation path recording started."

    vizact.onkeydown('r', toggleRecord, rec)
Esempio n. 11
0
    def __init__(self, fileName, SF=1.0 / 500):
        """Pull the BodyParts3D mesh into an instance and set everything up"""
        self.tooltip = None
        self.snapAttempts = 0
        self.metaData = model.ds.getMetaData(file=fileName)
        self.centerPoint = self.metaData['centerPoint']
        self.centerPointScaled = [a * SF for a in self.centerPoint]
        self.centerPointScaledFlipped = [a * SF * -1 for a in self.centerPoint]

        self._lineUpdateEvent = None

        self.name = self.metaData['name']
        for region, names in config.OntologicalGroups.regions.iteritems():
            files = model.ds.getOntologySet([(set.union, names)])
            if self.metaData['filename'] in files:
                self.region = region
                break
        else:
            self.region = None

        self.nameFormatted = ''
        for i, w in enumerate(self.name.split()):
            if (i + 1) % 2 == 0 and i != 0:
                self.nameFormatted += w + '\n'
            else:
                self.nameFormatted += w + ' '

        # We are using a 'center' viznode to make manipulation easy
        self.center = vizshape.addCube(0.001)  # An arbitrary placeholder cube
        super(Mesh, self).__init__(self.center.id)

        # This is the actual mesh we will see
        self.mesh = viz.addChild(config.DATASET_PATH + fileName + '.obj')
        self.mesh.setScale([SF, SF, SF])

        # This is the viznode that will be moved around to check distances for snapping
        self.checker = vizshape.addCube(0.001)

        # Setup heirarchy for proper movement behavior
        self.mesh.setParent(self)
        self.checker.setParent(self.mesh)

        # Offset mesh to lie in center of center viznode
        self.mesh.setPosition(self.centerPointScaledFlipped, viz.ABS_PARENT)
        self.checker.setPosition(self.centerPoint)

        # Turn off visibility of center and checker viznodes
        self.mesh.color(self.metaData['color'])
        self.checker.disable([viz.RENDERING, viz.INTERSECTION, viz.PHYSICS])
        self.center.disable([viz.RENDERING, viz.INTERSECTION, viz.PHYSICS])

        self.scale = SF
        self._enabled = True
        self.grounded = False

        self.grabbedFlag = 0
        self.proxCounter = 0

        # Group handling
        self.group = MeshGroup([self])
Esempio n. 12
0
	def __init__(self):
		# base class constructor 
		viz.EventClass.__init__(self)
		self.model = viz.addChild('piazza.osgb')

		# set up keyboard and timer callback methods
		self.callback(viz.KEYDOWN_EVENT,self.onKeyDown)
		self.callback(viz.MOUSEDOWN_EVENT,self.onMouseDown)
		#booleans for video
		self.check1 = False
		#avatar's postion and rotation angle
		self.x = 0.5
		self.z = 0.5
		#counts for animaions
		self.count = 0.0
		self.count2 = 0.0
		self.theta = 0
		#inserting avater
		
		self.avatar = vizfx.addAvatar('mazinger/mazinger.cfg')
		self.avatar.state(0)
		#translating avatar to correct position
		mat = viz.Matrix()
		#mat.postAxisAngle(0,1,0,self.theta)
		mat.postTrans(0,7,0);
		self.avatar.setMatrix(mat)
		self.callback(viz.TIMER_EVENT,self.onTimer)
	
		#mazin.addAction(spin)
		#Music
		
		#add ground
		grass = viz.addTexture('images/tile_grass.jpg', wrap=viz.REPEAT)
Esempio n. 13
0
def createEnvironment():	
	#create 2D environment
	if parameters.DreiDEnvironment:
		viz.clearcolor(viz.WHITE)

		#look from above
		viz.MainView.setPosition([0,50,0])
		viz.MainView.setEuler([0,90,0])
		
		goal.setEuler(0,90,0)
		goal.color(viz.GREEN)
		
		point.setEuler(0,90,0)
		point.setPosition(0,20,0)
		point.color(viz.RED)	
		
		arrow.setPosition(0,20,0)
		arrow.color(viz.BLUE)
	#or create 3d environment
	else:
		piazza = viz.addChild('piazza.osgb')
	
		#look from above
		viz.MainView.setPosition([0,1.8,0])
		#viz.MainView.setEuler([0,90,0])
		
		goal.setEuler(0,90,0)
		goal.color(viz.GREEN)
		
		point.setEuler(0,90,0)
		point.setPosition(0,20,0)
		point.color(viz.RED)	
		
		arrow.setPosition(0,20,0)
		arrow.color(viz.BLUE)
Esempio n. 14
0
def Collect(objName, objLoc, ScaleFac, tel):

    viz.MainWindow.setScene(1)

    #teleport to new location each trial?
    if tel:
        x, y = pol2cart(numpy.random.randint(12, radius),
                        numpy.random.randint(0, 360))
        viz.MainView.setPosition(x, 0, y)
        viz.MainView.setEuler(numpy.random.randint(0, 360), 0, 0)

    #add object
    obj = viz.addChild(objName + '.osgb')
    obj.setPosition(objLoc)
    obj.setScale([ScaleFac, ScaleFac, ScaleFac])

    sensor = vizproximity.addBoundingBoxSensor(obj, scale=(1.5, 10, 1.5))

    manager.addSensor(sensor)

    obj.visible(viz.ON)

    yield vizproximity.waitEnter(sensor)
    obj.remove()
    manager.removeSensor(sensor)
Esempio n. 15
0
    def __init__(self, room, size, marker_num, hand='left'):

        VisualObject.__init__(self, room=room, shape='sphere', size=size)

        # remove the sphere and add the baseball glove
        self.vis_node.remove()
        model_path = 'res/glove_{}.OSGB'.format(hand)
        try:
            self.vis_node = viz.addChild(model_path)
        except:
            print 'Hand must be left or right.'

        # setup position and orientation tracking
        glove_tracker = ppt.add_tracker(1)
        isense = viz.add('intersense.dle')
        self.ori_tracker = isense.addTracker(port=0)
        self.ori_tracker.setCompass(0)
        self.ori_tracker.setEnhancement(0)
        self.ori_tracker.resetHeading()
        vizact.onkeydown('i', self.ori_tracker.resetHeading)
        if hand == 'left':
            pre_trans = [0.04, -0.02, 0]
        else:
            pre_trans = [-0.04, -0.02, 0]
        link = ppt.link(tracker=glove_tracker, target=self.vis_node, ori=self.ori_tracker, pre_trans=pre_trans)

        # setup physics object
        # TODO: do we really want this?
        self.toggleUpdatePhysWithVis()
def main():
    global marker
    global current
    if marker.getVisible() and current == 1:
        current = 0

        baseValueX1 = marker.getPosition(0)[0]
        #this denotes the X position
        baseValueY1 = marker.getPosition(0)[1]
        #this denotes the Y position
        baseValueZ1 = marker.getPosition(0)[2]
        #this denotes the Z position

        endValueX1 = endMarker.getPosition()[0]
        endValueY1 = endMarker.getPosition()[1]
        endValueZ1 = endMarker.getPosition()[2]

        arrow = viz.add('thesis/greenArrow.dae')
        scaleSize = 0.5
        arrow.setScale(scaleSize, scaleSize, scaleSize)
        #change the size of arrow object
        arrow.setEuler(90)
        arrow.setPosition([baseValueX1, baseValueY1, baseValueZ1])

        positions = [[baseValueX1, baseValueY1, baseValueZ1], [1, 1, 1],
                     [2, 2, 2], [3, 3, 3], [4, 4, 4]]

        for p in range(5):
            pinch = viz.addChild('thesis/niceHand_5.dae')
            scaleSize = 0.5
            pinch.setScale(scaleSize, scaleSize, scaleSize)
            #change the size of arrow object
            pinch.setEuler([90, 0, 0])
            pinch.setPosition(positions[p])
Esempio n. 17
0
def froo():

		yield viztask.waitKeyDown('k')
		boxL.visible(0)
		stuff = viz.addChild('targetexplode12.osgb',pos=[-0.2,targetL,0],scale=[0.1,(targettol+0.02),0.0125])
#		stuff = viz.addChild('targetexplode10.osgb',pos=[0,2,20])
		stuff.setAnimationState(0)
Esempio n. 18
0
def loadTemple(bounding = True):
	"""loads temple enviornment"""
	
	sf = 100
	temple = viz.addChild('.\\dataset\\environment\\temple.OSGB')
	temple.setEuler([0,90,0])
	temple.setScale([sf,sf,sf])
	temple.setPosition([0.0, -1.569, 0.0]) #Found by measuring

	pedistal = viz.addChild('.\\dataset\\environment\\Column.OSGB')
	pedistal.setScale([3.0, 3.0, 3.0])
	pedistal.setPosition([0.0, -1.5, 0.0]) #Found by testing
	if bounding == True:
		dimensions = [2,4,1]
		boundingBox = games.puzzleView.WireFrameCube(dimensions)
#		boundingBox.setPosition(0,dimensions[1],0)
		boundingBox.alpha(0.25)
Esempio n. 19
0
def loadTemple(bounding = True):
	"""loads temple enviornment"""
	
	sf = 100
	temple = viz.addChild('.\\dataset\\environment\\temple.OSGB')
	temple.setEuler([0,90,0])
	temple.setScale([sf,sf,sf])
	temple.setPosition([0.0, -1.569, 0.0]) #Found by measuring

	pedistal = viz.addChild('.\\dataset\\environment\\Column.OSGB')
	pedistal.setScale([3.0, 3.0, 3.0])
	pedistal.setPosition([0.0, -1.5, 0.0]) #Found by testing
	if bounding == True:
		dimensions = [2,4,1]
		boundingBox = games.puzzleView.WireFrameCube(dimensions)
#		boundingBox.setPosition(0,dimensions[1],0)
		boundingBox.alpha(0.25)
Esempio n. 20
0
 def __init__(self, plane, planepos, escena, next, sound):
     self.plane = viz.addChild(plane, scene=escena)
     self.plane.setScale(2.5, 2.5, 2.5)
     self.plane.setPosition(planepos[0], planepos[1])
     self.sensorPlane = vizproximity.Sensor(
         vizproximity.RectangleArea(
             [2, 10], center=[self.plane.getPosition(0)[0], 0]), None)
     self.chimesound = sound
     self.next = next
Esempio n. 21
0
File: GUI.py Progetto: kevinsp/DvB
	def setModel (self, path):
		global model
		global modelIsLoaded
		if not (modelIsLoaded):
			model = viz.addChild(path)
			model.disable(viz.CULL_FACE)
			model.setPosition(0,0,60, viz.ABS_GLOBAL)
			model.setEuler([0,0,0])
			alphaSlider.set(1.0)
			modelIsLoaded = True
Esempio n. 22
0
	def __init__(self):
		if Falcon._captainFalcon == None:
			Falcon._captainFalcon = viz.addChild(Falcon._MODEL_FILE)
			Falcon._captainFalcon.visible(viz.OFF)
		
		self.node = Falcon._captainFalcon.copy()
		viz.VizNode.__init__(self,self.node.id)
		
		self.collideBox()
		self.initEuler()
		self.initForces()
Esempio n. 23
0
    def setup(self):
        yield viztask.waitTime(3)

        self.head.reset()

        stamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        self.output = os.path.join(
            DESKTOP, 'tracing-data', '{}-{:08x}'.format(
            stamp, random.randint(0, 0xffffff)))
        logging.info('storing output in %s', self.output)

        self.environment = viz.addChild('dojo.osgb')
Esempio n. 24
0
def setUpWorld():
	global city
	city = viz.addChild('metro.osgb')
	
	# NOTE: Look at CityModel.py for more details on the avatars, cars, and pigeons.
	viz.addChild('models/People/CC2_f001_hipoly_A1_v2.cfg')

	# Add avatars
	for avatarInfo in cityModel.PEOPLE_INFO:
		addAvatarToWorld(avatarInfo)
		
	# Add cars
	for carInfo in cityModel.CARS_INFO:
		addCarToWorld(carInfo)
		
	# Add pigeons
	for pigeonInfo in cityModel.PIGEONS_INFO:
		addPigeonToWorld(pigeonInfo)
	
	# Fog color
	viz.fogcolor([.5] * 3)
Esempio n. 25
0
def CreateRoom():
	#Load in the entire room, s  tore all geometry in the roomgroup
#BL:start
	global roomGroup
#	roomGroup = viz.addChild("Resources/NewRoom/vroom.obj")
	roomGroup = viz.addChild('Resources/NewRoom/labroom.osgb')
	roomGroup.setScale([0.8,0.75,0.8])
#	roomGroup.setPosition([-0.4,0,-1.4])
#		roomGroup.setPosition(-3, -1.75, 0, viz.ABS_GLOBAL)
	roomGroup.emissive([1, 1, 1])
#BL:end
	# Lag...
	placeMirror()
Esempio n. 26
0
def addArm(texturePath, pathToArm):
#	armPointer = viz.addChild(resources.ARM)
	armPointer = viz.addChild(pathToArm)
	texture = viz.addTexture(texturePath)
	texture.wrap(viz.WRAP_S,viz.REPEAT)
	texture.wrap(viz.WRAP_T,viz.REPEAT)
	armPointer.texture(texture)
	armPointer.emissive([.75, .75, .75])
	armPointer.setScale(resources.ARM_SCALE)
	armPointer.collideBox()
	armPointer.disable(viz.DYNAMICS)
	armPointer.visible(False)
	return armPointer
Esempio n. 27
0
File: Main.py Progetto: Dethro16/NFI
	def __init__(self,use_keyboard = True, desktop_mode = False):
		"""Initialization function."""
		#
		viz.phys.enable()
		self.view = viz.MainView;
		
		caveapp.CaveApplication.__init__(self,desktop_mode) #call constructor of super class, you have to do this explicitly in Python		
		
		self.wand = vizshape.addAxes()#load axis model to represent the wand\
		self.cylinder = vizshape.addCylinder(15,0.002,axis=vizshape.AXIS_X)
		self.cylinder.setEuler([0,0,0])
		#self.cylinder.setCenter([0,0,-1])
		self.cylinder.setPosition(7.5,0.08,0)
		
		self.stuff = vizshape.addSphere(0.0001)
		self.cylinder.setParent(self.stuff)
		
#		temp = vizshape.addSphere(0.05)
#		temp.setParent(self.cylinder)
#		temp.setPosition(self.cylinder.getCenter())
		
		self.wand = self.stuff
#		self.wand.setPosition(.5,-1,0)
#		self.cm = self.wand.getMatrix()
#		self.Room = viz.addChild('D:\Cave software\NFI Cave\Scene\ScannedRoom.3DS')
#		self.Room.collidePlane()
#		self.Room.setScale([1.25,1.25,1.25])
#		self.Room.setEuler([90,0,0])
#		self.Room.setPosition([-1.5,0,1.55])
		self.Room = viz.addChild('scene/ScannedRoom.3DS')
		self.Room.collidePlane()
		self.Room.setScale([0.002,0.002,0.002])
		self.Room.setEuler([90,0,0])
		self.Room.setPosition([-1.5,0.015,1.58])
		"""
		mylight = viz.addLight() 
		mylight.enable() 
		mylight.position(0, 1, 0) 
		mylight.spread(180) 
		mylight.intensity(2)
#		vizact.onkeydown('f', dance)
		"""
		
		viz.disable(viz.LIGHTING)
		self.headLight = viz.MainView.getHeadLight() #disable the headlight
		self.headLight.disable() #the headlight is disabled because the piazza.osgb is already shaded
		
		self.use_keyboard = use_keyboard #store if we want to use the keyboard
		
		
		self.time = 0.0 #note that to 0.0 is important because it is a double precision floating point number
Esempio n. 28
0
	def __init__(self, use_keyboard = True, desktop_mode = True):
		caveapp.CaveApplication.__init__(self, desktop_mode) #call constructor of super class, you have to do this explicitly in Python		
		
		self.wand = vizshape.addAxes()#load axis model to represent the wand
		self.thing = viz.addChild('plant.osgb') #load plant model to represent the thing
		
		self.horse = viz.addChild('horse.wrl') #load a horse model (this model will be animated in cave space)
		
		self.horse.color(0.5,0.5,0.5)#make the horse gray
		
		self.horse.disable(viz.LIGHTING) #disable the shading of the horse
		
		self.worldModel = viz.add('piazza.osgb') #load a world model
		
		self.headLight = viz.MainView.getHeadLight() #disable the headlight
		self.headLight.disable() #the headlight is disabled because the piazza.osgb is already shaded
		
		self.use_keyboard = use_keyboard #store if we want to use the keyboard
		
		
		self.time = 0.0 #note that to 0.0 is important because it is a double precision floating point number
		
		self.forwardVelocity = 0.0
def main():

    viz.vsync(viz.ON)
    viz.window.setFullscreenMonitor([2])
    viz.setMultiSample(4)
    viz.MainWindow.clip(0.01, 200)

    viz.go(viz.FULLSCREEN)

    environment = viz.addChild("piazza.osgb")
    environment.setPosition(2.75, 0, -0.75)

    mocap = phasespace.Phasespace()

    head = mocap.get_rigidTracker("hmd")

    # DOES NOT ACCOUNT FOR RIGID BODY OFFSET DURING RESET

    # mocap.track_rigid('Resources/hmd-nvisMount.rb', center_markers=(1,2))
    head.link_pose(viz.MainView)

    # glove = mocap.track_points([8, 9, 10])

    paddle = mocap.track_rigid({17: (0, 0, 1), 19: (0, 0, 0), 20: (1, 0, 0), 22: (0, 1, 0)})

    mocap.start_thread()
    # mocap.start_timer()

    def log_mocap(timer_id):
        # print 'glove#9 pos {0[1]:.2f} {0[1]:.2f} {0[2]:.2f}'.format(*glove.get_marker(9))
        print "head    pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}".format(
            *head.get_pose()
        )
        print "main    " + str(viz.MainView.getPosition())
        # print 'paddle  pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}'.format(*paddle.get_pose())

    viz.callback(viz.TIMER_EVENT, log_mocap)
    viz.starttimer(0, 1, viz.FOREVER)

    def keydown(key):

        if key == "h":
            head.reset()
        if key == "H":
            head.save()
        elif key == "1":

            print "Marker Pos: " + str(mocap.get_MarkerPos(1))

    viz.callback(viz.KEYDOWN_EVENT, keydown)
def DrawArrow(positions, parabolaHeight):
    global pathSpeed
    #from config file

    arrow = viz.addChild('thesis/greenArrow.dae')
    #import the arrow .dae object
    #arrow = viz.addChild('thesis/niceHand_1.dae');
    scaleSize = parabolaHeight * 0.1
    arrow.setScale(scaleSize, scaleSize, scaleSize)
    #change the size of arrow object

    path = viz.addAnimationPath()
    #create an animation path

    for x, pos in enumerate(
            positions):  #for every position in the array (x = pos)
        a = viz.addChild('beachball.osgb', cache=viz.CACHE_CLONE)
        #add a control point object
        a.setPosition(pos)
        #set the object at the position specified
        a.alpha(0.5)
        #make it almost invisible
        path.addControlPoint(x + 1, pos=pos)
        #add it onto the path

    path.setSpeed(pathSpeed)
    #set the speed of the path
    path.setLoopMode(viz.LOOP)
    #set the path on a loop

    path.computeTangents()
    #compute the tangents
    path.setAutoRotate(viz.ON)
    #set it to auto rotate
    viz.link(path, arrow)
    #link the path to the arrow object so that the arrow will move
    path.play()
Esempio n. 31
0
    def __load_STL(self, stl_directory, objects_STL, initial_orientations,
                   initial_position):
        parent_object = None
        for file_name, dh_parameters in objects_STL:
            full_file_name = os.path.join(stl_directory, file_name)
            if parent_object:
                current_object = viz.addChild(full_file_name,
                                              parent=parent_object)
            else:
                current_object = viz.addChild(full_file_name)
            current_object.color(1.0, .5, 0)
            current_object.specular(.1, .1, .1)
            current_object.shininess(50)
            current_object.collideMesh()
            self.__axes.append(current_object)
            self.__angles.append(0.0)
            parent_object = current_object

        self.__axes[1].color(.8, .8, .8)
        self.__axes[3].color(.8, .8, .8)
        self.__axes[5].color(.8, .8, .8)
        self.__axes[7].color(.8, .8, .8)

        for index, current_object in enumerate(self.__axes):
            dh_parameters = objects_STL[index][1]
            current_object.setAxisAngle(0, 0, 1, dh_parameters[0],
                                        viz.REL_PARENT)
            current_object.setPosition(0, 0, dh_parameters[1], viz.REL_PARENT)
            current_object.setPosition(dh_parameters[2], 0, 0, viz.REL_LOCAL)
            current_object.setAxisAngle(1, 0, 0, dh_parameters[3],
                                        viz.REL_LOCAL)

        for o in initial_orientations:
            self.set_axis_angle(o[0], o[1])

        if initial_position != None:
            self.set_position(initial_position)
def main():
	global marker;
	global current;
	if marker.getVisible() and current == 1: 
		current = 0;
		print "MARKER:" + str(marker.getPosition());
		baseValueX1 = marker.getPosition(0)[0]; #this denotes the X position
		baseValueY1 = marker.getPosition(0)[1]; #this denotes the Y position
		baseValueZ1 = marker.getPosition(0)[2]; #this denotes the Z position
		
		path = viz.addAnimationPath()
		positions = [ [baseValueX1,baseValueY1,baseValueZ1]];

		endValueX1 = endMarker.getPosition()[0];
		endValueY1 = endMarker.getPosition()[1];
		endValueZ1 = endMarker.getPosition()[2];
		print "END:" + str(endValueX1) + "," + str(endValueY1) + "," + str(endValueZ1)
		
		i = 0;
		numPositions = 5;
		Coe = numPositions;
		constant = 0;
		X = baseValueX1;
		endX = endValueX1;
		Y = baseValueY1;
		endY = endValueY1;
		endZ = endValueZ1;
		Z = baseValueZ1;
		
		if float(abs(endX) - abs(X)) == 0:
			denominator = 1;
		else:
			denominator = float(abs(endX) - abs(X));
		angle = math.atan(float(abs(endY) - abs(Y))/denominator);

		for p in range(numPositions+1): #need the +1 to complete the parabolic path
			#altering p affects the end point and speed of the parabolas
			
			X = (float(p)/float(numPositions))*endX;
			Y = (float(p)/float(numPositions))*endY;
			Z = (float(p)/float(numPositions))*endZ + 10;
			print str(p) +  ": [" + str(X)+  ", " + str(Y)+  ", " + str(Z) + "]";
			positions.append([X,Y,Z]);
		
		for i in range(numPositions):
			b = viz.addChild('beachball.osgb');
			#print pos;
			b.setPosition(positions[i]);
			b.alpha(0.5);
Esempio n. 33
0
	def bambooForest(self):
		# Add the ground plane
		ground = viz.addChild('ground.osgb')
		# Bamboo sticks
		bambooForest1 = []
		bambooForest2 = []
		
		# add 200 bamboo trees to each forest
		for i in range(0, 400, 1):
			bambooForest1.append(vizshape.addCylinder(random.randint(10,16),0.1))
			bambooForest2.append(vizshape.addCylinder(random.randint(10,16),0.1))
			bambooForest1[i].setPosition(random.randint(-16,-3),0.5,random.randint(-20,20))
			bambooForest2[i].setPosition(random.randint(3,16),0.5,random.randint(-20,20))
			bambooForest1[i].color(0.3,0.8,0.3)
			bambooForest2[i].color(0.3,0.8,0.3)
	def __setupWorld__(self):
		
		#Initialize cave and load the powerwall#
		self.cave = vizcave.Cave()		
		#This line of code opens the file if a filename is provided and loads the corner co-ordinates from it, else uses the default co-ordinates#
		self.cave.load(self.caveWallFileName) if None is not self.caveWallFileName else self.cave.addWall(self.powerwall)
		
		# TODO: Pair every obstacle with an invisible "hat" object to detect when the obstacle was avoided.
		# Create a seperate module that does this automatically for each object added.
		# Like from a config file.
		self.crate = viz.addChild( 'crate.osgb' )
		self.crate.setScale([.2,.2,.2])
		self.crate.setPosition([-.45, 0, -.10])
		
		self.cratePole = vizshape.addCylinder(height = .5, radius = 0.025)
		self.cratePole.setPosition( [-.45, .3, -.10] )
		self.cratePole.alpha(0.5)

		self.avatar = viz.addAvatar('duck.cfg')
		self.avatar.setScale(.2, .2, .2)
		self.avatar.setPosition([-1, .1, -.10])		
		
		#self.floor = viz.addChild('lab.osgb')
		self.floor = viz.addChild('piazza.osgb')
Esempio n. 35
0
	def __init__(self, handTracker = None):
		
		# These two lines are weird necessities to subclass the VizNode class (which most Vizard objects are?)
		self.node = viz.addChild(Dart._MODEL_FILE)
		viz.VizNode.__init__(self,self.node.id)
		
		self.setScale(Dart._SCALE, Dart._SCALE, Dart._SCALE)
		self.color(1, 0, 0)
		
		self.collideBox()
		self.enable(viz.COLLIDE_NOTIFY)
		viz.callback(viz.COLLIDE_BEGIN_EVENT, onCollide)
		self.initVelocity()
		self.initEuler()
		self.setVelocity([0, 0, 0])
		if handTracker != None: self.attachToHand(handTracker)
def main():
    viz.setOption('viz.fullscreen.monitor', 1)
    viz.setOption('viz.window.width', 2 * 640)
    viz.setOption('viz.window.height', 480)
    viz.setMultiSample(4)
    viz.MainWindow.clip(0.01, 500)

    vizconfig.register(nvis.nvisorSX111())

    viz.go(viz.FULLSCREEN)

    piazza = viz.addChild('piazza.osgb')

    mocap = phasespace.Mocap('192.168.1.230')

    head = mocap.track_rigid('Resources/hmd-nvis.rb', center_markers=(0, 5))
    head.link_pose(viz.MainView)

    glove = mocap.track_points([8, 9, 10])

    paddle = mocap.track_rigid({
        17: (0, 0, 1),
        19: (0, 0, 0),
        20: (1, 0, 0),
        22: (0, 1, 0),
    })

    mocap.start_thread()

    #mocap.start_timer()

    def log_mocap(timer_id):
        print 'glove#9 pos {0[1]:.2f} {0[1]:.2f} {0[2]:.2f}'.format(
            *glove.get_marker(9))
        print 'head    pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}'.format(
            *head.get_pose())
        print 'paddle  pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}'.format(
            *paddle.get_pose())

    viz.callback(viz.TIMER_EVENT, log_mocap)
    viz.starttimer(0, 1, viz.FOREVER)

    def keydown(*args):
        head.reset()
        paddle.reset()

    viz.callback(viz.KEYDOWN_EVENT, keydown)
def main():
    if marker.getVisible():
        current = 0
        print "MARKER:" + str(marker.getPosition())
        baseValueX1 = marker.getPosition(0)[0]
        #this denotes the X position
        baseValueY1 = marker.getPosition(0)[1]
        #this denotes the Y position
        baseValueZ1 = marker.getPosition(0)[2]
        #this denotes the Z position

        pinch = viz.addChild('thesis/niceHand_5.dae')
        scaleSize = 0.5
        pinch.setScale(scaleSize, scaleSize, scaleSize)
        #change the size of arrow object
        pinch.setEuler([90, 0, 0])
        pinch.setPosition([baseValueX1, baseValueY1, baseValueZ1])
        markerLink = viz.link(marker, pinch)
Esempio n. 38
0
	def __init__(self, scale=1, color=None):
		
		if Balloon._masterBalloon == None:
			Balloon._masterBalloon = viz.addChild(Balloon._MODEL_FILE)
			Balloon._masterBalloon.visible(viz.OFF)
		
		self.node = Balloon._masterBalloon.copy()
		viz.VizNode.__init__(self,self.node.id)
		
		
		self.setScale(scale * Balloon._SCALE_NORMALIZER, scale * Balloon._SCALE_NORMALIZER, scale * Balloon._SCALE_NORMALIZER)
		if color != None:
			self.color(color)
		else:
			self.color(self._DEFAULT_COLOR)
			
		self.collideBox()
		self.float()
Esempio n. 39
0
def bmw_card_driver():
	
	car = viz.addChild('bmw.dae')
	car.setEuler([0,0,0])
	car.setScale(0.5,0.5,0.5)
	MOVE_SPEED = 5
	TURN_SPEED = 60

	def updatecar():
		#move view forward and backward
		if viz.key.isDown(viz.KEY_UP):
			view.move([0,0,MOVE_SPEED*viz.elapsed()],viz.BODY_ORI)
		elif viz.key.isDown(viz.KEY_DOWN):
			view.move([0,0,-MOVE_SPEED*viz.elapsed()],viz.BODY_ORI)

		#rotate body of view left and right
		if viz.key.isDown(viz.KEY_RIGHT):
			view.setEuler([TURN_SPEED*viz.elapsed(),0,0],viz.BODY_ORI,viz.REL_PARENT)
		elif viz.key.isDown(viz.KEY_LEFT):
			view.setEuler([-TURN_SPEED*viz.elapsed(),0,0],viz.BODY_ORI,viz.REL_PARENT)

		#set the car to view position and body orientation
		car.setPosition(view.getPosition())
		car.setEuler(view.getEuler(viz.BODY_ORI))
		car.setPosition([3.02,-5.50,5.04],viz.REL_LOCAL)

	vizact.ontimer(0,updatecar)

	#update head of view based on mouse movements
	def mousemove(e):
		euler = view.getEuler(viz.HEAD_ORI)
		euler[0] += e.dx*0.1
		euler[1] += -e.dy*0.1
		euler[1] = viz.clamp(euler[1],-85.0,85.0)
		view.setEuler(euler,viz.HEAD_ORI)

	viz.callback(viz.MOUSE_MOVE_EVENT,mousemove)
	viz.mouse(viz.OFF)
	viz.mouse.setVisible(False)

	vizact.onmousedown(viz.MOUSEBUTTON_LEFT,view.reset,viz.HEAD_ORI)
	vizact.onmousedown(viz.MOUSEBUTTON_RIGHT,view.reset, viz.BODY_ORI |viz.HEAD_POS)
	vizact.onmousedown(viz.MOUSEBUTTON_RIGHT,updatecar)
def main():
    viz.setOption('viz.fullscreen.monitor', 1)
    viz.setOption('viz.window.width', 2 * 640)
    viz.setOption('viz.window.height', 480)
    viz.setMultiSample(4)
    viz.MainWindow.clip(0.01, 500)

    vizconfig.register(nvis.nvisorSX111())

    viz.go(viz.FULLSCREEN)

    piazza = viz.addChild('piazza.osgb')

    mocap = phasespace.Mocap('192.168.1.230')

    head = mocap.track_rigid('Resources/hmd-nvis.rb', center_markers=(0, 5))
    head.link_pose(viz.MainView)

    glove = mocap.track_points([8, 9, 10])

    paddle = mocap.track_rigid({
      17:(0, 0, 1),
      19:(0, 0, 0),
      20:(1, 0, 0),
      22:(0, 1, 0),
    })

    mocap.start_thread()
    #mocap.start_timer()

    def log_mocap(timer_id):
        print 'glove#9 pos {0[1]:.2f} {0[1]:.2f} {0[2]:.2f}'.format(*glove.get_marker(9))
        print 'head    pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}'.format(*head.get_pose())
        print 'paddle  pos {0[0]:.2f} {0[1]:.2f} {0[2]:.2f}, quat {1[0]:.3f} {1[1]:.3f} {1[2]:.3f} {1[3]:.3f}'.format(*paddle.get_pose())

    viz.callback(viz.TIMER_EVENT, log_mocap)
    viz.starttimer(0, 1, viz.FOREVER)

    def keydown(*args):
        head.reset()
        paddle.reset()

    viz.callback(viz.KEYDOWN_EVENT, keydown)
Esempio n. 41
0
def loadTemple(bounding=True):
    """loads temple enviornment"""
    global boundingBox
    global temple

    sf = 100
    temple = viz.addChild('.\\dataset\\environment\\temple.OSGB')
    temple.setEuler([0, 90, 0])
    temple.setScale([sf, sf, sf])
    temple.setPosition([0, -2.8, 0])  #Found by testing

    #	pedistal = viz.addChild('.\\dataset\\environment\\Column.OSGB')
    #	pedistal.setScale([3.0,3.0,3.0])
    #	pedistal.setPosition([0,-1.5,0]) #Found by testing
    if bounding == True:
        dimensions = [1, 2, 0.5]

        boundingBox = puzzle.view.wireframeCube(dimensions)
        boundingBox.setPosition(0, dimensions[1] / 2, 0)
        boundingBox.alpha(0.25)
Esempio n. 42
0
def create3DEnvironment():	
	#ground = viz.add('tut_ground.wrl')  # Add ground
	#ground.collidePlane()   # Make collideable plane
		
	#viz.clearcolor(viz.WHITE)
	piazza = viz.addChild('piazza.osgb')
	
	#look from above
	viz.MainView.setPosition([0,1.8,0])
	#viz.MainView.setEuler([0,90,0])
	
	goal.setEuler(0,90,0)
	goal.color(viz.GREEN)
	
	point.setEuler(0,90,0)
	point.setPosition(0,20,0)
	point.color(viz.RED)	
	
	arrow.setPosition(0,20,0)
	arrow.color(viz.BLUE)
Esempio n. 43
0
def loadTemple(bounding = True):
	"""loads temple enviornment"""
	global boundingBox
	global temple
	
	sf = 100
	temple = viz.addChild('.\\dataset\\environment\\temple.OSGB')
	temple.setEuler([0,90,0])
	temple.setScale([sf,sf,sf])
	temple.setPosition([0,-2.8, 0]) #Found by testing

#	pedistal = viz.addChild('.\\dataset\\environment\\Column.OSGB')
#	pedistal.setScale([3.0,3.0,3.0])
#	pedistal.setPosition([0,-1.5,0]) #Found by testing
	if bounding == True:
		dimensions = [1,2,0.5]

		boundingBox = puzzle.view.wireframeCube(dimensions)
		boundingBox.setPosition(0,dimensions[1]/2,0)
		boundingBox.alpha(0.25)
Esempio n. 44
0
	def addFishes(self):
		self.fishes = []
		fish_root = viz.addChild('art/environment/floater.osgb')
		fish_root.angle = 30
		fish_root.setPosition(0, -100, 0)
		self.fishes.append(fish_root)
		fishToAdd = self.numFish + 1;
		for angle in self.angularOffsets:
			fishToAdd -= 1
			if (self.numFish != DEFAULT_NUM_FISH and fishToAdd >= (self.numFish * .9)):
				continue
			#FISH EULER NEEDS TO BE SET IN INSPECTOR
			fish = vizfx.addChild(self.FISH_FILE, parent=fish_root)
			if (self.modScale):
				mult = vizmat.GetRandom(-.1, .2) * (self.numFish - fishToAdd)
				fish.setScale(1 + mult,1 + mult,1 + mult,viz.ABSOLUTE)
			fish.angle = angle / (vizmat.GetRandom(self.numFish - 2, self.numFish + .5))
			self.updateFishCircle(fish)
			self.fishes.append(fish)
			if (fishToAdd == 0):
				break
Esempio n. 45
0
def main():
    global wingl
#    global wingr
    viz.cam.setHandler(vizcam.KeyboardCamera())
    myo.init()
    gyrolist = [[0,0,0]]
    viz.setMultiSample(4)
#    
    wingl = viz.addChild('basketball.osgb')
    wingl.setScale([10,0.3,1])
    wingl.setCenter([100,100,100])
    wingl.setEuler([0,90,0])
    wingl.collideSphere(0.5)
    lStartPOS = [ 0, 2.5, 2 ]
    wingl.setPosition( lStartPOS )
#    wingr = viz.addChild('basketball.osgb')
#    wingr.setScale([10,0.3,1])
#    wingr.setCenter([100,100,100])
#    wingr.setEuler([0,90,0])
#    wingr.collideSphere(0.5)
#    rStartPOS = [ 0, 2.5, 2 ]
#    wingr.setPosition( rStartPOS )

    #viz.MainView.setPosition([0,2,-15])
    hub = myo.Hub()
    hub.set_locking_policy(myo.locking_policy.none)
    hub.run(1000, Listener())
    vizact.ontimer(0.01 ,updateMyo, [gy, gy2, gy3, wingl, orx, ory, orz, orw, or1x, or1y, or1z, or1w])
    vizact.onkeydown('p', hub.shutdown)
    FileReader()
    initializeObjectFiles()
    initializeLocations()
    vizact.ontimer(0.1, update)
    vizact.onkeydown(' ', statusUpdate)
    vizact.onkeydown('s', hub.shutdown)
    
#    viz.AVIRecorder.maxWidth = 1920;
#    viz.AVIRecorder.maxHight = 1080;
    vizact.onkeydown('b', viz.window.startRecording, 'myo_capture.avi' ) 
    vizact.onkeydown('e', viz.window.stopRecording )
Esempio n. 46
0
    def __init__(self, camera, player_prefs, move_speed=5.0, turn_speed=25.0):
        self.view = viz.MainView
        self.camera = camera
        self.player_prefs = player_prefs
        # TODO: Init paddle and board based on player_prefs
        self.paddle = None
        self.board = viz.addChild('seaeagle.dae')
        self.board.collidePlane()
        self.board.disable(viz.DYNAMICS)
        self.move_speed = move_speed
        self.turn_speed = turn_speed
        self.max_speed = 10

        self.ball_dir = viz.add('white_ball.wrl')
        #viz.link(self.board, self.ball_board)

        self.PS1 = None
        self.PS2 = None
        self.ball1 = None
        self.ball = None
        self.last_pos_ball = None
        self.water_level = 0.4
Esempio n. 47
0
	def __init__(self,**kw):

		# Initialize base class with model
		model = viz.addChild('models/steve.ive')
		model.setCenter(0,.3,0)
		viz.VizNode.__init__(self,model.id,**kw)

		# Get handle to head/body
		self.head = self.getChild(_HEAD_NAME)
		self.body = self.getChild(_BODY_YAW_NAME)
		self.body_root = self.getChild(_BODY_NAME)

		# Internal state variables
		self._updateFunc = None
		self._incrementFunc = None
		self._tracker = None
		self._trackerFlag = 0
		self._bodyTrackMode = BODY_TRACK_NONE
		self._bodyYawIncrement = 0.0
		self._bodyIncrementTime = 0.0
		self._lastBodyYaw = 0.0
		self._bodyDragPos = [0.0,0.0,0.0]
Esempio n. 48
0
    def setup(self):
        # set up a folder to store data for a subject.
        dirname = self.find_output(threshold_min=GAP_MINUTES)
        self.output = os.path.join(BASE_PATH, dirname)
        logging.info('storing output in %s', self.output)

        # configure the phasespace.
        mocap = vrlab.Phasespace('192.168.1.230', freq=120)
        self.suit = mocap.track_points(range(len(suit.MARKER_LABELS)))
        self.leds = []
        for i in range(50):
            sphere = vizshape.addSphere(0.02, color=viz.RED)
            self.suit.link_marker(i, sphere)
            self.leds.append(sphere)
        mocap.start_thread()

        # set up a proximity manager to detect touch events.
        self.prox = vizproximity.Manager()
        #self.prox.setDebug(viz.ON)

        # add an environment and navigation to help with visualization.
        self.environment = viz.addChild('dojo.osgb')
        viz.cam.setHandler(None)
Esempio n. 49
0
    def setup(self):
        # set up a folder to store data for a subject.
        dirname = self.find_output(threshold_min=GAP_MINUTES)
        self.output = os.path.join(BASE_PATH, dirname)
        logging.info('storing output in %s', self.output)

        # configure the phasespace.
        mocap = vrlab.Phasespace('192.168.1.230', freq=120)
        self.suit = mocap.track_points(range(len(suit.MARKER_LABELS)))
        self.leds = []
        for i in range(50):
            sphere = vizshape.addSphere(0.02, color=viz.RED)
            self.suit.link_marker(i, sphere)
            self.leds.append(sphere)
        mocap.start_thread()

        # set up a proximity manager to detect touch events.
        self.prox = vizproximity.Manager()
        #self.prox.setDebug(viz.ON)

        # add an environment and navigation to help with visualization.
        self.environment = viz.addChild('dojo.osgb')
        viz.cam.setHandler(None)
Esempio n. 50
0
File: gem.py Progetto: dgo721/averno
 def __init__(self, gem, gempos, escena, sound):
     print "ESCENA-2", escena
     self.gem = viz.addChild(gem, scene=escena)
     self.gem.setScale(2.5, 2.5, 2.5)
     self.gem.setPosition(gempos[0], gempos[1])
     self.sensorGem = vizproximity.addBoundingBoxSensor(self.gem,
                                                        scale=[6, 4, 6])
     self.chimesound = sound
     self.canvas = viz.addGUICanvas()
     self.canvas.alignment(viz.ALIGN_CENTER)
     viz.MainWindow.setDefaultGUICanvas(self.canvas)
     self.info = vizinfo.InfoPanel('AVERNO',
                                   align=viz.ALIGN_RIGHT_TOP,
                                   icon=False)
     self.info.setTitle('Ejemplo')
     self.info.setPanelVisible(False)
     self.canvas.setRenderWorld([600, 500], [3, viz.AUTO_COMPUTE])
     self.canvas.setPosition([
         self.gem.getPosition()[0],
         self.gem.getPosition()[1] + 0.5,
         self.gem.getPosition()[2]
     ])
     self.canvas.setEuler(0, 0, 0)
Esempio n. 51
0
def load_robot_parts():
    """
        Die Einzelteile des Roboters werden geladen und auf
        dem Tisch positioniert. Die Positionen sthen in der
        globalen Liste positions.
    """
    global robot, positions
    robot_parts = []
    i = 0
    for file_name, dh_parameters in robot.objects_STL:
        full_file_name = os.path.join(r'STL', file_name)
        current_object = viz.addChild(full_file_name)
        current_object.color(1.0, 0.5, 0)  # current_object.color(.5, .5, .7)
        current_object.specular(.1, .1, .1)
        current_object.shininess(50)
        # Die Basis des Roboters wird nicht auf dem
        # Tisch positioniert
        if robot_parts:
            current_object.setPosition([positions[i], 1.1, 4.5])
            current_object.collideBox()
            i += 1
        robot_parts.append(current_object)
        # Positionierung der Basis
    robot_parts[0].setPosition(robot.get_position(0))
    #robot_parts[0].setPosition([0,-0.3,0],viz.REL_LOCAL)
    robot_parts[0].setAxisAngle(robot.get_orientation(0))
    robot_parts[0].collideMesh()
    robot_parts[1].setAxisAngle([0, 0, 1, 90])
    robot_parts[4].setAxisAngle([0, 0, 1, 90])
    robot_parts[5].setAxisAngle([1, 0, 0, 90])

    robot_parts[1].color(.8, .8, .8)
    robot_parts[3].color(.8, .8, .8)
    robot_parts[5].color(.8, .8, .8)
    robot_parts[7].color(.8, .8, .8)

    return robot_parts
Esempio n. 52
0
def playerAnimationPath (player, trial=getLatestTrial()):
	data = loadLogFile('position', trial)
	if data == None or not data.has_key(player):
		return
	data = data[player]
	#Add the ball as avatar to animate
	avatar = viz.addChild('beachball.osgb', scale=[1.5,1.5,1.5])
	colors = [[197, 106, 183], [83, 171, 224], [255, 189, 0]]
	avatar.color([float(c)/255 for c in colors[player-1]])
	#Create the animation path
	path = viz.addAnimationPath()
	#Initialize an array of control points and add them to the path
	positions = [[p[1],0,p[2]] for p in data]
	for x,pos in enumerate(positions):
		path.addControlPoint(x+1,pos=pos)
	#Set the initial loop mode to circular
#	path.setLoopMode(viz.LOOP)
	#Automatically rotate the path to face trajectory
	path.setAutoRotate(viz.ON)
	path.setRotateMode(viz.BEZIER)
	#Link the ball to the path
	viz.link(path, avatar)
	#Play the animation path
	path.play()
Esempio n. 53
0
    def _setup_environment(self):
        """
		Setup all objects to create the environments. Environments can be switched with the R key on the keyboard.
		"""
        # Add the comfortable "kitchen" room
        self._room = viz.addChild("Room.osgb")
        self._room.setScale(.01, .01, .01)

        # Create the clean "ground" environment (just a white round ground).
        # This environment isn't saved in a osgb file, because the lights couldn't be configured to use the light group 1 instead of 0.
        # Only 8 lights are allowed per light group. Room has already 8 lights.
        img = viz.addTexture('assets/ground.png')
        self._ground = vizshape.addQuad()
        self._ground.setScale(6, 6, 6)
        self._ground.setEuler(0, 90, 0)
        self._ground.texture(img)
        # Create the lights for the "ground" envirtonment.
        light_positions = [
            [0, 5, 0],  # From top
            [0, -5, 0],  # From bottom
            [3, 1.5, 0],
            [-3, 1.5, 0],
            [0, 1.5, 3],
            [0, 1.5, -3]
        ]
        for light_position in light_positions:
            light = viz.addLight(group=1)
            light.setParent(self._ground)
            light.spread(45)
            light.intensity(1)
            light.spotexponent(3)
            light.setPosition(light_position, mode=viz.ABS_GLOBAL)
            light.lookAt(self._ground.getPosition())

        # Hide the second environment until the environment gets changed
        self._ground.visible(False)
Esempio n. 54
0
    def __init__(self, model, escena, gems, gemspos, gemcount, planes,
                 planespos, nextScene, gemsound, planesound):
        self.mine = viz.addChild(model, scene=escena)

        self.planeList = list()
        contpos = 0

        for x in planes:
            planeitem = Plane(x, planespos[contpos], escena,
                              nextScene[contpos], planesound)
            self.planeList.append(planeitem)
            contpos = contpos + 1

        self.btn_regresa = viz.addButtonLabel("regresar", scene=escena)
        self.btn_regresa.setPosition(0.9, 0.1)

        self.gemList = list()
        contpos = 0

        print escena
        for x in gems:
            gemitem = Gem(x, gemspos[contpos], escena, gemsound)
            self.gemList.append(gemitem)
            contpos = contpos + 1
#setup a variable to scale the height of objects so that the screen setup is optimized for viewing base on target values
global scalorxx
scalorxx = 0.6667

#set target tolerance for step time
global targetL
targetL = 1

global targetR
targetR = 1

global targettol
targettol = 0.05

global boxL
boxL = viz.addChild('target.obj',color=(0.063,0.102,0.898),scale=[0.1,(targettol+0.04)*0.75,0.0125])
boxL.setPosition([-0.2,targetL*scalorxx,0])

#place quad behind to show movie
global rvideo
global lvideo
global Rquad
global Lquad

rvideo = viz.addVideo('RightSuccess0001-0040.avi')
lvideo = viz.addVideo('LeftSuccess0001-0040.avi')
#rvideo.loop()
#lvideo.loop()
#rvideo.play()
#lvideo.play()
Esempio n. 56
0
import vizact
import viztask
import vizproximity
import vizinfo
from vhil_devkit import *  
RIFT = True
PPT1 = True
vhilGo(RIFT, PPT1) 

view = viz.MainView
view.setPosition(0, .5, -10)
viz.setMultiSample(4)
viz.fov(60)
#viz.go(viz.FULLSCREEN)

room = viz.addChild('MeghaRoom2.osgb')
room.setEuler(-88, 0, 0)
room.setScale(.08, .08, .08)
instructions = vizinfo.InfoPanel(icon=False,text=None)

cat = viz.addAvatar('cat_tabby_med2.cfg')
girl = viz.addAvatar('CC2_f006_hipoly_A2_v2.cfg')
girl.state(34)
girl.setEuler(180, 0, 0)
cat.setPosition(-2.8, 0, -3)
girl.setPosition(-2.8, 0, 2)
cat.setScale(1.5, 1.5, 1.5)
girl.setScale(1.5, 1.5, 1.5)
cat.lookAt([2.8, 0, -3])

ball = viz.add('ball.wrl')
Esempio n. 57
0
	def __init__(self, fileName, SF = 1.0/200):
		"""Pull the BodyParts3D mesh into an instance and set everything up"""
		self.metaData = ds.getMetaData(file = fileName)
		self.centerPoint = self.metaData['centerPoint']
		self.centerPointScaled = [a*SF for a in self.centerPoint]
		self.centerPointScaledFlipped = [a*SF*-1 for a in self.centerPoint]
		print self.centerPointScaledFlipped
		
		self.name = self.metaData['name']

		self.nameFormatted = ''
		for i, w in enumerate(self.name.split()):
			if (i + 1) % 2 == 0 and i != 0: 
				self.nameFormatted += w + '\n'
			else:
				self.nameFormatted += w + ' ' 
		
		#give a bone an information property
#		self.info = ''
#		for j,bd in enumerate(boneDesc['info'].split()):
#			if(j+1) % 10 ==0 and j != 0:
#				self.info += bd + ' \n'
#			else: 
#				self.info += bd + ' '
		
		# We are using a 'center' viznode to make manipulation easy
		self.center = vizshape.addCube(0.1) # An arbitrary placeholder cube
		super(Mesh, self).__init__(self.center.id)
		
		# This is the actual mesh we will see
		self.mesh = viz.addChild(config.DATASET_PATH + fileName + '.obj')
		self.mesh.setScale([SF,SF,SF])
		
		# This is the viznode that will be moved around to check distances for snapping
		self.checker = vizshape.addCube(10.0)
		
		# Tooltip
		self.tooltip = viz.addText(self.nameFormatted)
		self.tooltip.color(0,5,1)
		self.tooltip.billboard(viz.BILLBOARD_VIEW)
		self.tooltip.setScale(0.001,0.001,0.001) #small scale for bounding box calc
		
		#Description

#		if display.displayMode == 2:
#			self.dialogue = viz.addText(self.info,pos = [0,3,0],parent=viz.WORLD)
#			self.dialogue.billboard(viz.BILLBOARD_VIEW)
#			self.dialogue.setBackdrop(viz.BACKDROP_CENTER_TOP)
#			self.dialogue.setScale(0.15,0.15,0.15)
#			self.dialogue.alignment(viz.ALIGN_CENTER_CENTER)
#			#self.dialogue.setPosition([0.03,0.85,0])
#			#self.dialogue.color(viz.BLACK)
#		else:
#			self.dialogue = viz.addText(self.info,parent=viz.SCREEN)
#			#self.dialogue.setBackdrop(viz.BACKDROP_CENTER_TOP)
#			self.dialogue.setScale(0.3,0.3,0.0)
#			self.dialogue.alignment(viz.ALIGN_LEFT_BOTTOM)
#			self.dialogue.setPosition([0.03,0.85,0])
#			#self.dialogue.color(viz.BLACK)
		
		# Setup heirarchy for proper movement behavior
		self.mesh.setParent(self)
		self.tooltip.setParent(self.center)
		self.checker.setParent(self.mesh)
		
		# Offset mesh to lie in center of center viznode
		self.mesh.setPosition(self.centerPointScaledFlipped, viz.ABS_PARENT)
		self.checker.setPosition(self.centerPoint)
	
		self.addSensor()
		
		# Tooltip formatting
		self.tooltip.setScale(0.1,0.1,0.1)#set to prefered scale
		self.tooltip.setPosition(0,0,-1)
		self.tooltip.alignment(viz.TEXT_CENTER_CENTER)
		self.tooltip.visible(viz.OFF)
		
		#Line between tooltip and mesh centerPoint
#		viz.startLayer(viz.LINES)
#		viz.vertexColor(viz.BLUE)
#		viz.lineWidth(5)
#		viz.vertex(self.getPosition(viz.ABS_GLOBAL))
#		viz.vertex(self.tooltip.getPosition(viz.ABS_GLOBAL))
#		self.nameLine = viz.endLayer()
#		self.nameLine.dynamic()
#		self.nameLine.visible(viz.OFF)
		
		# Turn off visibility of center and checker viznodes
		self.center.disable([viz.RENDERING])
		self.color([0.3,0,0])
		self.checker.disable([viz.RENDERING,viz.INTERSECTION,viz.PHYSICS])
		
		self.scale		= SF
		self._enabled	= True

		self.nameAudioFlag	= 1    #defualt: 1, 1 allows name to be played, 0 does not allow name playback
		self.descAudioFlag	= 1		#default: 1, 1 allows description to be played, 0 does not allow dec playback
		self.grabbedFlag	= 0
		self.proxCounter	= 0
		
		# Group handling
		self.group = BoneGroup([self])
		groups.append(self.group)