FlatCityBuf C++ reader 0.8.0
Native C++17 reader for FlatCityBuf, the cloud-optimized CityJSON format
Loading...
Searching...
No Matches
geom_encoder.hpp File Reference
#include <fcb/geometry.hpp>
#include <nlohmann/json.hpp>
#include <cstdint>
#include <optional>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  fcb::GMBoundaries
 Flattened geometry boundaries: a flat vertex-index list plus one count array per level of the dimensional hierarchy (rings-per-surface, surfaces-per-shell, shells-per-solid). More...
 
struct  fcb::GMSemantics
 Flattened semantics: surfaces is the CityJSON semantics.surfaces array, passed through verbatim (FlatBuffers SemanticObject encoding, including its "other" attributes, is M3's job). More...
 
struct  fcb::MaterialMapping
 One theme's material mapping. More...
 
struct  fcb::TextureMapping
 One theme's texture mapping. More...
 
struct  fcb::EncodedGeometry
 Everything one CityJSON geometry object flattens to. More...
 

Namespaces

namespace  fcb
 

Functions

GeometryKind fcb::geometry_kind_from_name (const std::string &name)
 Maps a CityJSON geometry type string to GeometryKind.
 
GMBoundaries fcb::encode_boundaries (GeometryKind kind, const nlohmann::ordered_json &boundaries)
 Flattens boundaries (nested CityJSON boundary arrays, straight off the JSON as parsed – no intermediate typed representation) at exactly the depth kind implies.
 
GMSemantics fcb::encode_semantics (const nlohmann::ordered_json &semantics, const GMBoundaries &boundaries)
 Flattens semantics (the CityJSON semantics object: surfaces plus values), using boundaries's shell/solid counts to expand a null shell or solid into the right number of per-surface nulls (there is no wire encoding for a whole-null shell in semantics, unlike material).
 
std::vector< MaterialMappingfcb::encode_material (const nlohmann::ordered_json &material)
 Flattens material (the CityJSON geometry.material object: theme name -> {"value": N} / {"values": [...]} / {"values": null}).
 
std::vector< TextureMappingfcb::encode_texture (const nlohmann::ordered_json &texture)
 Flattens texture (the CityJSON geometry.texture object).
 
EncodedGeometry fcb::encode (const nlohmann::ordered_json &geometry)
 Flattens one CityJSON geometry object – its boundaries and whatever semantics, material and texture it carries – into the FlatCityBuf arrays.