Ejemplo n.º 1
0
def _parse_rotate(s):
    rotate = _float_list(s)
    if len(rotate) == 4: # around axis
        return Quaternion.new_rotate_axis(rotate[0] / 180. * math.pi,
                                                  Vector3(*vector[1:]))
    else:
        x, y, z = [ i / 180. * math.pi for i in rotate ]
        return Quaternion.new_rotate_euler(y, z, x)
Ejemplo n.º 2
0
    def tick(self, elapsed):
        self.angle += self.angular_speed * elapsed
        self.camera.eye += Quaternion.new_rotate_axis(self.angle, Vector3(0, 0, 1)) * self.speed * elapsed

        self._update()
Ejemplo n.º 3
0
 def _update(self):
     direction = Quaternion.new_rotate_axis(self.angle, Vector3(0, 0, 1)) * Vector3(1, 0, 0)
     self.camera.center = self.camera.eye + direction