73 lines
1.5 KiB
Cython
73 lines
1.5 KiB
Cython
|
# cython: language_level=3
|
||
|
from libcpp cimport bool
|
||
|
|
||
|
cdef extern from "orientation.cc":
|
||
|
pass
|
||
|
|
||
|
cdef extern from "orientation.hpp":
|
||
|
cdef cppclass Quaternion "Eigen::Quaterniond":
|
||
|
Quaternion()
|
||
|
Quaternion(double, double, double, double)
|
||
|
double w()
|
||
|
double x()
|
||
|
double y()
|
||
|
double z()
|
||
|
|
||
|
cdef cppclass Vector3 "Eigen::Vector3d":
|
||
|
Vector3()
|
||
|
Vector3(double, double, double)
|
||
|
double operator()(int)
|
||
|
|
||
|
cdef cppclass Matrix3 "Eigen::Matrix3d":
|
||
|
Matrix3()
|
||
|
Matrix3(double*)
|
||
|
|
||
|
double operator()(int, int)
|
||
|
|
||
|
Quaternion euler2quat(Vector3)
|
||
|
Vector3 quat2euler(Quaternion)
|
||
|
Matrix3 quat2rot(Quaternion)
|
||
|
Quaternion rot2quat(Matrix3)
|
||
|
Vector3 rot2euler(Matrix3)
|
||
|
Matrix3 euler2rot(Vector3)
|
||
|
Matrix3 rot_matrix(double, double, double)
|
||
|
Vector3 ecef_euler_from_ned(ECEF, Vector3)
|
||
|
Vector3 ned_euler_from_ecef(ECEF, Vector3)
|
||
|
|
||
|
|
||
|
cdef extern from "coordinates.cc":
|
||
|
cdef struct ECEF:
|
||
|
double x
|
||
|
double y
|
||
|
double z
|
||
|
|
||
|
cdef struct NED:
|
||
|
double n
|
||
|
double e
|
||
|
double d
|
||
|
|
||
|
cdef struct Geodetic:
|
||
|
double lat
|
||
|
double lon
|
||
|
double alt
|
||
|
bool radians
|
||
|
|
||
|
ECEF geodetic2ecef(Geodetic)
|
||
|
Geodetic ecef2geodetic(ECEF)
|
||
|
|
||
|
cdef cppclass LocalCoord_c "LocalCoord":
|
||
|
Matrix3 ned2ecef_matrix
|
||
|
Matrix3 ecef2ned_matrix
|
||
|
|
||
|
LocalCoord_c(Geodetic, ECEF)
|
||
|
LocalCoord_c(Geodetic)
|
||
|
LocalCoord_c(ECEF)
|
||
|
|
||
|
NED ecef2ned(ECEF)
|
||
|
ECEF ned2ecef(NED)
|
||
|
NED geodetic2ned(Geodetic)
|
||
|
Geodetic ned2geodetic(NED)
|
||
|
|
||
|
cdef extern from "coordinates.hpp":
|
||
|
pass
|