56 template <u
int01 t_index>
62 template <u
int01 t_index>
68 template <u
int01 t_index>
75 return m_use_active_value_set;
79 m_use_active_value_set = use_active_value_set;
83 return m_active_value_set;
86 template<u
int04 t_value,
class t_type>
89 if (m_use_active_value_set)
90 m_active_value_set.insert(t_value);
92 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
93 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
94 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
95 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
96 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
97 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
98 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
99 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
100 ,
"Unknown Value Type");
103 value_0[t_value] =
String(value);
104 else if (t_value == 5)
106 else if (t_value >= 6 && t_value < 10)
107 value_6[t_value - 6] =
String(value);
109 else if (t_value >= 10 && t_value < 60)
112 else if (t_value >= 60 && t_value < 80)
115 else if (t_value >= 90 && t_value < 100)
118 else if (t_value == 100)
119 value_100 =
String(value);
121 else if (t_value == 102)
122 value_102 =
String(value);
124 else if (t_value == 105)
125 value_105 =
String(value);
127 else if (t_value >= 110 && t_value < 150)
129 else if (t_value >= 160 && t_value < 170)
132 else if (t_value >= 170 && t_value < 180)
135 else if (t_value == 210)
137 else if (t_value == 220)
139 else if (t_value == 230)
142 else if (t_value >= 280 && t_value < 290)
144 else if (t_value >= 290 && t_value < 300)
147 else if (t_value >= 300 && t_value < 310)
148 value_300[t_value - 300] =
String(value);
150 else if (t_value >= 310 && t_value < 320)
151 value_310[t_value - 310] =
String(value);
153 else if (t_value >= 320 && t_value < 330)
154 value_320[t_value - 320] =
String(value);
156 else if (t_value >= 330 && t_value < 370)
158 else if (t_value >= 370 && t_value < 380)
160 else if (t_value >= 420 && t_value < 430)
163 else if (t_value == 999)
164 value_999 =
String(value);
166 else if (t_value >= 1000 && t_value < 1010)
167 value_1000[t_value - 1000] =
String(value);
169 else if (t_value >= 1010 && t_value < 1060)
172 else if (t_value >= 1060 && t_value < 1070)
175 else if (t_value == 1071)
181 template<u
int04 t_value,
class t_type>
184 if (m_use_active_value_set)
185 m_active_value_set.insert(t_value);
187 (t_value < 10) || (t_value == 100) || (t_value == 102)
188 || (t_value == 105) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
189 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value == 999)
190 || (t_value >= 1000 && t_value < 1010)
191 ,
"Unknown Value Type");
194 value_0[t_value] +=
String(value);
195 else if (t_value >= 6 && t_value < 10)
196 value_6[t_value - 6] +=
String(value);
197 else if (t_value == 100)
198 value_100 +=
String(value);
200 else if (t_value == 102)
201 value_102 +=
String(value);
203 else if (t_value == 105)
204 value_105 +=
String(value);
205 else if (t_value >= 300 && t_value < 310)
206 value_300[t_value - 300] +=
String(value);
208 else if (t_value >= 310 && t_value < 320)
209 value_310[t_value - 310] +=
String(value);
211 else if (t_value >= 320 && t_value < 330)
212 value_320[t_value - 320] +=
String(value);
214 else if (t_value == 999)
215 value_999 +=
String(value);
217 else if (t_value >= 1000 && t_value < 1010)
218 value_1000[t_value - 1000] +=
String(value);
227 template<u
int04 t_value,
class t_type>
228 [[nodiscard]] t_type
getValue(
const t_type& default_value)
const
231 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
232 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
233 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
234 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
235 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
236 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
237 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
238 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
239 ,
"Unknown Value Type");
241 return default_value;
243#pragma warning (disable: 4800)
244#pragma warning (disable: 26454)
248 return value_0[t_value].
getAs<t_type>();
251 if (t_value >= 6 && t_value < 10)
252 return value_6[t_value - 6].
getAs<t_type>();
254 if (t_value >= 10 && t_value < 60)
257 if (t_value >= 60 && t_value < 80)
260 if (t_value >= 90 && t_value < 100)
264 return value_100.
getAs<t_type>();
267 return value_102.
getAs<t_type>();
270 return value_105.
getAs<t_type>();
272 if (t_value >= 110 && t_value < 150)
274 if (t_value >= 160 && t_value < 170)
277 if (t_value >= 170 && t_value < 180)
287 if (t_value >= 280 && t_value < 290)
289 if (t_value >= 290 && t_value < 300)
292 if (t_value >= 300 && t_value < 310)
293 return value_300[t_value - 300].
getAs<t_type>();
295 if (t_value >= 310 && t_value < 320)
296 return value_310[t_value - 310].
getAs<t_type>();
298 if (t_value >= 320 && t_value < 330)
299 return value_320[t_value - 320].
getAs<t_type>();
302 if (t_value >= 330 && t_value < 370)
304 if (t_value >= 370 && t_value < 380)
306 if (t_value >= 420 && t_value < 430)
310 return value_999.
getAs<t_type>();
312 if (t_value >= 1000 && t_value < 1010)
313 return value_1000[t_value - 1000].
getAs<t_type>();
315 if (t_value >= 1010 && t_value < 1060)
318 if (t_value >= 1060 && t_value < 1070)
324 return default_value;
326#pragma warning (default: 4800)
327#pragma warning (default: 26454)
335 template <u
int04 t_value>
339 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
340 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
341 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
342 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
343 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
344 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
345 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
346 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
347 ,
"Unknown Value Type");
350 return value_0[t_value].
size() != 0;
353 if (t_value >= 6 && t_value < 10)
354 return value_6[t_value - 6].
size() != 0;
356 if (t_value >= 10 && t_value < 60)
359 if (t_value >= 60 && t_value < 80)
362 if (t_value >= 90 && t_value < 100)
366 return value_100.
size() != 0;
369 return value_102.
size() != 0;
372 return value_105.
size() != 0;
374 if (t_value >= 110 && t_value < 150)
376 if (t_value >= 160 && t_value < 170)
379 if (t_value >= 170 && t_value < 180)
389 if (t_value >= 280 && t_value < 290)
391 if (t_value >= 290 && t_value < 300)
394 if (t_value >= 300 && t_value < 310)
395 return value_300[t_value - 300].
size() != 0;
397 if (t_value >= 310 && t_value < 320)
398 return value_310[t_value - 310].
size() != 0;
400 if (t_value >= 320 && t_value < 330)
401 return value_320[t_value - 320].
size() != 0;
403 if (t_value >= 330 && t_value < 370)
405 if (t_value >= 370 && t_value < 380)
411 return value_999.
size() != 0;
413 if (t_value >= 1000 && t_value < 1010)
414 return value_1000[t_value - 1000].
size() != 0;
416 if (t_value >= 1010 && t_value < 1060)
419 if (t_value >= 1060 && t_value < 1070)
429 template <u
int01 t_index, u
int01 t_dims,
class t_type>
432 static_assert(t_index < 10,
"Bad Vector Index");
461 template <
class t_type>
465 return default_value;
468 return value_0[value].
getAs<t_type>();
471 if (value >= 6 && value < 10)
472 return value_6[value - 6].
getAs<t_type>();
474 if (value >= 10 && value < 60)
477 if (value >= 60 && value < 80)
480 if (value >= 90 && value < 100)
484 return value_100.
getAs<t_type>();
487 return value_102.
getAs<t_type>();
490 return value_105.
getAs<t_type>();
492 if (value >= 110 && value < 150)
494 if (value >= 160 && value < 170)
497 if (value >= 170 && value < 180)
506 if (value >= 280 && value < 290)
508 if (value >= 290 && value < 300)
511 if (value >= 300 && value < 310)
512 return value_300[value - 300].
getAs<t_type>();
514 if (value >= 310 && value < 320)
515 return value_310[value - 310].
getAs<t_type>();
517 if (value >= 320 && value < 330)
518 return value_320[value - 320].
getAs<t_type>();
520 if (value >= 330 && value < 370)
522 if (value >= 370 && value < 390)
524 if (value >= 390 && value < 400)
525 return value_390[value - 390].
getAs<t_type>();
526 if (value >= 420 && value < 430)
530 return value_999.
getAs<t_type>();
532 if (value >= 1000 && value < 1010)
533 return value_1000[value - 1000].
getAs<t_type>();
535 if (value >= 1010 && value < 1060)
538 if (value >= 1060 && value < 1070)
544 return default_value;
554 else if(value >= 6 && value < 10)
555 s.
append(value_6[value - 6]);
557 else if (value >= 10 && value < 60)
560 else if (value >= 60 && value < 80)
563 else if (value >= 90 && value < 100)
566 else if (value == 100)
569 else if (value == 102)
572 else if (value == 105)
575 else if (value >= 110 && value < 150)
577 else if (value >= 160 && value < 170)
580 else if (value >= 170 && value < 180)
582 else if (value == 210)
584 else if (value == 220)
586 else if (value == 230)
589 else if (value >= 280 && value < 290)
591 else if (value >= 290 && value < 300)
594 else if (value >= 300 && value < 310)
595 s.
append(value_300[value - 300]);
597 else if (value >= 310 && value < 320)
598 s.
append(value_310[value - 310]);
600 else if (value >= 320 && value < 330)
601 s.
append(value_320[value - 320]);
603 else if (value >= 330 && value < 370)
605 else if (value >= 370 && value < 390)
607 else if (value >= 390 && value < 400)
608 s.
addAll(value_390[value - 390]);
609 else if (value >= 420 && value < 430)
612 else if (value == 999)
615 else if (value >= 1000 && value < 1010)
616 s.
append(value_1000[value - 1000]);
618 else if (value >= 1010 && value < 1060)
621 else if (value >= 1060 && value < 1070)
624 else if (value == 1071)
697 bool m_use_active_value_set =
false;
#define lib_assert(expression, message)
Asserts some logic in the code. Disabled in non debug mode by default. Can be re-enabled in release u...
Definition LibAssert.h:68
Logic for reading or writing to a binary file including logic for.
Definition BinaryFile.h:59
constexpr t_index_type size() const
Definition Buffer.hpp:1374
void addAll(const Buffer< t_type, t_other_index_type, t_other_memory_allocator, t_other_memory_manager > &buffer)
Definition Buffer.hpp:276
Definition DXFValueManager.h:42
bool usingActiveValueSet() const
Definition DXFValueManager.h:73
const Set< uint04 > & getValuesSet() const
Definition DXFValueManager.h:81
bool appendValue(const t_type &value)
Definition DXFValueManager.h:182
Vector< 2, fltp08 > getVector2(const fltp08 &bad_value) const
Definition DXFValueManager.h:63
bool hasValue(uint04 value) const
Vector< 1, fltp08 > getVector1(const fltp08 &bad_value) const
Definition DXFValueManager.h:57
bool setValue(const t_type &value)
Definition DXFValueManager.h:87
t_type getValue(uint04 value, const t_type &default_value) const
Definition DXFValueManager.h:462
void setUseActiveValueSet(bool use_active_value_set)
Definition DXFValueManager.h:77
bool hasValue() const
Definition DXFValueManager.h:336
bool appendValue(uint04 location, const String &value)
Vector< 3, fltp08 > getVector3(const fltp08 &bad_value) const
Definition DXFValueManager.h:69
bool setValue(uint04 location, BinaryFile &file)
t_type getValue(const t_type &default_value) const
Definition DXFValueManager.h:228
void appendValue(String &s, uint04 value) const
Definition DXFValueManager.h:547
bool setValue(uint04 location, Scanner &scan)
bool setValue(uint04 location, const String &value)
void setVector(const Vector< t_dims, t_type > &value)
Definition DXFValueManager.h:430
DXFValueManager()
Definition DXFValueManager.h:44
static void writeFloat(String &string, fltp08 value, flt_to_string mode=DTOSTR_NORMAL, uint01 precision=10)
Definition NumberWriter.h:350
static constexpr void writeInt(String &string, t_type initial_value)
Definition NumberWriter.h:276
Contains methods for easily reading objects in an ascii stream.
Definition Scanner.h:45
Container that stores unique elements in no particular order, and which allow for fast retrieval.
Definition Model.h:51
The core String class for the software.
Definition String.h:47
NDEVR_BASE_API String & append(const String &string)
t_type getAs() const
Definition String.h:341
static NDEVR_BASE_API String toHex(uint01 value)
A fixed-size array with better performance compared to dynamic containers.
Definition Vector.hpp:60
int32_t sint04
-Defines an alias representing a 4 byte, signed integer. -Can represent exact integer values -2147483...
Definition BaseValues.hpp:62
constexpr bool IsInvalid(const t_type &value)
Query if 'value' is valid or invalid. Invalid values should return invalid if used for calculations o...
Definition BaseFunctions.hpp:177
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:94
constexpr t_to cast(const Angle< t_from > &value)
Definition Angle.h:379
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:146
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved.
Definition BaseValues.hpp:230