maplibre/legacy/geometry/
feature_index.rs

1//! Translated from https://github.com/maplibre/maplibre-native/blob/4add9ea/src/mbgl/geometry/feature_index.cpp
2
3/// maplibre/maplibre-native#4add9ea original name: IndexedSubfeature
4#[derive(Clone)]
5pub struct IndexedSubfeature {
6    pub ref_: RefIndexedSubfeature,
7    pub source_layer_name_copy: String,
8    pub bucket_leader_idcopy: String,
9}
10
11impl IndexedSubfeature {
12    /// maplibre/maplibre-native#4add9ea original name: new
13    pub fn new(
14        indexed_feature: IndexedSubfeature,
15        bucket_instance_id: u32,
16        collision_group_id: u16,
17    ) -> IndexedSubfeature {
18        IndexedSubfeature {
19            ref_: RefIndexedSubfeature {
20                index: indexed_feature.ref_.index,
21                sort_index: indexed_feature.ref_.sort_index,
22                source_layer_name: indexed_feature.ref_.source_layer_name.to_string(),
23                bucket_leader_id: indexed_feature.ref_.bucket_leader_id.to_string(),
24                bucket_instance_id,
25                collision_group_id,
26            },
27            source_layer_name_copy: indexed_feature.ref_.source_layer_name.to_string(),
28            bucket_leader_idcopy: indexed_feature.ref_.bucket_leader_id.to_string(),
29        }
30    }
31}
32
33/// maplibre/maplibre-native#4add9ea original name: RefIndexedSubfeature
34#[derive(Clone)]
35pub struct RefIndexedSubfeature {
36    pub index: usize,
37    pub sort_index: usize,
38
39    pub source_layer_name: String,
40    pub bucket_leader_id: String,
41
42    // Only used for symbol features
43    pub bucket_instance_id: u32,
44    pub collision_group_id: u16,
45}