blob: 1df44e6b2af9a2241dd8baa52888ba4a71af5e00 (
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&,
const style::CustomGeometrySource::TileOptions,
ActorRef<style::CustomTileLoader> loader);
~CustomGeometryTile() override;
void setTileData(const GeoJSON& data);
void invalidateTileData();
void setNecessity(TileNecessity) final;
void querySourceFeatures(
std::vector<Feature>& result,
const SourceQueryOptions&) override;
private:
bool stale = true;
TileNecessity necessity;
const style::CustomGeometrySource::TileOptions options;
ActorRef<style::CustomTileLoader> loader;
std::shared_ptr<Mailbox> mailbox;
ActorRef<CustomGeometryTile> actorRef;
};
} // namespace mbgl
|