cesium-native 0.61.0
Loading...
Searching...
No Matches
VectorRasterizer.h
1#pragma once
2
3#include "VectorStyle.h"
4
5#include <CesiumGeometry/Rectangle.h>
6#include <CesiumGeospatial/Cartographic.h>
7#include <CesiumGeospatial/CartographicPolygon.h>
8#include <CesiumGeospatial/Ellipsoid.h>
9#include <CesiumGeospatial/GlobeRectangle.h>
10#include <CesiumGltf/ImageAsset.h>
11#include <CesiumGltf/Model.h>
12#include <CesiumUtility/Color.h>
13#include <CesiumUtility/IntrusivePointer.h>
14#include <CesiumUtility/ReferenceCounted.h>
15#include <CesiumVectorData/GeoJsonObject.h>
16
17#include <blend2d.h>
18#include <blend2d/context.h>
19#include <blend2d/image.h>
20
21#include <span>
22
23namespace CesiumVectorData {
24
29public:
46 uint32_t mipLevel = 0,
47 const CesiumGeospatial::Ellipsoid& ellipsoid =
49
58 const PolygonStyle& style);
59
70 const std::vector<std::vector<glm::dvec3>>& polygon,
71 const PolygonStyle& style);
72
83 const std::vector<std::vector<CesiumGeospatial::Cartographic>>& polygon,
84 const PolygonStyle& style);
85
93 void
94 drawPolyline(const std::vector<glm::dvec3>& points, const LineStyle& style);
95
103 const std::vector<CesiumGeospatial::Cartographic>& points,
104 const LineStyle& style);
105
113 void
114 drawPoints(const std::vector<glm::dvec3>& points, const PointStyle& style);
115
123 const std::vector<CesiumGeospatial::Cartographic>& points,
124 const PointStyle& style);
125
144 const GeoJsonObject& geoJsonObject,
145 const VectorStyle& style);
146
152 void clear(const CesiumUtility::Color& clearColor);
153
162
163private:
165 BLImage _image;
166 BLContext _context;
168 uint32_t _mipLevel;
170 bool _finalized = false;
171};
172} // namespace CesiumVectorData
A 2D polygon expressed as a list of longitude/latitude coordinates in radians.
A quadratic surface defined in Cartesian coordinates.
Definition Ellipsoid.h:39
static const Ellipsoid WGS84
An Ellipsoid instance initialized to the WGS84 standard.
Definition Ellipsoid.h:48
A two-dimensional, rectangular region on a globe, specified using longitude and latitude coordinates....
A smart pointer that calls addReference and releaseReference on the controlled object.
void drawPolygon(const CesiumGeospatial::CartographicPolygon &polygon, const PolygonStyle &style)
Draws a CesiumGeospatial::CartographicPolygon to the canvas.
void drawPolyline(const std::vector< glm::dvec3 > &points, const LineStyle &style)
Draws a polyline (a set of multiple line segments) to the canvas.
CesiumUtility::IntrusivePointer< CesiumGltf::ImageAsset > finalize()
Finalizes the rasterization operations, flushing all draw calls to the canvas, ensuring proper pixel ...
void clear(const CesiumUtility::Color &clearColor)
Fills the entire canvas with the given color.
VectorRasterizer(const CesiumGeospatial::GlobeRectangle &bounds, CesiumUtility::IntrusivePointer< CesiumGltf::ImageAsset > &imageAsset, uint32_t mipLevel=0, const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84)
Creates a new VectorRasterizer representing the given rectangle on the globe.
void drawPoints(const std::vector< glm::dvec3 > &points, const PointStyle &style)
Draws a set of points to the canvas.
void drawPolygon(const std::vector< std::vector< CesiumGeospatial::Cartographic > > &polygon, const PolygonStyle &style)
Draws a set of linear rings representing a polygon and its holes to the canvas.
void drawPolygon(const std::vector< std::vector< glm::dvec3 > > &polygon, const PolygonStyle &style)
Draws a set of linear rings representing a polygon and its holes to the canvas.
void drawPolyline(const std::vector< CesiumGeospatial::Cartographic > &points, const LineStyle &style)
Draws a polyline (a set of multiple line segments) to the canvas.
void drawPoints(const std::vector< CesiumGeospatial::Cartographic > &points, const PointStyle &style)
Draws a set of points to the canvas.
void drawGeoJsonObject(const GeoJsonObject &geoJsonObject, const VectorStyle &style)
Rasterizes a GeoJsonObject to the canvas.
Classes for loading vector data such as GeoJSON.
Represents an RGBA color value.
Definition Color.h:9
An object in a GeoJSON document.
The style used to draw polylines and strokes.
Definition VectorStyle.h:70
The style used to draw a point.
Definition VectorStyle.h:98
The style used to draw a Polygon.
Definition VectorStyle.h:84
Style information to use when drawing vector data.