28template <
typename C,
typename =
void>
struct is_center : std::false_type {};
31struct is_center<C, std::void_t<decltype(CenterTraits<C>::ffi_id)>> : std::true_type {};
58 static constexpr siderust_center_t
ffi_id = SIDERUST_CENTER_T_BARYCENTRIC;
60 static constexpr const char *
name() {
return "Barycentric"; }
64 static constexpr siderust_center_t
ffi_id = SIDERUST_CENTER_T_HELIOCENTRIC;
66 static constexpr const char *
name() {
return "Heliocentric"; }
70 static constexpr siderust_center_t
ffi_id = SIDERUST_CENTER_T_GEOCENTRIC;
72 static constexpr const char *
name() {
return "Geocentric"; }
76 static constexpr siderust_center_t
ffi_id = SIDERUST_CENTER_T_TOPOCENTRIC;
78 static constexpr const char *
name() {
return "Topocentric"; }
82 static constexpr siderust_center_t
ffi_id = SIDERUST_CENTER_T_BODYCENTRIC;
84 static constexpr const char *
name() {
return "Bodycentric"; }
101#define SIDERUST_CENTER_TRANSFORM_PAIR(A, B) \
102 template <> struct has_center_transform<A, B> : std::true_type {}; \
103 template <> struct has_center_transform<B, A> : std::true_type {}
109#undef SIDERUST_CENTER_TRANSFORM_PAIR
111template <
typename From,
typename To>
#define SIDERUST_CENTER_TRANSFORM_PAIR(A, B)
Error handling and utility base for the siderust C++ wrapper.
constexpr bool is_center_v
constexpr bool has_center_transform_v
Geodetic position (WGS84 ellipsoid).
Solar-system barycenter (zero-cost, Params = void).
Center of a body (Params = BodycentricParams).
static constexpr siderust_center_t ffi_id
static constexpr const char * name()
static constexpr const char * name()
static constexpr siderust_center_t ffi_id
static constexpr siderust_center_t ffi_id
static constexpr const char * name()
static constexpr siderust_center_t ffi_id
static constexpr const char * name()
static constexpr siderust_center_t ffi_id
static constexpr const char * name()
Geocenter (zero-cost, Params = void).
Heliocenter (zero-cost, Params = void).
Marker for simple (no-parameter) centers.
Observer on Earth's surface (Params = Geodetic).