class SampleListener(Leap.Listener): frameSeries = Skel.FrameSeries() def on_init(self, controller): print "Initialized" def on_connect(self, controller): print "Connected" def on_frame(self, controller): # Get the most recent frame and report some basic information frame = controller.frame() # frame_last = controller.frame(1) print "Frame id: %d, hands: %d, fingers: %d" % ( frame.id, len(frame.hands), len(frame.fingers)) self.frameSeries.add(frame) def clear(self): self.frameSeries.clear()
def OnUpdate(self, info): if (self._bone >= 0): v = VRScript.Math.Vector(Skel.getPosX(self._bone),Skel.getPosY(self._bone),Skel.getPosZ(self._bone)) q = VRScript.Math.Quat(Skel.getQuatX(self._bone),Skel.getQuatY(self._bone),Skel.getQuatZ(self._bone),Skel.getQuatW(self._bone)) mat = VRScript.Math.Matrix() #mat.preAxisAngle(90,VRScript.Math.Vector(1,0,0)) #mat.preAxisAngle(90,VRScript.Math.Vector(1,0,0)) mat.preQuat(q) mat.preTranslation(v) # Orient up mat.preAxisAngle(90,VRScript.Math.Vector(1,0,0)) # Move mat.preTranslation(VRScript.Math.Vector(0,5,2)) self.movable().setPose(mat) # Show the magic bone # if (self._bone==Magic): e = (VRScript.Math.Matrix().preQuat(q)).getEuler() print("Roll: " + str(e.x) + "\tPitch: " + str(e.y) + "\tYaw: " + str(e.z))
self.movable().setPose(mat) # Show the magic bone # if (self._bone==Magic): e = (VRScript.Math.Matrix().preQuat(q)).getEuler() print("Roll: " + str(e.x) + "\tPitch: " + str(e.y) + "\tYaw: " + str(e.z)) #print(str(Skel.getQuatX(self._bone))+","+str(Skel.getQuatY(self._bone))+","+str(Skel.getQuatZ(self._bone))+","+str(Skel.getQuatW(self._bone))) def setBone(self, bone): self._bone = bone if (bone==Magic): mp = self.renderable('').getMaterialProperties() mp.wireframe = True self.renderable(self.getName()).setMaterialProperties(mp) Skel.start() skeleton = list(); #bones = {7,8,9} #for i in bones: i=0 while i<24: m = marker("m"+str(i)) m.setBone(i) skeleton.append(m) i=i+1 #Skel.stop()