def get_pos_y(self): """ Return y position. :return: """ return self._r * _sin(self._theta) * _sin(self._phi)
def place(self): """ Place camera in world. """ _glLoadIdentity() _gluLookAt(self._r * _sin(self._theta) * _cos(self._phi), self._r * _sin(self._theta) * _sin(self._phi), self._r * _cos(self._theta), self._center.get_x(), self._center.get_y(), self._center.get_z(), self._up.get_x(), self._up.get_y(), self._up.get_z())
def rotate_z(self, angle): """ Rotate eye position in z-axis. :param angle: Rotation angle :type angle: float, int """ x = self._pos.get_x() * _cos(angle) - self._pos.get_y() * _sin(angle) y = self._pos.get_x() * _sin(angle) + self._pos.get_y() * _cos(angle) z = self._pos.get_z() self._pos.set_x(x) self._pos.set_y(y) self._pos.set_z(z)
def get_pos_x(self): """ Return x position. :return: """ return self._r * _sin(self._theta) * _cos(self._phi)
def rotate_center_z(self, angle): """ Rotate center around z. :param angle: Rotation angle :type angle: float, int """ rad = _math.sqrt(self._pos.get_x()**2 + self._pos.get_y()**2) self._pos.set_x(rad * _cos(self._angle)) self._pos.set_y(rad * _sin(self._angle))
def get_view(self): """ Get view matrix. :return: """ return _tr2.lookAt( _np.array([ self._r * _sin(self._theta) * _cos(self._phi), self._r * _sin(self._theta) * _sin(self._phi), self._r * _cos(self._theta) ]), _np.array([ self._center.get_x(), self._center.get_y(), self._center.get_z() ]), _np.array([self._up.get_x(), self._up.get_y(), self._up.get_z()]))