![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/gpx.h"
#include "common/geo.h"
#include "common/darktable.h"
#include "common/math.h"
#include <glib.h>
#include <inttypes.h>
Data Structures | |
struct | dt_gpx_t |
Typedefs | |
typedef enum _gpx_parser_element_t | _gpx_parser_element_t |
typedef struct dt_gpx_t | dt_gpx_t |
Enumerations | |
enum | _gpx_parser_element_t { GPX_PARSER_ELEMENT_NONE = 0 , GPX_PARSER_ELEMENT_TRKPT = 1 << 0 , GPX_PARSER_ELEMENT_TIME = 1 << 1 , GPX_PARSER_ELEMENT_ELE = 1 << 2 , GPX_PARSER_ELEMENT_NAME = 1 << 3 } |
Functions | |
static void | _gpx_parser_start_element (GMarkupParseContext *ctx, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer ueer_data, GError **error) |
static void | _gpx_parser_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) |
static void | _gpx_parser_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) |
static gint | _sort_track (gconstpointer a, gconstpointer b) |
static gint | _sort_segment (gconstpointer a, gconstpointer b) |
dt_gpx_t * | dt_gpx_new (const gchar *filename) |
void | _track_seg_free (dt_gpx_track_segment_t *trkseg) |
void | _track_pts_free (dt_gpx_track_point_t *trkpt) |
void | dt_gpx_destroy (struct dt_gpx_t *gpx) |
gboolean | dt_gpx_get_location (struct dt_gpx_t *gpx, GDateTime *timestamp, dt_image_geoloc_t *geoloc) |
GList * | dt_gpx_get_trkseg (struct dt_gpx_t *gpx) |
GList * | dt_gpx_get_trkpts (struct dt_gpx_t *gpx, const guint segid) |
void | dt_gpx_geodesic_distance (double lat1, double lon1, double lat2, double lon2, double *d, double *delta) |
void | dt_gpx_geodesic_intermediate_point (const double lat1, const double lon1, const double lat2, const double lon2, const double delta, const gboolean first_time, double f, double *lat, double *lon) |
Variables | |
static GMarkupParser | _gpx_parser = { _gpx_parser_start_element, _gpx_parser_end_element, _gpx_parser_text, NULL, NULL } |
typedef enum _gpx_parser_element_t _gpx_parser_element_t |
|
static |
|
static |
References dt_gpx_t::current_parser_element, dt_gpx_t::current_track_point, dt_gpx_track_point_t::elevation, FALSE, GPX_PARSER_ELEMENT_ELE, GPX_PARSER_ELEMENT_NAME, GPX_PARSER_ELEMENT_TIME, GPX_PARSER_ELEMENT_TRKPT, dt_gpx_track_segment_t::id, dt_gpx_t::invalid_track_point, dt_gpx_track_point_t::latitude, dt_gpx_track_point_t::longitude, dt_gpx_track_segment_t::name, dt_gpx_t::parsing_trk, dt_gpx_t::seg_name, dt_gpx_t::segid, dt_gpx_track_point_t::segid, dt_gpx_t::trksegs, and TRUE.
|
static |
References dt_gpx_t::current_parser_element, dt_gpx_t::current_track_point, dt_gpx_track_point_t::elevation, dt_gpx_track_segment_t::end_dt, GPX_PARSER_ELEMENT_ELE, GPX_PARSER_ELEMENT_NAME, GPX_PARSER_ELEMENT_TIME, dt_gpx_t::invalid_track_point, dt_gpx_track_segment_t::nb_trkpt, dt_gpx_t::seg_name, dt_gpx_track_segment_t::start_dt, dt_gpx_track_point_t::time, dt_gpx_track_segment_t::trkpt, dt_gpx_t::trksegs, and TRUE.
|
static |
References dt_gpx_track_segment_t::start_dt.
Referenced by dt_gpx_new().
|
static |
References dt_gpx_track_point_t::time.
Referenced by dt_gpx_new().
void _track_pts_free | ( | dt_gpx_track_point_t * | trkpt | ) |
References dt_gpx_track_point_t::time.
Referenced by dt_gpx_destroy().
void _track_seg_free | ( | dt_gpx_track_segment_t * | trkseg | ) |
References dt_gpx_track_segment_t::name.
Referenced by dt_gpx_destroy().
References _track_pts_free(), _track_seg_free(), dt_gpx_t::trkpts, and dt_gpx_t::trksegs.
Referenced by _preview_gpx_file(), and dt_control_gpx_apply_job_run().
void dt_gpx_geodesic_distance | ( | double | lat1, |
double | lon1, | ||
double | lat2, | ||
double | lon2, | ||
double * | d, | ||
double * | delta | ||
) |
References EARTH_RADIUS, and M_PI.
Referenced by _track_add_point(), and dt_gpx_get_location().
void dt_gpx_geodesic_intermediate_point | ( | const double | lat1, |
const double | lon1, | ||
const double | lat2, | ||
const double | lon2, | ||
const double | delta, | ||
const gboolean | first_time, | ||
double | f, | ||
double * | lat, | ||
double * | lon | ||
) |
References f(), lat, lon, and M_PI.
Referenced by _track_add_point(), and dt_gpx_get_location().
gboolean dt_gpx_get_location | ( | struct dt_gpx_t * | gpx, |
GDateTime * | timestamp, | ||
dt_image_geoloc_t * | geoloc | ||
) |
References double(), dt_gpx_geodesic_distance(), dt_gpx_geodesic_intermediate_point(), DT_MINIMUM_ANGULAR_DELTA_FOR_GEODESIC, dt_gpx_track_point_t::elevation, dt_image_geoloc_t::elevation, f(), FALSE, g_list_shorter_than(), lat, dt_gpx_track_point_t::latitude, dt_image_geoloc_t::latitude, lon, dt_gpx_track_point_t::longitude, dt_image_geoloc_t::longitude, dt_gpx_track_point_t::time, dt_gpx_t::trkpts, and TRUE.
Referenced by dt_control_gpx_apply_job_run().
GList * dt_gpx_get_trkpts | ( | struct dt_gpx_t * | gpx, |
const guint | segid | ||
) |
GList * dt_gpx_get_trkseg | ( | struct dt_gpx_t * | gpx | ) |
References dt_gpx_t::trksegs.
Referenced by _preview_gpx_file().
dt_gpx_t * dt_gpx_new | ( | const gchar * | filename | ) |
References _gpx_parser, _sort_segment(), _sort_track(), error(), FALSE, dt_gpx_t::trkpts, and dt_gpx_t::trksegs.
Referenced by _preview_gpx_file(), and dt_control_gpx_apply_job_run().
|
static |
Referenced by dt_gpx_new().