34#include <NDEVR/CoordinateProjection.h>
35#include <NDEVR/Dictionary.h>
36#include <NDEVR/String.h>
37#include <NDEVR/Pointer.h>
38#include <NDEVR/File.h>
39#include <NDEVR/UUID.h>
43 template<u
int01 t_dims,
class t_type,
class t_vertex>
58 template<
class t_type>
64 void setCoordinateFile(
File& file);
65 void readCoordinateFile(
File& file);
66 void writeCoordinateFile(
File& file)
const;
67 void readDirectoryStructure(
File& top_dir,
File& save_as);
68 void readDirectoryStructure(
File& top_dir);
70 void createUTMCoordinateProjections();
74 void setDownloader(std::function<
void(
const String&, std::function<
void(
const String&)>)> downloader);
75 bool hasDownloader()
const;
76 void downloadAllProjections();
77 bool downloadEPSGProjection(
uint04 epsg_code, std::function<
void(
uint04 code,
UUID projection)> finished_callback,
bool force_download =
false);
79 UUID wgs84Projection()
const;
82 bool hasProjection(
UUID projection_id)
const;
98 static bool HasEngine();
103 static UUID UseBestUTMProjectionID();
Stores an angle in an optimized format.
Definition StringStream.h:352
A specification of upper and lower bounds in N-dimensions.
Definition Bounds.hpp:57
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:64
Definition GraphicsPipeline.h:42
Definition CoordinateConverter.h:39
Definition CoordinateProjectionManager.h:62
std::function< void(const String &, std::function< void(const String &)>)> m_downloader
Definition CoordinateProjectionManager.h:111
Dictionary< UUID, CoordinateProjection > m_projections
Definition CoordinateProjectionManager.h:112
Dictionary< UUID, CoordinateConverter * > m_wgs_84_converter
Definition CoordinateProjectionManager.h:109
const Dictionary< UUID, CoordinateProjection > & projections() const
Definition CoordinateProjectionManager.h:96
Dictionary< String, ConstPointer< Unit > > m_units
Definition CoordinateProjectionManager.h:114
Polyline< 2, fltp08, Vertex< 2, fltp08 > > convertToWGS84(UUID from_id, const Polyline< 2, fltp08, Vertex< 2, fltp08 > > &segment) const
Buffer< UUID > m_utm_projections
Definition CoordinateProjectionManager.h:110
File m_coordinate_file
Definition CoordinateProjectionManager.h:115
A program-defined unit that can be used for some specific task different from a program-wide unit.
Definition UnitManager.h:63
Definition Dictionary.h:48
Definition Pointer.hpp:303
JavaScript Object Notation or JSON is an open - standard file format that uses human - readable text ...
Definition JSONParser.h:121
Definition CoordinateProjectionManager.h:53
static constexpr const char * LatLonUnitName()
Definition CoordinateProjectionManager.h:56
A line segment represented by two vertices, a start and end.
Definition Line.hpp:55
A polyline which stores vertex information for many points along a given path.
Definition CoordinateProjectionManager.h:44
Definition UnitManager.h:126
Definition UnitManager.h:12
A vertex.
Definition Vertex.hpp:54
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:120
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:181
Definition BaseValues.hpp:272
Definition CoordinateProjection.h:41