OpenLexocad  27.1
Utils.h
Go to the documentation of this file.
1 #pragma once
2 #pragma warning(disable : 4251)
3 
4 #include <Base/String.h>
5 #include <Geom/Pnt.h>
6 
7 #include <functional>
8 #include <map>
9 #include <set>
10 
11 class QString;
12 class QWidget;
13 class QJsonObject;
14 
15 
16 
17 namespace Core
18 {
19 class LX_CORE_EXPORT Proj4Detail
20 {
21 public:
22  std::string id;
23  std::string desc;
24  std::string proj4;
25 };
26 
27 class LX_CORE_EXPORT Proj4
28 {
29 public:
30  std::string ccid;
31  std::string id;
32  std::map<std::string, Proj4Detail> proj4s;
33 };
34 
35 class LX_CORE_EXPORT Util
36 {
37 public:
38  static Base::String createTempName(const Base::String& dir, const Base::String& temp);
39  static void* getClassFromDLL(const Base::String& dllname, const Base::String& classname);
40  static void loadDLL(const Base::String& dllname);
41  static void removeDirectory(const Base::String& name);
42  static unsigned long long getDiskFreeSpaceOfDirectoryInMB(const Base::String& dir);
43  static unsigned long long getDiskFreeSpaceOfDirectoryInKB(const Base::String& dir);
44  static bool isMainThread();
45  static bool isBigEndian();
46 
47  static Base::String getDirectoryFromPath(const Base::String& aFilePath);
48  static Base::String getAbsolutePath(const Base::String& aPath, const Base::String& aAbsModelPath);
49  static bool removeDirContent(const Base::String& aDirName);
50  static bool proj4Convert(const std::string& inProjection,
51  const std::string& outProjection,
52  const std::vector<Geom::Pnt>& inPoints,
53  std::vector<Geom::Pnt>& outPoints);
54 
55  static std::vector<Proj4> getProj4Converter();
56 
57  static void printCallStack(int maxFrames = 0);
58  static bool runApp(const QString& appPath, std::map<QString, QString> env, std::vector<QString> args);
59 
60 
61  static bool downloadFile(QString url, QString savepath, QWidget* parent = 0, std::function<void(int, int)> callback = 0);
62  static bool unzip(QString zipFile, QString destDir);
63 
64  static QJsonObject getHttpResponse(QString url, QWidget* parent = 0);
65 };
66 
67 } // namespace Core
Definition: Utils.h:19
Core::PropertyText name
Definition: CoreDocument.h:167
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:23
Definition: Utils.h:27
std::string desc
Definition: Utils.h:23
Definition: Base.h:12
std::map< std::string, Proj4Detail > proj4s
Definition: Utils.h:32
std::string id
Definition: Utils.h:31
std::string proj4
Definition: Utils.h:24
std::string id
Definition: Utils.h:22
std::string ccid
Definition: Utils.h:30
Definition: Utils.h:35