cesium-native  0.41.0
JsonHelpers.h
1 #pragma once
2 
3 #include <glm/fwd.hpp>
4 #include <rapidjson/fwd.h>
5 
6 #include <optional>
7 #include <string>
8 #include <vector>
9 
10 namespace CesiumUtility {
11 
12 class JsonHelpers final {
13 public:
14  static std::optional<double>
15  getScalarProperty(const rapidjson::Value& tileJson, const std::string& key);
16  static std::optional<glm::dmat4x4> getTransformProperty(
17  const rapidjson::Value& tileJson,
18  const std::string& key);
19 
34  static std::optional<std::vector<double>> getDoubles(
35  const rapidjson::Value& json,
36  int32_t expectedSize,
37  const std::string& key);
38 
39  static std::string getStringOrDefault(
40  const rapidjson::Value& json,
41  const std::string& key,
42  const std::string& defaultValue);
43  static std::string getStringOrDefault(
44  const rapidjson::Value& json,
45  const std::string& defaultValue);
46 
47  static double getDoubleOrDefault(
48  const rapidjson::Value& json,
49  const std::string& key,
50  double defaultValue);
51  static double
52  getDoubleOrDefault(const rapidjson::Value& json, double defaultValue);
53 
54  static uint32_t getUint32OrDefault(
55  const rapidjson::Value& json,
56  const std::string& key,
57  uint32_t defaultValue);
58  static uint32_t
59  getUint32OrDefault(const rapidjson::Value& json, uint32_t defaultValue);
60 
61  static int32_t getInt32OrDefault(
62  const rapidjson::Value& json,
63  const std::string& key,
64  int32_t defaultValue);
65  static int32_t
66  getInt32OrDefault(const rapidjson::Value& json, int32_t defaultValue);
67 
68  static uint64_t getUint64OrDefault(
69  const rapidjson::Value& json,
70  const std::string& key,
71  uint64_t defaultValue);
72  static uint64_t
73  getUint64OrDefault(const rapidjson::Value& json, uint64_t defaultValue);
74 
75  static int64_t getInt64OrDefault(
76  const rapidjson::Value& json,
77  const std::string& key,
78  int64_t defaultValue);
79  static int64_t
80  getInt64OrDefault(const rapidjson::Value& json, int64_t defaultValue);
81 
82  static bool getBoolOrDefault(
83  const rapidjson::Value& json,
84  const std::string& key,
85  bool defaultValue);
86  static bool getBoolOrDefault(const rapidjson::Value& json, bool defaultValue);
87 
88  static std::vector<std::string>
89  getStrings(const rapidjson::Value& json, const std::string& key);
90  static std::vector<int64_t>
91  getInt64s(const rapidjson::Value& json, const std::string& key);
92 };
93 
94 } // namespace CesiumUtility
static std::optional< std::vector< double > > getDoubles(const rapidjson::Value &json, int32_t expectedSize, const std::string &key)
Obtains an array of numbers from the given JSON.
Utility classes for Cesium.