NDEVR
API Documentation
ModelTileOptions.h
1#pragma once
2#include "DLLInfo.h"
3#if NDEVR_MODEL_TILE_CONTAINER
4#include <NDEVR/Model.h>
5#include <NDEVR/ModelTiler.h>
6#include <NDEVR/INIInterface.h>
7#include <NDEVR/StringEnum.h>
8namespace NDEVR
9{
16 enum PlacementAlignment
17 {
19 , e_min
20 , e_max
21 };
22
29 #define NDEVR_TILE_SPACING_MODE_ITEMS(X) \
30 X(e_center_to_center_distance) \
31 X(e_end_to_end_distance) \
32 X(e_scale_to_fit) \
33 X(e_per_vertex)
34 class JSONNode;
35 NDEVR_DEFINE_STRING_STREAM(TileSpacingMode, NDEVR_TILE_SPACING_MODE_ITEMS)
36 template class NDEVR_DESIGN_API StringStream<TileSpacingMode>;
37
45 class NDEVR_DESIGN_API ModelTileOptions : public INIInterface
46 {
47 public:
51 ModelTileOptions();
52
53 fltp08 horizontal_offset = 0.0;
54 fltp08 vertical_offset = 0.0;
55 fltp08 spacing = 1.0;
56 Angle<fltp08> inclination_offset = Angle<fltp08>(0);
57 Angle<fltp08> heading_offset = Angle<fltp08>(0);
58 Ray<3, fltp08> size = Constant<Ray<3, fltp08>>::Invalid;
59 PlacementAlignment placement_alignment_vert = PlacementAlignment::e_min;
60 PlacementAlignment placement_alignment_horz = PlacementAlignment::e_center;
61 TileSpacingMode spacing_mode = TileSpacingMode::e_center_to_center_distance;
62 bool path_heading = true;
63 bool path_inclination = true;
64 public:
69 virtual void getINI(INIFactory& factory) override;
70
75 JSONNode toJSON() const;
76
81 void fromJSON(const JSONNode& node);
82
91 ModelTiler::TileOptions convert(const Model& model_to_tile);
92 };
93}
94#endif
Stores an angle in an optimized internal format with support for efficient trigonometric operations.
Definition Angle.h:83
Contains methods for easily reading and writing to an INI file including efficient casting,...
Definition INIReader.h:107
Contains methods for easily reading and writing to an INI file including efficient casting,...
JavaScript Object Notation or JSON is an open - standard file format that uses human - readable text ...
Definition JSONParser.h:149
A core class that represents a node on model hierarchy.
Definition Model.h:292
Logic for reading or writing to a string or a user friendly, TranslatedString.
The primary namespace for the NDEVR SDK.
@ e_center
Center text both horizontally and vertically.
Definition Font.h:327
constexpr HSLColor Constant< HSLColor >::Invalid
The invalid HSLColor constant with all components set to invalid.
Definition HSLColor.h:264
double fltp08
Defines an alias representing an 8 byte floating-point number.
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...