60 template <u
int01 t_index>
66 template <u
int01 t_index>
72 template <u
int01 t_index>
79 return m_use_active_value_set;
83 m_use_active_value_set = use_active_value_set;
87 return m_active_value_set;
90 template<u
int04 t_value,
class t_type>
93 if (m_use_active_value_set)
94 m_active_value_set.insert(t_value);
96 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
97 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
98 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
99 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
100 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
101 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
102 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
103 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
104 ,
"Unknown Value Type");
107 value_0[t_value] =
String(value);
108 else if (t_value == 5)
110 else if (t_value >= 6 && t_value < 10)
111 value_6[t_value - 6] =
String(value);
113 else if (t_value >= 10 && t_value < 60)
116 else if (t_value >= 60 && t_value < 80)
119 else if (t_value >= 90 && t_value < 100)
122 else if (t_value == 100)
123 value_100 =
String(value);
125 else if (t_value == 102)
126 value_102 =
String(value);
128 else if (t_value == 105)
129 value_105 =
String(value);
131 else if (t_value >= 110 && t_value < 150)
133 else if (t_value >= 160 && t_value < 170)
136 else if (t_value >= 170 && t_value < 180)
139 else if (t_value == 210)
141 else if (t_value == 220)
143 else if (t_value == 230)
146 else if (t_value >= 280 && t_value < 290)
148 else if (t_value >= 290 && t_value < 300)
151 else if (t_value >= 300 && t_value < 310)
152 value_300[t_value - 300] =
String(value);
154 else if (t_value >= 310 && t_value < 320)
155 value_310[t_value - 310] =
String(value);
157 else if (t_value >= 320 && t_value < 330)
158 value_320[t_value - 320] =
String(value);
160 else if (t_value >= 330 && t_value < 370)
162 else if (t_value >= 370 && t_value < 380)
164 else if (t_value >= 420 && t_value < 430)
167 else if (t_value == 999)
168 value_999 =
String(value);
170 else if (t_value >= 1000 && t_value < 1010)
171 value_1000[t_value - 1000] =
String(value);
173 else if (t_value >= 1010 && t_value < 1060)
176 else if (t_value >= 1060 && t_value < 1070)
179 else if (t_value == 1071)
185 template<u
int04 t_value,
class t_type>
188 if (m_use_active_value_set)
189 m_active_value_set.insert(t_value);
191 (t_value < 10) || (t_value == 100) || (t_value == 102)
192 || (t_value == 105) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
193 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value == 999)
194 || (t_value >= 1000 && t_value < 1010)
195 ,
"Unknown Value Type");
198 value_0[t_value] +=
String(value);
199 else if (t_value >= 6 && t_value < 10)
200 value_6[t_value - 6] +=
String(value);
201 else if (t_value == 100)
202 value_100 +=
String(value);
204 else if (t_value == 102)
205 value_102 +=
String(value);
207 else if (t_value == 105)
208 value_105 +=
String(value);
209 else if (t_value >= 300 && t_value < 310)
210 value_300[t_value - 300] +=
String(value);
212 else if (t_value >= 310 && t_value < 320)
213 value_310[t_value - 310] +=
String(value);
215 else if (t_value >= 320 && t_value < 330)
216 value_320[t_value - 320] +=
String(value);
218 else if (t_value == 999)
219 value_999 +=
String(value);
221 else if (t_value >= 1000 && t_value < 1010)
222 value_1000[t_value - 1000] +=
String(value);
231 template<u
int04 t_value,
class t_type>
232 [[nodiscard]] t_type
getValue(
const t_type& default_value)
const
235 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
236 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
237 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
238 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
239 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
240 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
241 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
242 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
243 ,
"Unknown Value Type");
245 return default_value;
247#pragma warning (disable: 4800)
248#pragma warning (disable: 26454)
252 return value_0[t_value].
getAs<t_type>();
255 if (t_value >= 6 && t_value < 10)
256 return value_6[t_value - 6].
getAs<t_type>();
258 if (t_value >= 10 && t_value < 60)
261 if (t_value >= 60 && t_value < 80)
264 if (t_value >= 90 && t_value < 100)
268 return value_100.
getAs<t_type>();
271 return value_102.
getAs<t_type>();
274 return value_105.
getAs<t_type>();
276 if (t_value >= 110 && t_value < 150)
278 if (t_value >= 160 && t_value < 170)
281 if (t_value >= 170 && t_value < 180)
291 if (t_value >= 280 && t_value < 290)
293 if (t_value >= 290 && t_value < 300)
296 if (t_value >= 300 && t_value < 310)
297 return value_300[t_value - 300].
getAs<t_type>();
299 if (t_value >= 310 && t_value < 320)
300 return value_310[t_value - 310].
getAs<t_type>();
302 if (t_value >= 320 && t_value < 330)
303 return value_320[t_value - 320].
getAs<t_type>();
306 if (t_value >= 330 && t_value < 370)
308 if (t_value >= 370 && t_value < 380)
310 if (t_value >= 420 && t_value < 430)
314 return value_999.
getAs<t_type>();
316 if (t_value >= 1000 && t_value < 1010)
317 return value_1000[t_value - 1000].
getAs<t_type>();
319 if (t_value >= 1010 && t_value < 1060)
322 if (t_value >= 1060 && t_value < 1070)
328 return default_value;
330#pragma warning (default: 4800)
331#pragma warning (default: 26454)
339 template <u
int04 t_value>
343 (t_value < 10) || (t_value >= 10 && t_value < 60) || (t_value >= 60 && t_value < 80)
344 || (t_value >= 90 && t_value < 100) || (t_value == 100) || (t_value == 102)
345 || (t_value == 105) || (t_value >= 110 && t_value < 150) || (t_value >= 160 && t_value < 170)
346 || (t_value >= 170 && t_value < 176) || (t_value == 210) || (t_value == 220) || (t_value == 230)
347 || (t_value >= 280 && t_value < 290) || (t_value >= 300 && t_value < 310) || (t_value >= 310 && t_value < 320)
348 || (t_value >= 320 && t_value < 330) || (t_value >= 330 && t_value < 370) || (t_value >= 370 && t_value < 380)
349 || (t_value == 420) || (t_value == 999) || (t_value >= 1000 && t_value < 1010)
350 || (t_value >= 1010 && t_value < 1060) || (t_value >= 1060 && t_value < 1070) || (t_value == 1071)
351 ,
"Unknown Value Type");
354 return value_0[t_value].
size() != 0;
357 if (t_value >= 6 && t_value < 10)
358 return value_6[t_value - 6].
size() != 0;
360 if (t_value >= 10 && t_value < 60)
363 if (t_value >= 60 && t_value < 80)
366 if (t_value >= 90 && t_value < 100)
370 return value_100.
size() != 0;
373 return value_102.
size() != 0;
376 return value_105.
size() != 0;
378 if (t_value >= 110 && t_value < 150)
380 if (t_value >= 160 && t_value < 170)
383 if (t_value >= 170 && t_value < 180)
393 if (t_value >= 280 && t_value < 290)
395 if (t_value >= 290 && t_value < 300)
398 if (t_value >= 300 && t_value < 310)
399 return value_300[t_value - 300].
size() != 0;
401 if (t_value >= 310 && t_value < 320)
402 return value_310[t_value - 310].
size() != 0;
404 if (t_value >= 320 && t_value < 330)
405 return value_320[t_value - 320].
size() != 0;
407 if (t_value >= 330 && t_value < 370)
409 if (t_value >= 370 && t_value < 380)
415 return value_999.
size() != 0;
417 if (t_value >= 1000 && t_value < 1010)
418 return value_1000[t_value - 1000].
size() != 0;
420 if (t_value >= 1010 && t_value < 1060)
423 if (t_value >= 1060 && t_value < 1070)
433 template <u
int01 t_index, u
int01 t_dims,
class t_type>
436 static_assert(t_index < 10,
"Bad Vector Index");
465 template <
class t_type>
469 return default_value;
472 return value_0[value].
getAs<t_type>();
475 if (value >= 6 && value < 10)
476 return value_6[value - 6].
getAs<t_type>();
478 if (value >= 10 && value < 60)
481 if (value >= 60 && value < 80)
484 if (value >= 90 && value < 100)
488 return value_100.
getAs<t_type>();
491 return value_102.
getAs<t_type>();
494 return value_105.
getAs<t_type>();
496 if (value >= 110 && value < 150)
498 if (value >= 160 && value < 170)
501 if (value >= 170 && value < 180)
510 if (value >= 280 && value < 290)
512 if (value >= 290 && value < 300)
515 if (value >= 300 && value < 310)
516 return value_300[value - 300].
getAs<t_type>();
518 if (value >= 310 && value < 320)
519 return value_310[value - 310].
getAs<t_type>();
521 if (value >= 320 && value < 330)
522 return value_320[value - 320].
getAs<t_type>();
524 if (value >= 330 && value < 370)
526 if (value >= 370 && value < 390)
528 if (value >= 390 && value < 400)
529 return value_390[value - 390].
getAs<t_type>();
530 if (value >= 420 && value < 430)
534 return value_999.
getAs<t_type>();
536 if (value >= 1000 && value < 1010)
537 return value_1000[value - 1000].
getAs<t_type>();
539 if (value >= 1010 && value < 1060)
542 if (value >= 1060 && value < 1070)
548 return default_value;
558 else if(value >= 6 && value < 10)
559 s.
append(value_6[value - 6]);
561 else if (value >= 10 && value < 60)
564 else if (value >= 60 && value < 80)
567 else if (value >= 90 && value < 100)
570 else if (value == 100)
573 else if (value == 102)
576 else if (value == 105)
579 else if (value >= 110 && value < 150)
581 else if (value >= 160 && value < 170)
584 else if (value >= 170 && value < 180)
586 else if (value == 210)
588 else if (value == 220)
590 else if (value == 230)
593 else if (value >= 280 && value < 290)
595 else if (value >= 290 && value < 300)
598 else if (value >= 300 && value < 310)
599 s.
append(value_300[value - 300]);
601 else if (value >= 310 && value < 320)
602 s.
append(value_310[value - 310]);
604 else if (value >= 320 && value < 330)
605 s.
append(value_320[value - 320]);
607 else if (value >= 330 && value < 370)
609 else if (value >= 370 && value < 390)
611 else if (value >= 390 && value < 400)
612 s.
addAll(value_390[value - 390]);
613 else if (value >= 420 && value < 430)
616 else if (value == 999)
619 else if (value >= 1000 && value < 1010)
620 s.
append(value_1000[value - 1000]);
622 else if (value >= 1010 && value < 1060)
625 else if (value >= 1060 && value < 1070)
628 else if (value == 1071)
701 bool m_use_active_value_set =
false;
#define lib_assert(expression, message)
Definition LibAssert.h:61
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:823
void addAll(const Buffer< t_type, t_other_index_type, t_other_memory_allocator, t_other_memory_manager > &buffer)
Definition Buffer.hpp:243
DXF streams store data in a large numbered index structure. This class optimally stores this data so ...
Definition DXFValueManager.h:46
bool usingActiveValueSet() const
Definition DXFValueManager.h:77
const Set< uint04 > & getValuesSet() const
Definition DXFValueManager.h:85
bool appendValue(const t_type &value)
Definition DXFValueManager.h:186
Vector< 2, fltp08 > getVector2(const fltp08 &bad_value) const
Definition DXFValueManager.h:67
bool hasValue(uint04 value) const
Vector< 1, fltp08 > getVector1(const fltp08 &bad_value) const
Definition DXFValueManager.h:61
bool setValue(const t_type &value)
Definition DXFValueManager.h:91
t_type getValue(uint04 value, const t_type &default_value) const
Definition DXFValueManager.h:466
void setUseActiveValueSet(bool use_active_value_set)
Definition DXFValueManager.h:81
bool hasValue() const
Definition DXFValueManager.h:340
bool appendValue(uint04 location, const String &value)
Vector< 3, fltp08 > getVector3(const fltp08 &bad_value) const
Definition DXFValueManager.h:73
bool setValue(uint04 location, BinaryFile &file)
t_type getValue(const t_type &default_value) const
Definition DXFValueManager.h:232
void appendValue(String &s, uint04 value) const
Definition DXFValueManager.h:551
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:434
DXFValueManager()
Definition DXFValueManager.h:48
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 or i...
Definition Model.h:51
The core String class for the NDEVR API.
Definition String.h:69
t_type getAs() const
Converts a string into an object. To use this function an object must have overwritten StringStream<t...
Definition String.h:143
static String ToHex(uint01 value)
Converts the memory of the given object into a hexidecimal string.
String & append(const String &string)
Appends a string to the back of this string.
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:64
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:170
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96
constexpr t_to cast(const Angle< t_from > &value)
Definition Angle.h:375
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Definition BaseValues.hpp:233