34#include <NDEVR/DrillHole.h>
49 class NDEVR_DESIGN_API DrillPattern :
public Model
58 NDEVR_DESIGN_API HoleLayout();
61 NDEVR_DESIGN_API HoleLayout(
const JSONNode& node);
62 TranslatedString row_name_format;
63 TranslatedString hole_name_format;
73 NDEVR_DESIGN_API Vertex<3, fltp08> rowOffset(uint04 row)
const;
77 NDEVR_DESIGN_API Vertex<3, fltp08> holeOffset(uint04 hole)
const;
81 bool operator!=(
const HoleLayout& pattern)
const
83 return row_name_format != pattern.row_name_format
84 || hole_name_format != pattern.hole_name_format
85 || row_spacing != pattern.row_spacing
86 || hole_spacing != pattern.hole_spacing
87 || row_skew != pattern.row_skew
88 || row_count != pattern.row_count
89 || holes_per_row != pattern.holes_per_row
90 || stagger != pattern.stagger;
98 DrillPattern(
const Model& root, fltp08 default_radius = Constant<fltp08>::Invalid);
102 DrillHole addCollar(TranslatedString collar_name = TranslatedString());
106 DrillHole addCollar(uint04 collar_number);
109 void setupCollar(Model& collar);
115 void addHolePath(
const TranslatedString& collar_name,
const TranslatedString& path_name,
const Buffer<fltp08>& data, fltp08 radius = Constant<fltp08>::Invalid);
121 void addHolePath(
const TranslatedString& collar_name,
const TranslatedString& path_name,
const Buffer<Vertex<3, fltp08>>& data, fltp08 radius = Constant<fltp08>::Invalid);
129 void addHolePath(
const TranslatedString& row_name,
const TranslatedString& collar_name,
const TranslatedString& path_name,
const Buffer<fltp08>& data, fltp08 radius = Constant<fltp08>::Invalid);
136 void addHolePath(
const TranslatedString& row_name,
const TranslatedString& collar_name,
const TranslatedString& path_name,
const Buffer<Vertex<3, fltp08>>& data, fltp08 radius = Constant<fltp08>::Invalid);
141 void setPathVisible(
const TranslatedString& path,
bool is_visible);
145 Model getRow(
const StringView& row_name);
149 Model getRow(
const TranslatedString& row_name);
153 Model addRow(
const StringView& row_name);
157 Model addRow(
const TranslatedString& row_name);
162 Model addRow(
const uint04& row_number,
bool auto_offset);
166 Model addHole(
const uint04& row_number);
171 static TranslatedString DefaultRowName(uint04 row_number, TranslatedString row_name_format = TranslatedString());
177 static TranslatedString DefaultHoleName(uint04 row_number, uint04 hole_number, TranslatedString hole_name_format = TranslatedString());
181 HoleLayout getLayout()
const;
184 bool hasRows()
const;
190 Buffer<Model> rows()
const;
196 fltp08 defaultRadius()
const;
202 void layoutPattern(
const HoleLayout& layout, Buffer<Model>& added_models, Buffer<Model>& unused_models);
208 TranslatedString holeNamingConvention()
const;
211 void setHoleNamingConvention(
const TranslatedString& value);
213 void autoNameHoles();
217 TranslatedString rowNamingConvention()
const;
220 void setRowNamingConvention(
const TranslatedString& value);
226 static constexpr StringView TypeName() {
return "drill_pattern"; }
229 static constexpr StringView RowTypeName() {
return "drill_pattern_row"; }
JavaScript Object Notation or JSON is an open - standard file format that uses human - readable text ...
A core class that represents a node on model hierarchy.
The primary namespace for the NDEVR SDK.
constexpr bool operator!=(const Vector< t_dims, t_type > &vec_a, const Vector< t_dims, t_type > &vec_b)
Inequality operator.
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.