API Documentation
Loading...
Searching...
No Matches
GroundSurface.h
Go to the documentation of this file.
1#pragma once
2#include <NDEVR/Model.h>
3#if NDEVR_GROUND_SURFACE
4//#include <NDEVR/GeometrySurfacing.h>
5namespace NDEVR
6{
7 enum class AerialImageMode;
8 enum class ArialFeatureList;
9 class ProgressInfo;
10 struct AerialImageRequest;
11 struct MercatorImage;
12 class DesignSelection;
13
14 /**--------------------------------------------------------------------------------------------------
15 \brief A Model which represents the ground and can be used to visualize Aerial data in 3D.
16 **/
17 class NDEVR_DESIGN_API GroundSurface : public Model
18 {
19 public:
20 GroundSurface(const Model& model, const void* lock_ptr = nullptr);
21 void setupSurface(const Bounds<2, fltp08>& size, fltp08 elevation);
22#if NDEVR_SURFACING
23 //void setupSurface(GeometrySurfacingParameters& params, const DesignSelection& info);
24#endif
25 void createFlatGeometry();
26 static constexpr const char* TypeName() { return "ground_surface"; }
27 void setupMaterial(AerialImageMode mode, uint04 resolution, const void* lock_ptr, ProgressInfo* progress);
28 void setupMaterialCoordinates();
29 void setupPositionCoordinates(fltp08 grid_spacing, const void* lock_ptr, ProgressInfo* progress);
30 void createLinework(AerialImageMode mode, uint04 resolution, bool apply_elevation, bool auto_surface, const void* lock_ptr, ProgressInfo* progress);
31 bool canCreateLinework() const;
32 uint04 surfaceMaterialResolution() const;
33 uint04 lineworkResolution() const;
34 Model surfaceModel() const;
35 Model lineworkModel() const;
36 AerialImageMode lineworkMode() const;
37 AerialImageMode surfaceImageMode() const;
38 bool appliedLineworkElevation() const;
39 bool hasSurfacedLinework() const;
40 Bounds<2, fltp08> wgs84Bounds() const;
41 AerialImageRequest createImageRequest(AerialImageMode mode, uint04 resolution);
42 static Model FeatureLayer(ArialFeatureList feature, Model& reference);
43 fltp08 gridSpacing() const;
44 protected:
45 void setupElevationCoordinates(Vertex<2, uint04> grid_size, const void* lock_ptr, ProgressInfo* progress);
46 void onLineworkImageFinished(const MercatorImage& generated_image, bool auto_surface, bool apply_elevation, ProgressInfo* progress, uint04 resolution, AerialImageMode mode, const void* lock_ptr);
47 void initialize(const void* lock_ptr);
48 };
49}
50#endif
#define NDEVR_DESIGN_API
Definition DLLInfo.h:55
Definition ACIColor.h:37
AerialImageMode
enum specifying what type of image to fetch. Options for terrain, satellite, or road views
Definition MercatorImageManager.h:16
ArialFeatureList
Contains a list of common features that may be provided by Aerial tile services.
Definition MercatorImageManager.h:28
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149