blob: 06952871271be7c4a1f76f325e97e09a2f05915c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#pragma once
#include <mbgl/tile/geometry_tile.hpp>
#include <mbgl/style/sources/custom_geometry_source.hpp>
#include <mbgl/util/feature.hpp>
#include <mbgl/util/geojson.hpp>
#include <mbgl/actor/mailbox.hpp>
namespace mbgl {
class TileParameters;
namespace style {
class CustomTileLoader;
} // namespace style
class CustomGeometryTile: public GeometryTile {
public:
CustomGeometryTile(const OverscaledTileID&,
std::string sourceID,
const TileParameters&,
Immutable<style::CustomGeometrySource::TileOptions>,
ActorRef<style::CustomTileLoader> loader);
~CustomGeometryTile() override;
void setTileData(const GeoJSON& geoJSON);
void invalidateTileData();
void setNecessity(TileNecessity) final;
void querySourceFeatures(
std::vector<Feature>& result,
const SourceQueryOptions&) override;
private:
bool stale = true;
TileNecessity necessity;
Immutable<style::CustomGeometrySource::TileOptions> options;
ActorRef<style::CustomTileLoader> loader;
std::shared_ptr<Mailbox> mailbox;
ActorRef<CustomGeometryTile> actorRef;
};
} // namespace mbgl
|