use crate::{lib, *};
#[inline]
pub unsafe fn empyrean_last_error() -> *const ::std::os::raw::c_char {
unsafe { lib().empyrean_last_error() }
}
#[inline]
pub unsafe fn empyrean_context_new_minimal(
de440_path: *const ::std::os::raw::c_char,
gm_path: *const ::std::os::raw::c_char,
) -> *mut EmpyreanContext {
unsafe { lib().empyrean_context_new_minimal(de440_path, gm_path) }
}
#[inline]
pub unsafe fn empyrean_context_with_spk(
ctx: *mut EmpyreanContext,
spk_path: *const ::std::os::raw::c_char,
) -> i32 {
unsafe { lib().empyrean_context_with_spk(ctx, spk_path) }
}
#[inline]
pub unsafe fn empyrean_context_from_data_dir(
data_dir: *const ::std::os::raw::c_char,
) -> *mut EmpyreanContext {
unsafe { lib().empyrean_context_from_data_dir(data_dir) }
}
#[inline]
pub unsafe fn empyrean_context_free(ctx: *mut EmpyreanContext) {
unsafe { lib().empyrean_context_free(ctx) }
}
#[inline]
pub unsafe fn empyrean_default_data_dir() -> *mut ::std::os::raw::c_char {
unsafe { lib().empyrean_default_data_dir() }
}
#[inline]
pub unsafe fn empyrean_string_free(s: *mut ::std::os::raw::c_char) {
unsafe { lib().empyrean_string_free(s) }
}
#[inline]
pub unsafe fn empyrean_version_string() -> *mut ::std::os::raw::c_char {
unsafe { lib().empyrean_version_string() }
}
#[inline]
pub unsafe fn empyrean_versions(out: *mut EmpyreanVersions) -> i32 {
unsafe { lib().empyrean_versions(out) }
}
#[inline]
pub unsafe fn empyrean_versions_free(versions: *mut EmpyreanVersions) {
unsafe { lib().empyrean_versions_free(versions) }
}
#[inline]
pub unsafe fn empyrean_generate_ephemeris(
ctx: *const EmpyreanContext,
orbits_ptr: *const EmpyreanOrbit,
num_orbits: usize,
observers_ptr: *const EmpyreanObserver,
num_observers: usize,
config: *const EmpyreanEphemerisConfig,
result_out: *mut EmpyreanEphemerisResult,
) -> i32 {
unsafe {
lib().empyrean_generate_ephemeris(
ctx,
orbits_ptr,
num_orbits,
observers_ptr,
num_observers,
config,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_ephemeris_result_free(result: *mut EmpyreanEphemerisResult) {
unsafe { lib().empyrean_ephemeris_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_compute_impact_probabilities(
ctx: *const EmpyreanContext,
orbits_ptr: *const EmpyreanOrbit,
num_orbits: usize,
end_mjd_tdb: f64,
methods_ptr: *const EmpyreanUncertaintyMethod,
num_methods: usize,
body_filter_naif: *const i32,
num_body_filter: usize,
result_out: *mut EmpyreanImpactProbabilitiesResult,
) -> i32 {
unsafe {
lib().empyrean_compute_impact_probabilities(
ctx,
orbits_ptr,
num_orbits,
end_mjd_tdb,
methods_ptr,
num_methods,
body_filter_naif,
num_body_filter,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_compute_impact_probabilities_result_free(
result: *mut EmpyreanImpactProbabilitiesResult,
) {
unsafe { lib().empyrean_compute_impact_probabilities_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_compute_b_planes(
ctx: *const EmpyreanContext,
orbits_ptr: *const EmpyreanOrbit,
num_orbits: usize,
end_mjd_tdb: f64,
methods_ptr: *const EmpyreanUncertaintyMethod,
num_methods: usize,
body_filter_naif: *const i32,
num_body_filter: usize,
result_out: *mut EmpyreanBPlanesResult,
) -> i32 {
unsafe {
lib().empyrean_compute_b_planes(
ctx,
orbits_ptr,
num_orbits,
end_mjd_tdb,
methods_ptr,
num_methods,
body_filter_naif,
num_body_filter,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_compute_b_planes_result_free(result: *mut EmpyreanBPlanesResult) {
unsafe { lib().empyrean_compute_b_planes_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_orbits_batch_free(batch: *mut EmpyreanOrbitBatch) {
unsafe { lib().empyrean_orbits_batch_free(batch) }
}
#[inline]
pub unsafe fn empyrean_orbits_read_parquet(
path: *const ::std::os::raw::c_char,
out: *mut EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_read_parquet(path, out) }
}
#[inline]
pub unsafe fn empyrean_orbits_write_parquet(
path: *const ::std::os::raw::c_char,
batch: *const EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_write_parquet(path, batch) }
}
#[inline]
pub unsafe fn empyrean_orbits_read_json(
path: *const ::std::os::raw::c_char,
out: *mut EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_read_json(path, out) }
}
#[inline]
pub unsafe fn empyrean_orbits_write_json(
path: *const ::std::os::raw::c_char,
batch: *const EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_write_json(path, batch) }
}
#[inline]
pub unsafe fn empyrean_orbits_read_csv(
path: *const ::std::os::raw::c_char,
out: *mut EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_read_csv(path, out) }
}
#[inline]
pub unsafe fn empyrean_orbits_write_csv(
path: *const ::std::os::raw::c_char,
batch: *const EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_orbits_write_csv(path, batch) }
}
#[inline]
pub unsafe fn empyrean_ephemeris_write_parquet(
path: *const ::std::os::raw::c_char,
entries_ptr: *const EmpyreanEphemerisEntry,
num_entries: usize,
) -> i32 {
unsafe { lib().empyrean_ephemeris_write_parquet(path, entries_ptr, num_entries) }
}
#[inline]
pub unsafe fn empyrean_ephemeris_write_json(
path: *const ::std::os::raw::c_char,
entries_ptr: *const EmpyreanEphemerisEntry,
num_entries: usize,
) -> i32 {
unsafe { lib().empyrean_ephemeris_write_json(path, entries_ptr, num_entries) }
}
#[inline]
pub unsafe fn empyrean_ephemeris_write_csv(
path: *const ::std::os::raw::c_char,
entries_ptr: *const EmpyreanEphemerisEntry,
num_entries: usize,
) -> i32 {
unsafe { lib().empyrean_ephemeris_write_csv(path, entries_ptr, num_entries) }
}
#[inline]
pub unsafe fn empyrean_events_write_parquet(
path: *const ::std::os::raw::c_char,
events_ptr: *const EmpyreanEvent,
num_events: usize,
) -> i32 {
unsafe { lib().empyrean_events_write_parquet(path, events_ptr, num_events) }
}
#[inline]
pub unsafe fn empyrean_events_write_json(
path: *const ::std::os::raw::c_char,
events_ptr: *const EmpyreanEvent,
num_events: usize,
) -> i32 {
unsafe { lib().empyrean_events_write_json(path, events_ptr, num_events) }
}
#[inline]
pub unsafe fn empyrean_events_write_csv(
path: *const ::std::os::raw::c_char,
events_ptr: *const EmpyreanEvent,
num_events: usize,
) -> i32 {
unsafe { lib().empyrean_events_write_csv(path, events_ptr, num_events) }
}
#[inline]
pub unsafe fn empyrean_residuals_write_parquet(
path: *const ::std::os::raw::c_char,
obs_ptr: *const EmpyreanObservationResult,
num_obs: usize,
) -> i32 {
unsafe { lib().empyrean_residuals_write_parquet(path, obs_ptr, num_obs) }
}
#[inline]
pub unsafe fn empyrean_residuals_write_json(
path: *const ::std::os::raw::c_char,
obs_ptr: *const EmpyreanObservationResult,
num_obs: usize,
) -> i32 {
unsafe { lib().empyrean_residuals_write_json(path, obs_ptr, num_obs) }
}
#[inline]
pub unsafe fn empyrean_residuals_write_csv(
path: *const ::std::os::raw::c_char,
obs_ptr: *const EmpyreanObservationResult,
num_obs: usize,
) -> i32 {
unsafe { lib().empyrean_residuals_write_csv(path, obs_ptr, num_obs) }
}
#[inline]
pub unsafe fn empyrean_eigenvector_max_6x6(
matrix: *const [[f64; 6usize]; 6usize],
eigenvalue_out: *mut f64,
eigenvector_out: *mut [f64; 6usize],
) -> i32 {
unsafe { lib().empyrean_eigenvector_max_6x6(matrix, eigenvalue_out, eigenvector_out) }
}
#[inline]
pub unsafe fn empyrean_split_gaussian(
mean: *const [f64; 6usize],
covariance: *const [[f64; 6usize]; 6usize],
k: usize,
weights_out: *mut f64,
means_out: *mut [f64; 6usize],
covariances_out: *mut [[f64; 6usize]; 6usize],
) -> i32 {
unsafe {
lib().empyrean_split_gaussian(mean, covariance, k, weights_out, means_out, covariances_out)
}
}
#[inline]
pub unsafe fn empyrean_get_observers(
ctx: *const EmpyreanContext,
obs_codes: *const *const ::std::os::raw::c_char,
num_codes: usize,
epochs_mjd_tdb: *const f64,
num_epochs: usize,
result_out: *mut EmpyreanObserverResult,
) -> i32 {
unsafe {
lib().empyrean_get_observers(
ctx,
obs_codes,
num_codes,
epochs_mjd_tdb,
num_epochs,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_observer_result_free(result: *mut EmpyreanObserverResult) {
unsafe { lib().empyrean_observer_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_read_ades(
content: *const ::std::os::raw::c_char,
observations_out: *mut *mut EmpyreanObservation,
num_observations_out: *mut usize,
radar_out: *mut *mut EmpyreanRadarObservation,
num_radar_out: *mut usize,
) -> i32 {
unsafe {
lib().empyrean_read_ades(
content,
observations_out,
num_observations_out,
radar_out,
num_radar_out,
)
}
}
#[inline]
pub unsafe fn empyrean_observations_from_array(
input: *const EmpyreanObservation,
num: usize,
out_ptr: *mut *mut EmpyreanObservation,
out_num: *mut usize,
) -> i32 {
unsafe { lib().empyrean_observations_from_array(input, num, out_ptr, out_num) }
}
#[inline]
pub unsafe fn empyrean_observations_free(observations: *mut EmpyreanObservation, num: usize) {
unsafe { lib().empyrean_observations_free(observations, num) }
}
#[inline]
pub unsafe fn empyrean_radar_observations_from_array(
input: *const EmpyreanRadarObservation,
num: usize,
out_ptr: *mut *mut EmpyreanRadarObservation,
out_num: *mut usize,
) -> i32 {
unsafe { lib().empyrean_radar_observations_from_array(input, num, out_ptr, out_num) }
}
#[inline]
pub unsafe fn empyrean_radar_observations_free(
observations: *mut EmpyreanRadarObservation,
num: usize,
) {
unsafe { lib().empyrean_radar_observations_free(observations, num) }
}
#[inline]
pub unsafe fn empyrean_determine(
ctx: *const EmpyreanContext,
observations: *const EmpyreanObservation,
num_observations: usize,
radar: *const EmpyreanRadarObservation,
num_radar: usize,
initial_orbits: *const EmpyreanOrbit,
num_initial_orbits: usize,
config: *const EmpyreanODConfig,
result_out: *mut EmpyreanODResult,
) -> i32 {
unsafe {
lib().empyrean_determine(
ctx,
observations,
num_observations,
radar,
num_radar,
initial_orbits,
num_initial_orbits,
config,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_od_result_free(result: *mut EmpyreanODResult) {
unsafe { lib().empyrean_od_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_evaluate(
ctx: *const EmpyreanContext,
orbit: *const EmpyreanOrbit,
observations: *const EmpyreanObservation,
num_observations: usize,
config: *const EmpyreanODConfig,
result_out: *mut EmpyreanEvaluateResult,
) -> i32 {
unsafe {
lib().empyrean_evaluate(
ctx,
orbit,
observations,
num_observations,
config,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_evaluate_result_free(result: *mut EmpyreanEvaluateResult) {
unsafe { lib().empyrean_evaluate_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_refine(
ctx: *const EmpyreanContext,
orbit: *const EmpyreanOrbit,
observations: *const EmpyreanObservation,
num_observations: usize,
config: *const EmpyreanODConfig,
result_out: *mut EmpyreanODResult,
) -> i32 {
unsafe {
lib().empyrean_refine(
ctx,
orbit,
observations,
num_observations,
config,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_evaluate_plan(
ctx: *const EmpyreanContext,
orbit: *const EmpyreanOrbit,
orbit_id: *const ::std::os::raw::c_char,
planned: *const EmpyreanPlannedObservation,
num_planned: usize,
config: *const EmpyreanPlanningConfig,
result_out: *mut EmpyreanPlanResult,
) -> i32 {
unsafe {
lib().empyrean_evaluate_plan(
ctx,
orbit,
orbit_id,
planned,
num_planned,
config,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_plan_result_free(result: *mut EmpyreanPlanResult) {
unsafe { lib().empyrean_plan_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_propagate(
ctx: *const EmpyreanContext,
orbits_ptr: *const EmpyreanOrbit,
num_orbits: usize,
times_ptr: *const f64,
num_times: usize,
config: *const EmpyreanPropagationConfig,
result_out: *mut EmpyreanPropagationResult,
) -> i32 {
unsafe {
lib().empyrean_propagate(
ctx, orbits_ptr, num_orbits, times_ptr, num_times, config, result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_propagation_result_free(result: *mut EmpyreanPropagationResult) {
unsafe { lib().empyrean_propagation_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_propagation_covariance_series_cartesian(
result: *const EmpyreanPropagationResult,
orbit_index: usize,
out_series: *mut *mut EmpyreanTaggedCovarianceSeries,
) -> i32 {
unsafe {
lib().empyrean_propagation_covariance_series_cartesian(result, orbit_index, out_series)
}
}
#[inline]
pub unsafe fn empyrean_propagation_covariance_at_cartesian(
result: *const EmpyreanPropagationResult,
orbit_index: usize,
epoch_index: usize,
out: *mut EmpyreanTaggedCovariance,
) -> i32 {
unsafe {
lib().empyrean_propagation_covariance_at_cartesian(result, orbit_index, epoch_index, out)
}
}
#[inline]
pub unsafe fn empyrean_tagged_covariance_series_free(series: *mut EmpyreanTaggedCovarianceSeries) {
unsafe { lib().empyrean_tagged_covariance_series_free(series) }
}
#[inline]
pub unsafe fn empyrean_query_sbdb(
object_ids: *const *const ::std::os::raw::c_char,
num_object_ids: usize,
cache_dir: *const ::std::os::raw::c_char,
out: *mut EmpyreanOrbitBatch,
) -> i32 {
unsafe { lib().empyrean_query_sbdb(object_ids, num_object_ids, cache_dir, out) }
}
#[inline]
pub unsafe fn empyrean_query_horizons(
object_ids: *const *const ::std::os::raw::c_char,
num_object_ids: usize,
obs_code: *const ::std::os::raw::c_char,
times_mjd_tdb: *const f64,
num_times: usize,
cache_dir: *const ::std::os::raw::c_char,
out: *mut EmpyreanEphemerisResult,
) -> i32 {
unsafe {
lib().empyrean_query_horizons(
object_ids,
num_object_ids,
obs_code,
times_mjd_tdb,
num_times,
cache_dir,
out,
)
}
}
#[inline]
pub unsafe fn empyrean_query_horizons_vectors(
command: *const ::std::os::raw::c_char,
epoch_mjd_tdb: f64,
cache_dir: *const ::std::os::raw::c_char,
out_pos: *mut f64,
out_vel: *mut f64,
) -> i32 {
unsafe {
lib().empyrean_query_horizons_vectors(command, epoch_mjd_tdb, cache_dir, out_pos, out_vel)
}
}
#[inline]
pub unsafe fn empyrean_query_observations(
designations: *const *const ::std::os::raw::c_char,
num_designations: usize,
cache_dir: *const ::std::os::raw::c_char,
out_ptr: *mut *mut EmpyreanObservation,
out_num: *mut usize,
) -> i32 {
unsafe {
lib().empyrean_query_observations(
designations,
num_designations,
cache_dir,
out_ptr,
out_num,
)
}
}
#[inline]
pub unsafe fn empyrean_query_radar(
designations: *const *const ::std::os::raw::c_char,
num_designations: usize,
cache_dir: *const ::std::os::raw::c_char,
out_ptr: *mut *mut EmpyreanRadarObservation,
out_num: *mut usize,
) -> i32 {
unsafe {
lib().empyrean_query_radar(designations, num_designations, cache_dir, out_ptr, out_num)
}
}
#[inline]
pub unsafe fn empyrean_session_new(
observations: *const EmpyreanObservation,
num_observations: usize,
config: *const EmpyreanODConfig,
) -> *mut EmpyreanSession {
unsafe { lib().empyrean_session_new(observations, num_observations, config) }
}
#[inline]
pub unsafe fn empyrean_session_free(session: *mut EmpyreanSession) {
unsafe { lib().empyrean_session_free(session) }
}
#[inline]
pub unsafe fn empyrean_session_n_observations(session: *const EmpyreanSession) -> usize {
unsafe { lib().empyrean_session_n_observations(session) }
}
#[inline]
pub unsafe fn empyrean_session_n_masked(session: *const EmpyreanSession) -> usize {
unsafe { lib().empyrean_session_n_masked(session) }
}
#[inline]
pub unsafe fn empyrean_session_n_active(session: *const EmpyreanSession) -> usize {
unsafe { lib().empyrean_session_n_active(session) }
}
#[inline]
pub unsafe fn empyrean_session_mask(session: *mut EmpyreanSession, idx: usize) -> i32 {
unsafe { lib().empyrean_session_mask(session, idx) }
}
#[inline]
pub unsafe fn empyrean_session_unmask(session: *mut EmpyreanSession, idx: usize) -> i32 {
unsafe { lib().empyrean_session_unmask(session, idx) }
}
#[inline]
pub unsafe fn empyrean_session_unmask_all(session: *mut EmpyreanSession) -> i32 {
unsafe { lib().empyrean_session_unmask_all(session) }
}
#[inline]
pub unsafe fn empyrean_session_is_masked(session: *const EmpyreanSession, idx: usize) -> u8 {
unsafe { lib().empyrean_session_is_masked(session, idx) }
}
#[inline]
pub unsafe fn empyrean_session_refine(
session: *mut EmpyreanSession,
ctx: *const EmpyreanContext,
result_out: *mut EmpyreanODResult,
) -> i32 {
unsafe { lib().empyrean_session_refine(session, ctx, result_out) }
}
#[inline]
pub unsafe fn empyrean_session_history_len(session: *const EmpyreanSession) -> usize {
unsafe { lib().empyrean_session_history_len(session) }
}
#[inline]
pub unsafe fn empyrean_session_get_history(
session: *const EmpyreanSession,
idx: usize,
result_out: *mut EmpyreanODResult,
) -> i32 {
unsafe { lib().empyrean_session_get_history(session, idx, result_out) }
}
#[inline]
pub unsafe fn empyrean_session_diff(
session: *const EmpyreanSession,
prior_idx: usize,
diff_out: *mut EmpyreanSessionDiff,
) -> i32 {
unsafe { lib().empyrean_session_diff(session, prior_idx, diff_out) }
}
#[inline]
pub unsafe fn empyrean_get_states(
ctx: *const EmpyreanContext,
target_naif_id: i32,
center_naif_id: i32,
epochs_mjd_tdb: *const f64,
num_epochs: usize,
frame: i32,
result_out: *mut EmpyreanStateResult,
) -> i32 {
unsafe {
lib().empyrean_get_states(
ctx,
target_naif_id,
center_naif_id,
epochs_mjd_tdb,
num_epochs,
frame,
result_out,
)
}
}
#[inline]
pub unsafe fn empyrean_state_result_free(result: *mut EmpyreanStateResult) {
unsafe { lib().empyrean_state_result_free(result) }
}
#[inline]
pub unsafe fn empyrean_iso_to_mjd(
iso: *const ::std::os::raw::c_char,
scale: i32,
out_mjd: *mut f64,
) -> i32 {
unsafe { lib().empyrean_iso_to_mjd(iso, scale, out_mjd) }
}
#[inline]
pub unsafe fn empyrean_mjd_to_iso(
mjd: f64,
scale: i32,
out_buf: *mut ::std::os::raw::c_char,
buf_len: usize,
) -> i32 {
unsafe { lib().empyrean_mjd_to_iso(mjd, scale, out_buf, buf_len) }
}
#[inline]
pub unsafe fn empyrean_transform_coordinates(
ctx: *const EmpyreanContext,
input: *const CoordinateState,
target_representation: i32,
target_frame: i32,
target_origin: i32,
output: *mut CoordinateState,
) -> i32 {
unsafe {
lib().empyrean_transform_coordinates(
ctx,
input,
target_representation,
target_frame,
target_origin,
output,
)
}
}