maplibre/legacy/image.rs
1//! Translated from https://github.com/maplibre/maplibre-native/blob/4add9ea/src/mbgl/style/image.cpp
2
3use std::{cmp::Ordering, collections::HashMap};
4
5// TODO
6/// maplibre/maplibre-native#4add9ea original name: ImageManager
7pub struct ImageManager;
8/// maplibre/maplibre-native#4add9ea original name: PremultipliedImage
9pub struct PremultipliedImage;
10
11/// maplibre/maplibre-native#4add9ea original name: ImageStretch
12pub type ImageStretch = (f64, f64);
13/// maplibre/maplibre-native#4add9ea original name: ImageStretches
14pub type ImageStretches = Vec<ImageStretch>;
15
16/// maplibre/maplibre-native#4add9ea original name: ImageContent
17#[derive(Clone)]
18pub struct ImageContent {
19 pub left: f64,
20 pub top: f64,
21 pub right: f64,
22 pub bottom: f64,
23}
24
25/// maplibre/maplibre-native#4add9ea original name: Image
26pub struct Image {
27 pub id: String,
28
29 image: PremultipliedImage,
30
31 // Pixel ratio of the sprite image.
32 pub pixel_ratio: f64,
33
34 // Whether this image should be interpreted as a signed distance field icon.
35 pub sdf: bool,
36
37 // Stretch areas of this image.
38 pub stretch_x: Option<ImageStretches>,
39 pub stretch_y: Option<ImageStretches>,
40
41 // The space where text can be fit into this image.
42 pub content: Option<ImageContent>,
43}
44
45impl PartialEq<Self> for Image {
46 /// maplibre/maplibre-native#4add9ea original name: eq
47 fn eq(&self, other: &Self) -> bool {
48 self.id.eq(&other.id)
49 }
50}
51
52impl PartialOrd<Self> for Image {
53 /// maplibre/maplibre-native#4add9ea original name: partial_cmp
54 fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
55 self.id.partial_cmp(&other.id)
56 }
57}
58
59/// maplibre/maplibre-native#4add9ea original name: ImageType
60pub enum ImageType {
61 Icon,
62 Pattern,
63}
64
65/// maplibre/maplibre-native#4add9ea original name: ImageMap
66pub type ImageMap = HashMap<String, Image>;
67/// maplibre/maplibre-native#4add9ea original name: ImageDependencies
68pub type ImageDependencies = HashMap<String, ImageType>;
69/// maplibre/maplibre-native#4add9ea original name: ImageRequestPair
70pub type ImageRequestPair = (ImageDependencies, u64);
71/// maplibre/maplibre-native#4add9ea original name: ImageVersionMap
72pub type ImageVersionMap = HashMap<String, u32>;