2#include <NDEVR/Model.h>
3#include <NDEVR/DesignCommand.h>
4#include <NDEVR/MercatorImageManager.h>
5#include <NDEVR/Translator.h>
6#if NDEVR_GROUND_SURFACE
22 class NDEVR_DESIGN_API GroundSurface :
public Model
30 GroundSurface(
const Model& model,
const void* lock_ptr =
nullptr);
37 void setupSurface(
const Bounds<2, fltp08>& size, fltp08 elevation);
45 void createFlatGeometry();
51 static constexpr StringView TypeName() {
return "ground_surface"; }
60 void setupMaterial(AerialImageMode mode, uint04 resolution,
const void* lock_ptr, LogPtr progress);
65 void setupMaterialCoordinates();
73 void setupPositionCoordinates(fltp08 grid_spacing,
const void* lock_ptr, LogPtr progress);
84 void createLinework(AerialImageMode mode, uint04 resolution,
bool apply_elevation,
bool auto_surface,
const void* lock_ptr, InfoPipe* progress);
90 bool canCreateLinework()
const;
96 uint04 surfaceMaterialResolution()
const;
102 uint04 lineworkResolution()
const;
108 Model surfaceModel()
const;
114 Model lineworkModel()
const;
132 bool appliedLineworkElevation()
const;
138 bool hasSurfacedLinework()
const;
144 Bounds<2, fltp08> wgs84Bounds()
const;
152 AerialImageRequest createImageRequest(AerialImageMode mode, uint04 resolution);
160 static Model FeatureLayer(ArialFeatureList feature, Model& reference);
166 fltp08 gridSpacing()
const;
174 void setupElevationCoordinates(Vertex<2, uint04> grid_size,
const void* lock_ptr, LogPtr progress);
186 void onLineworkImageFinished(
const MercatorImage& generated_image,
bool auto_surface,
bool apply_elevation, LogPtr progress, uint04 resolution, AerialImageMode mode,
const void* lock_ptr);
192 void initialize(
const void* lock_ptr);
205 GroundSurfaceMaterialCommand()
213 virtual StringView
icon()
const override {
return "aerial_view"; }
219 virtual TranslatedString
name()
const override {
return _t(
"Surface Raster"); }
225 virtual void execute(DesignObjectLookup* lookup)
override;
229 UUID target_id = Constant<UUID>::Invalid;
242 GroundSurfaceSetBoundsCommand()
251 virtual StringView
icon()
const override {
return "aerial_view"; }
257 virtual TranslatedString
name()
const override {
return _t(
"Set Bounds"); }
263 virtual void execute(DesignObjectLookup* lookup)
override;
265 Bounds<2, fltp08> bounds = Constant<Bounds<2, fltp08>>::Invalid;
267 UUID target_id = Constant<UUID>::Invalid;
Forward declaration of the central design object registry.
A simple structure for storing a collection of data.
A light-weight base class for Log that allows processes to update, without the need for additional in...
A core class that represents a node on model hierarchy.
The primary namespace for the NDEVR SDK.
ArialFeatureList
Contains a list of common features that may be provided by Aerial tile services.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
double fltp08
Defines an alias representing an 8 byte floating-point number.
AerialImageMode
enum specifying what type of image to fetch.
@ name
The display name of the object.
@ icon
Icon identifier for the object.
Contains the information for requesting a 2D top-down view of a geographic location to be used with a...
Information output from a specific Aerial Tile request.