17 #if !defined(ON_STRING_INC_) 18 #define ON_STRING_INC_ 47 ON::sort_algorithm method,
51 size_t sizeof_element,
52 int (*compare)(
const void*,
const void*)
57 ON::sort_algorithm method,
61 size_t sizeof_element,
62 int(*compare)(
const void*,
const void*)
97 ON::sort_algorithm method,
101 size_t sizeof_element,
102 int (*compare)(
const void*,
const void*,
void*),
108 ON::sort_algorithm method,
112 size_t sizeof_element,
113 int(*compare)(
const void*,
const void*,
void*),
152 size_t sizeof_element,
153 int (*compare)(
const void*,
const void*)
160 size_t sizeof_element,
161 int (*compare)(
const void*,
const void*)
168 size_t sizeof_element,
169 int (*compare)(
void*,
const void*,
const void*),
177 size_t sizeof_element,
178 int (*compare)(
void*,
const void*,
const void*),
198 void ON_SortDoubleArray(
199 ON::sort_algorithm sort_algorithm,
216 void ON_SortDoubleArrayIncreasing(
232 void ON_SortDoubleArrayDecreasing(
252 void ON_SortIntArray(
253 ON::sort_algorithm sort_algorithm,
273 void ON_SortUnsignedIntArray(
274 ON::sort_algorithm sort_algorithm,
294 void ON_SortUINT64Array(
295 ON::sort_algorithm sort_algorithm,
317 void ON_SortStringArray(
318 ON::sort_algorithm sort_algorithm,
324 const int* ON_BinarySearchIntArray(
331 const unsigned int* ON_BinarySearchUnsignedIntArray(
333 const unsigned int* base,
338 const void* ON_BinarySearchArrayForUnsingedInt(
342 size_t sizeof_element,
347 const double* ON_BinarySearchDoubleArray(
389 bool SetBufferCheckSum(
403 bool SetFileCheckSum(
415 bool SetFileCheckSum(
416 const wchar_t* filename
445 bool bSkipTimeCheck =
false 459 const wchar_t* filename,
460 bool bSkipTimeCheck =
false 486 int ON_StringLengthUTF8(
501 int ON_StringLengthUTF16(
502 const ON__UINT16*
string 516 int ON_StringLengthUTF32(
517 const ON__UINT32*
string 531 int ON_StringLengthWideChar(
532 const wchar_t*
string 549 int ON_StringLengthUTF8(
551 size_t string_capacity
568 int ON_StringLengthUTF16(
569 const ON__UINT16*
string,
570 size_t string_capacity
587 int ON_StringLengthUTF32(
588 const ON__UINT32*
string,
589 size_t string_capacity
606 int ON_StringLengthWideChar(
607 const wchar_t*
string,
608 size_t string_capacity
642 int ON_StringCompareOrdinalUTF8(
647 bool bOrdinalIgnoreCase
681 int ON_StringCompareOrdinalUTF16(
682 const ON__UINT16* string1,
684 const ON__UINT16* string2,
686 bool bOrdinalIgnoreCase
719 int ON_StringCompareOrdinalUTF32(
720 const ON__UINT32* string1,
722 const ON__UINT32* string2,
724 bool bOrdinalIgnoreCase
760 int ON_StringCompareOrdinalWideChar(
761 const wchar_t* string1,
763 const wchar_t* string2,
765 bool bOrdinalIgnoreCase
782 size_t stack_buffer_capacity
788 size_t buffer_capacity
798 size_t m_heap_buffer_capacity;
807 wchar_t* stack_buffer,
808 size_t stack_buffer_capacity
814 size_t buffer_capacity
823 wchar_t* m_heap_buffer;
824 size_t m_heap_buffer_capacity;
828 ON__UINT32 ON_UnicodeMapCodePointOrdinal(
829 ON_StringMapOrdinalType map_type,
830 ON__UINT32 unicode_code_point
834 ON__UINT32 ON_UnicodeMapCodePoint(
836 ON_StringMapType map_type,
837 ON__UINT32 unicode_code_point
856 ON_StringMapOrdinalType mapping
873 const wchar_t* sWideString,
875 ON_StringMapOrdinalType mapping
905 explicit operator bool()
const {
return IsNotEmpty(); }
908 #if defined(ON_HAS_RVALUEREF) 926 ON_String(
const wchar_t* src,
int length );
929 #if defined(ON_RUNTIME_WIN) 931 bool LoadResourceString( HINSTANCE, UINT);
937 void EmergencyDestroy();
950 void EnableReferenceCounting(
bool bEnable );
956 bool IsReferenceCounted()
const;
971 unsigned int UnsignedLength()
const;
987 static unsigned int UnsignedLength(
991 bool IsEmpty()
const;
992 bool IsNotEmpty()
const;
995 char& operator[](
int);
996 char operator[](
int)
const;
997 char GetAt(
int)
const;
998 void SetAt(
int,
char);
999 void SetAt(
int,
unsigned char);
1001 operator const char*()
const;
1008 ON_String& operator=(
const unsigned char*);
1009 ON_String& operator=(
const wchar_t* src);
1015 ON_String operator+(
unsigned char)
const;
1017 ON_String operator+(
const unsigned char*)
const;
1020 void Append(
const char*,
int );
1021 void Append(
const unsigned char*,
int );
1024 const ON_String& operator+=(
unsigned char);
1025 const ON_String& operator+=(
const char*);
1026 const ON_String& operator+=(
const unsigned char*);
1028 ON_DEPRECATED_MSG(
"Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1029 int Compare(
const char* )
const;
1031 ON_DEPRECATED_MSG(
"Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1032 int Compare(
const unsigned char* )
const;
1034 ON_DEPRECATED_MSG(
"Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1035 int CompareNoCase(
const char* )
const;
1037 ON_DEPRECATED_MSG(
"Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1038 int CompareNoCase(
const unsigned char* )
const;
1047 const char* other_string,
1053 const char* string1,
1054 const char* string2,
1060 const char* string1,
1062 const char* string2,
1065 bool bOrdinalIgnoreCase
1086 const char* other_string,
1103 const char* string1,
1104 const char* string2,
1130 const char* string1,
1132 const char* string2,
1140 bool bOrdinalIgnoreCase
1144 const char* other_string,
1145 bool bOrdinalIgnoreCase
1148 static bool EqualOrdinal(
1149 const char* string1,
1150 const char* string2,
1151 bool bOrdinalIgnoreCase
1154 static bool EqualOrdinal(
1155 const char* string1,
1157 const char* string2,
1159 bool bOrdinalIgnoreCase
1185 const char* other_string,
1207 static int CompareOrdinal(
1208 const char* string1,
1209 const char* string2,
1240 static int CompareOrdinal(
1241 const char* string1,
1243 const char* string2,
1245 bool bOrdinalIgnoreCase
1263 const char* other_path
1267 const char* other_path
1287 static int ComparePath(
1292 static bool EqualPath(
1314 static int ComparePath(
1321 static bool EqualPath(
1337 int CompareAttributeName(
1338 const char* other_name
1340 bool EqualAttributeName(
1341 const char* other_name
1355 static int CompareAttributeName(
1359 static bool EqualAttributeName(
1374 bool WildCardMatch(
const char* )
const;
1375 bool WildCardMatch(
const unsigned char* )
const;
1387 bool WildCardMatchNoCase(
const char* )
const;
1388 bool WildCardMatchNoCase(
const unsigned char* )
const;
1399 int Replace(
const char* token1,
const char* token2 );
1400 int Replace(
const unsigned char* token1,
const unsigned char* token2 );
1401 int Replace(
char utf8_single_byte_c1,
char utf8_single_byte_c2);
1402 int Replace(
unsigned char utf8_single_byte_c1,
unsigned char utf8_single_byte_c2);
1431 static char MapCharacterOrdinal(
1432 ON_StringMapOrdinalType map_type,
1437 ON_StringMapOrdinalType map_type
1464 static int MapStringOrdinal(
1465 ON_StringMapOrdinalType map_type,
1468 char* mapped_string,
1469 int mapped_string_capacity
1474 ON_StringMapType map_type
1479 ON_StringMapType map_type,
1526 static int MapString(
1528 ON_StringMapType map_type,
1531 char* mapped_string,
1532 int mapped_string_capacity
1538 void MakeUpperOrdinal();
1539 void MakeLowerOrdinal();
1542 ON_StringMapOrdinalType mapping
1547 static char* Reverse(
1554 void TrimLeft(
const char* =
nullptr);
1555 void TrimRight(
const char* =
nullptr);
1556 void TrimLeftAndRight(
const char* =
nullptr);
1559 int Remove(
const char utf8_single_byte_c);
1564 char utf8_single_byte_c
1567 unsigned char utf8_single_byte_c
1570 char utf8_single_byte_c
1573 unsigned char utf8_single_byte_c
1581 const unsigned char*
1588 const unsigned char*,
1595 const unsigned char*
1630 static const ON_String ApproximateFromNumber(
1633 static const ON_String PreciseFromNumber(
1657 static const ON_String HexadecimalFromBytes(
1658 const ON__UINT8* bytes,
1660 bool bCapitalDigits,
1701 bool ON_VARGS_FUNC_CDECL Format(
1706 bool ON_VARGS_FUNC_CDECL Format(
1707 const unsigned char* format,
1711 static const ON_wString ON_VARGS_FUNC_CDECL FormatToString(
1722 const unsigned char* format,
1766 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
1768 size_t buffer_capacity,
1773 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
1779 static int FormatVargsIntoBuffer(
1781 size_t buffer_capacity,
1786 static int FormatVargsIntoBuffer(
1799 static int FormatVargsOutputCount(
1814 int ON_VARGS_FUNC_CDECL Scan(
1819 int ON_VARGS_FUNC_CDECL Scan(
1820 const unsigned char* format,
1824 static int ON_VARGS_FUNC_CDECL ScanBuffer(
1830 static int ON_VARGS_FUNC_CDECL ScanBuffer(
1831 const unsigned char* buffer,
1832 const unsigned char* format,
1836 static int ScanBufferVargs(
1842 static int ScanBufferVargs(
1843 const unsigned char* buffer,
1844 const unsigned char* format,
1859 static const char* ToNumber(
1861 char value_on_failure,
1864 static const char* ToNumber(
1866 unsigned char value_on_failure,
1867 unsigned char* value
1869 static const char* ToNumber(
1871 short value_on_failure,
1874 static const char* ToNumber(
1876 unsigned short value_on_failure,
1877 unsigned short* value
1879 static const char* ToNumber(
1881 int value_on_failure,
1884 static const char* ToNumber(
1886 unsigned int value_on_failure,
1889 static const char* ToNumber(
1891 ON__INT64 value_on_failure,
1894 static const char* ToNumber(
1896 ON__UINT64 value_on_failure,
1899 static const char* ToNumber(
1901 double value_on_failure,
1907 char* ReserveArray(
size_t);
1910 char* SetLength(
size_t);
1912 const char* Array()
const;
1919 unsigned int SizeOf()
const;
1921 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
1926 static void SplitPath(
1943 struct ON_aStringHeader* Header()
const;
1944 char* CreateArray(
int);
1947 void CopyToArray(
int,
const char* );
1948 void CopyToArray(
int,
const unsigned char* );
1949 void CopyToArray(
int,
const wchar_t* );
1951 void AppendToArray(
int,
const char* );
1952 void AppendToArray(
int,
const unsigned char* );
2002 bool operator==(
const ON_String& lhs,
const char* rhs );
2009 bool operator!=(
const ON_String& lhs,
const char* rhs);
2016 bool operator<(
const ON_String& lhs,
const char* rhs);
2023 bool operator>(
const ON_String& lhs,
const char* rhs);
2030 bool operator<=(
const ON_String& lhs,
const char* rhs);
2037 bool operator>=(
const ON_String& lhs,
const char* rhs);
2044 bool operator==(
const char* lhs,
const ON_String& rhs );
2051 bool operator!=(
const char* lhs,
const ON_String& rhs);
2058 bool operator<(
const char* lhs,
const ON_String& rhs);
2065 bool operator>(
const char* lhs,
const ON_String& rhs);
2072 bool operator<=(
const char* lhs,
const ON_String& rhs);
2079 bool operator>=(
const char* lhs,
const ON_String& rhs);
2109 #if defined(ON_SIZEOF_WCHAR_T) && ON_SIZEOF_WCHAR_T >= 2 2113 static const wchar_t RadiusSymbol;
2114 static const wchar_t DegreeSymbol;
2115 static const wchar_t PlusMinusSymbol;
2116 static const wchar_t DiameterSymbol;
2117 static const wchar_t RecyclingSymbol;
2118 static const wchar_t ReplacementCharacter;
2119 static const wchar_t NextLine;
2120 static const wchar_t LineSeparator;
2121 static const wchar_t ParagraphSeparator;
2122 static const wchar_t NoBreakSpace;
2123 static const wchar_t NarrowNoBreakSpace;
2124 static const wchar_t ZeroWidthSpace;
2130 explicit operator bool()
const {
return IsNotEmpty(); }
2137 #if defined(ON_HAS_RVALUEREF) 2159 #if defined(ON_RUNTIME_WIN) 2161 bool LoadResourceString(HINSTANCE, UINT);
2167 void EmergencyDestroy();
2180 void EnableReferenceCounting(
bool bEnable );
2186 bool IsReferenceCounted()
const;
2200 unsigned int UnsignedLength()
const;
2208 const wchar_t*
string 2216 static unsigned int UnsignedLength(
2217 const wchar_t*
string 2220 bool IsEmpty()
const;
2221 bool IsNotEmpty()
const;
2224 wchar_t& operator[](
int);
2225 wchar_t operator[](
int)
const;
2226 wchar_t GetAt(
int)
const;
2227 void SetAt(
int,
char);
2228 void SetAt(
int,
unsigned char);
2229 void SetAt(
int,
wchar_t);
2231 operator const wchar_t*()
const;
2237 const ON_wString& operator=(
const char* src);
2239 const ON_wString& operator=(
const unsigned char* src);
2244 void Append(
const char* sUTF8,
int );
2245 void Append(
const unsigned char* sUTF8,
int );
2246 void Append(
const wchar_t*,
int );
2252 const ON_wString& operator+=(
const char* sUTF8);
2253 const ON_wString& operator+=(
const unsigned char* sUTF8);
2254 const ON_wString& operator+=(
const wchar_t*);
2262 ON_wString operator+(
const char* sUTF8)
const;
2263 ON_wString operator+(
const unsigned char* sUTF8)
const;
2268 int Compare(
const wchar_t* )
const;
2272 int CompareNoCase(
const wchar_t* )
const;
2281 const wchar_t* other_string,
2287 const wchar_t* string1,
2288 const wchar_t* string2,
2314 const wchar_t* string1,
2316 const wchar_t* string2,
2340 const wchar_t* other_string,
2357 const wchar_t* string1,
2358 const wchar_t* string2,
2384 const wchar_t* string1,
2386 const wchar_t* string2,
2394 bool bOrdinalIgnoreCase
2398 const wchar_t* other_string,
2399 bool bOrdinalIgnoreCase
2402 static bool EqualOrdinal(
2403 const wchar_t* string1,
2404 const wchar_t* string2,
2405 bool bOrdinalIgnoreCase
2408 static bool EqualOrdinal(
2409 const wchar_t* string1,
2411 const wchar_t* string2,
2413 bool bOrdinalIgnoreCase
2436 bool bOrdinalIgnoreCase
2440 const wchar_t* other_string,
2441 bool bOrdinalIgnoreCase
2463 static int CompareOrdinal(
2464 const wchar_t* string1,
2465 const wchar_t* string2,
2466 bool bOrdinalIgnoreCase
2492 static int CompareOrdinal(
2493 const wchar_t* string1,
2495 const wchar_t* string2,
2497 bool bOrdinalIgnoreCase
2516 const wchar_t* other_path
2519 const wchar_t* other_path
2539 static int ComparePath(
2540 const wchar_t* path1,
2541 const wchar_t* path2
2543 static bool EqualPath(
2544 const wchar_t* path1,
2545 const wchar_t* path2
2565 static int ComparePath(
2566 const wchar_t* path1,
2568 const wchar_t* path2,
2571 static bool EqualPath(
2572 const wchar_t* path1,
2574 const wchar_t* path2,
2587 int CompareAttributeName(
2588 const wchar_t* other_name
2590 bool EqualAttributeName(
2591 const wchar_t* other_name
2605 static int CompareAttributeName(
2606 const wchar_t* name1,
2607 const wchar_t* name2
2609 static bool EqualAttributeName(
2610 const wchar_t* name1,
2611 const wchar_t* name2
2625 bool WildCardMatch(
const wchar_t* )
const;
2637 bool WildCardMatchNoCase(
const wchar_t* )
const;
2648 int Replace(
const wchar_t* token1,
const wchar_t* token2 );
2649 int Replace(
wchar_t token1,
wchar_t token2 );
2682 int ReplaceWhiteSpace(
wchar_t token,
const wchar_t* whitespace = 0 );
2696 int RemoveWhiteSpace(
const wchar_t* whitespace = 0 );
2710 const wchar_t* prefix,
2727 const wchar_t* suffix,
2768 static wchar_t MapCharacterOrdinal(
2769 ON_StringMapOrdinalType map_type,
2774 ON_StringMapOrdinalType map_type
2798 static int MapStringOrdinal(
2799 ON_StringMapOrdinalType map_type,
2800 const wchar_t*
string,
2802 wchar_t* mapped_string,
2803 int mapped_string_capacity
2808 ON_StringMapType map_type
2813 ON_StringMapType map_type,
2814 const wchar_t*
string,
2859 static int MapString(
2861 ON_StringMapType map_type,
2862 const wchar_t*
string,
2864 wchar_t* mapped_string,
2865 int mapped_string_capacity
2873 ON_StringMapOrdinalType mapping
2883 static wchar_t* Reverse(
2888 void MakeUpperOrdinal();
2889 void MakeLowerOrdinal();
2900 void TrimLeft(
const wchar_t* s =
nullptr);
2910 void TrimRight(
const wchar_t* s =
nullptr);
2912 void TrimLeftAndRight(
const wchar_t* s =
nullptr);
2928 char utf8_single_byte_c
2931 unsigned char utf8_single_byte_c
2959 char utf8_single_byte_c
2962 unsigned char utf8_single_byte_c
2971 const unsigned char* sUTF8
2974 const wchar_t* wcharString
2977 char utf8_single_byte_c,
2981 unsigned char utf8_single_byte_c,
2997 const unsigned char* sUTF8,
3001 const wchar_t* wcharString,
3005 const wchar_t* wcharString,
3009 const wchar_t* character_set
3031 char utf8_single_byte_c
3034 unsigned char utf8_single_byte_c
3044 const wchar_t* wideString
3080 static const ON_wString ApproximateFromNumber(
3108 static const ON_wString FromUnicodeCodePoints(
3109 const ON__UINT32* code_points,
3110 int code_point_count,
3111 ON__UINT32 error_code_point
3133 static const ON_wString HexadecimalFromBytes(
3134 const ON__UINT8* bytes,
3136 bool bCapitalDigits,
3178 bool ON_VARGS_FUNC_CDECL Format(
3179 const wchar_t* format,
3183 static const ON_wString ON_VARGS_FUNC_CDECL FormatToString(
3184 const wchar_t* format,
3189 const wchar_t* format,
3234 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
3236 size_t buffer_capacity,
3237 const wchar_t* format,
3241 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
3243 const wchar_t* format,
3247 static int FormatVargsIntoBuffer(
3249 const wchar_t* format,
3253 static int FormatVargsIntoBuffer(
3255 size_t buffer_capacity,
3256 const wchar_t* format,
3267 static int FormatVargsOutputCount(
3268 const wchar_t* format,
3282 int ON_VARGS_FUNC_CDECL Scan(
3283 const wchar_t* format,
3287 static int ON_VARGS_FUNC_CDECL ScanBuffer(
3288 const wchar_t* buffer,
3289 const wchar_t* format,
3293 static int ScanBufferVargs(
3294 const wchar_t* buffer,
3295 const wchar_t* format,
3306 static const wchar_t* ToNumber(
3307 const wchar_t* buffer,
3308 char value_on_failure,
3311 static const wchar_t* ToNumber(
3312 const wchar_t* buffer,
3313 unsigned char value_on_failure,
3314 unsigned char* value
3316 static const wchar_t* ToNumber(
3317 const wchar_t* buffer,
3318 short value_on_failure,
3321 static const wchar_t* ToNumber(
3322 const wchar_t* buffer,
3323 unsigned short value_on_failure,
3324 unsigned short* value
3326 static const wchar_t* ToNumber(
3327 const wchar_t* buffer,
3328 int value_on_failure,
3331 static const wchar_t* ToNumber(
3332 const wchar_t* buffer,
3333 unsigned int value_on_failure,
3336 static const wchar_t* ToNumber(
3337 const wchar_t* buffer,
3338 ON__INT64 value_on_failure,
3341 static const wchar_t* ToNumber(
3342 const wchar_t* buffer,
3343 ON__UINT64 value_on_failure,
3346 static const wchar_t* ToNumber(
3347 const wchar_t* buffer,
3348 double value_on_failure,
3354 wchar_t* ReserveArray(
size_t);
3357 wchar_t* SetLength(
size_t);
3359 const wchar_t* Array()
const;
3366 unsigned int SizeOf()
const;
3372 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
3379 ON__UINT32 DataCRCLower(ON__UINT32 current_remainder)
const;
3384 static void SplitPath(
3392 static void SplitPath(
3393 const wchar_t* path,
3409 struct ON_wStringHeader* Header()
const;
3410 wchar_t* CreateArray(
int);
3413 void CopyToArray(
int,
const char* );
3414 void CopyToArray(
int,
const unsigned char* );
3415 void CopyToArray(
int,
const wchar_t* );
3417 void AppendToArray(
int,
const char* );
3418 void AppendToArray(
int,
const unsigned char* );
3419 void AppendToArray(
int,
const wchar_t* );
3469 bool operator==(
const ON_wString& lhs,
const wchar_t* rhs );
3476 bool operator!=(
const ON_wString& lhs,
const wchar_t* rhs);
3483 bool operator<(
const ON_wString& lhs,
const wchar_t* rhs);
3490 bool operator>(
const ON_wString& lhs,
const wchar_t* rhs);
3497 bool operator<=(
const ON_wString& lhs,
const wchar_t* rhs);
3504 bool operator>=(
const ON_wString& lhs,
const wchar_t* rhs);
3511 bool operator==(
const wchar_t* lhs,
const ON_wString& rhs );
3518 bool operator!=(
const wchar_t* lhs,
const ON_wString& rhs);
3525 bool operator<(
const wchar_t* lhs,
const ON_wString& rhs);
3532 bool operator>(
const wchar_t* lhs,
const ON_wString& rhs);
3539 bool operator<=(
const wchar_t* lhs,
const ON_wString& rhs);
3546 bool operator>=(
const wchar_t* lhs,
const ON_wString& rhs);
3584 bool IsValidAndNotEmpty()
const;
3590 bool IsEmptyNameHash()
const;
3596 bool IsInvalidNameHash()
const;
3602 bool IsFilePathHash()
const;
3608 bool IgnoreCase()
const;
3629 const char* utf8_name
3633 const char* utf8_name
3655 const char* utf8_name
3660 const char* utf8_name
3668 const wchar_t* name,
3673 const wchar_t* name,
3681 const char* utf8_name,
3686 const char* utf8_name,
3696 const wchar_t* name,
3702 const wchar_t* name,
3712 const char* utf8_name,
3718 const char* utf8_name,
3735 const wchar_t* file_path
3739 const char* file_path
3742 static int CompareNameSHA1(
3747 static int CompareNameSHA1Ptr(
3752 static int CompareParentId(
3757 static int CompareParentIdPtr(
3775 static int ComparePtr(
3782 ON__UINT32 MappedNameCodePointCount()
const;
3788 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
3791 ON__UINT32 IdCRC(ON__UINT32 current_remainder)
const;
3794 ON__UINT32 NameCRC(ON__UINT32 current_remainder)
const;
3802 flags_length_mask = 0x0FFFFFFF,
3803 flags_case_sensitive = 0x80000000,
3804 flags_file_path = 0xFFFFFFFF
3810 ON__UINT32 m_flags = 0;
3819 ON_UUID m_parent_id = ON_nil_uuid;
3837 ON__UINT32 Internal_DotNetInterfaceGetFlags()
const;
3906 ON::LengthUnitSystem length_unit_system
3910 ON::LengthUnitSystem length_unit_system
3924 const wchar_t* custom_unit_name,
3925 double meters_per_custom_unit
3986 bool IsValid()
const;
4003 bool IsCustomUnitSystem()
const;
4006 ON::LengthUnitSystem us
4022 void SetCustomUnitSystem(
4023 const wchar_t* custom_unit_name,
4024 double meters_per_custom_unit
4034 void SetCustomUnitSystemName(
4035 const wchar_t* custom_unit_name
4045 void SetCustomUnitSystemScale(
4046 double meters_per_custom_unit
4049 double MetersPerUnit()
const;
4050 ON::LengthUnitSystem UnitSystem()
const;
4055 ON::LengthUnitSystem m_unit_system = ON::LengthUnitSystem::Meters;
4056 unsigned int m_reserved = 0;
4059 double m_meters_per_unit = 1.0;
static const ON_UnitSystem Mils
Definition: opennurbs_string.h:3950
static const ON_UnitSystem Nanometers
Definition: opennurbs_string.h:3933
char * m_buffer
Definition: opennurbs_string.h:791
static const ON_UnitSystem Yards
Definition: opennurbs_string.h:3958
static const char Pipe
Unicode VERTICAL LINE U+007C.
Definition: opennurbs_string.h:900
ON_UUID is a 16 byte universally unique identifier.
Definition: opennurbs_uuid.h:32
static const char Backslash
Unicode REVERSE SOLIDUS U+005C.
Definition: opennurbs_string.h:899
size_t m_buffer_capacity
Definition: opennurbs_string.h:792
static const wchar_t Slash
Unicode SOLIDUS U+002F.
Definition: opennurbs_string.h:2105
static const char Tab
Unicode CHARACTER TABULATION control U+0009.
Definition: opennurbs_string.h:891
static const char Escape
Unicode CARRIAGE RETURN control U+001B.
Definition: opennurbs_string.h:896
static const ON_UnitSystem Dekameters
Definition: opennurbs_string.h:3944
static const ON_NameHash UnsetNameHash
Definition: opennurbs_string.h:3578
static const ON_UnitSystem PrinterPicas
Definition: opennurbs_string.h:3961
Definition: opennurbs_sha1.h:19
static const ON_CheckSum UnsetCheckSum
Definition: opennurbs_string.h:363
static const wchar_t Pipe
Unicode VERTICAL LINE U+007C.
Definition: opennurbs_string.h:2107
Definition: opennurbs_string.h:2089
static const ON_UnitSystem Feet
unit system = ON::LengthUnitSystem::Feet and meters/unit = 0.3048 exactly
Definition: opennurbs_string.h:3956
size_t m_buffer_capacity
Definition: opennurbs_string.h:818
Definition: opennurbs_string.h:775
static const wchar_t Escape
Unicode CARRIAGE RETURN control U+001B.
Definition: opennurbs_string.h:2103
static const wchar_t Backslash
Unicode REVERSE SOLIDUS U+005C.
Definition: opennurbs_string.h:2106
static const wchar_t VerticalTab
Unicode LINE TABULATION control U+000B.
Definition: opennurbs_string.h:2100
static const ON_UnitSystem Angstroms
Definition: opennurbs_string.h:3932
static const ON_UnitSystem Megameters
Definition: opennurbs_string.h:3947
time_t m_time
last modified time in seconds since Jan 1, 1970, UCT
Definition: opennurbs_string.h:470
static const ON_String EmptyString
Definition: opennurbs_string.h:888
static const ON_UnitSystem PrinterPoints
Definition: opennurbs_string.h:3960
static const char VerticalTab
Unicode LINE TABULATION control U+000B.
Definition: opennurbs_string.h:893
static const char FormFeed
Unicode FORM FEED control U+000C.
Definition: opennurbs_string.h:894
Definition: opennurbs_string.h:878
static const char Backspace
Unicode BACKSPACE control U+0008.
Definition: opennurbs_string.h:890
static const ON_UnitSystem Gigameters
Definition: opennurbs_string.h:3948
static const ON_UnitSystem NauticalMiles
Definition: opennurbs_string.h:3962
static const ON_UnitSystem Hectometers
Definition: opennurbs_string.h:3945
static const char CarriageReturn
Unicode CHARACTER TABULATION control U+000D.
Definition: opennurbs_string.h:895
static const char Space
Unicode SPACE U+0020.
Definition: opennurbs_string.h:897
static const ON_UnitSystem Decimeters
Definition: opennurbs_string.h:3940
char * m_s
Implementation.
Definition: opennurbs_string.h:1939
static const wchar_t FormFeed
Unicode FORM FEED control U+000C.
Definition: opennurbs_string.h:2101
static const ON_UnitSystem Millimeters
unit system = ON::LengthUnitSystem::Millimeters and meters/unit = 0.001 exactly
Definition: opennurbs_string.h:3937
static const wchar_t CarriageReturn
Unicode CARRIAGE RETURN control U+000D.
Definition: opennurbs_string.h:2102
static const ON_UnitSystem Parsecs
Definition: opennurbs_string.h:3965
static const ON_UnitSystem None
unit system = ON::LengthUnitSystem::None. Scale to or from any valid unit = 1
Definition: opennurbs_string.h:3930
static const ON_UnitSystem Miles
Definition: opennurbs_string.h:3959
static const wchar_t Backspace
Unicode BACKSPACE control U+0008.
Definition: opennurbs_string.h:2097
static const wchar_t LineFeed
Unicode LINE FEED control U+000A.
Definition: opennurbs_string.h:2099
wchar_t * m_buffer
Definition: opennurbs_string.h:817
static const char Slash
Unicode SOLIDUS U+002F.
Definition: opennurbs_string.h:898
Definition: opennurbs_string.h:801
wchar_t * m_s
Implementation.
Definition: opennurbs_string.h:3405
static const ON_UnitSystem Unset
unit system = ON::LengthUnitSystem::Unset and meters/unit = ON_DBL_QNAN
Definition: opennurbs_string.h:3968
Definition: opennurbs_string.h:3566
static const wchar_t Tab
Unicode CHARACTER TABULATION control U+0009.
Definition: opennurbs_string.h:2098
static const char LineFeed
Unicode LINE FEED control U+000A.
Definition: opennurbs_string.h:892
static const ON_UnitSystem Microns
Definition: opennurbs_string.h:3934
static const ON_UnitSystem Kilometers
Definition: opennurbs_string.h:3946
static const wchar_t Space
Unicode SPACE U+0020.
Definition: opennurbs_string.h:2104
Definition: opennurbs_string.h:3894
Definition: opennurbs_textlog.h:20
static const ON_UnitSystem Centimeters
Definition: opennurbs_string.h:3939
< use for generic serialization of binary data
Definition: opennurbs_archive.h:1866
static const ON_wString EmptyString
Definition: opennurbs_string.h:2095
static const ON_UnitSystem Microinches
Definition: opennurbs_string.h:3949
static const ON_NameHash EmptyNameHash
Definition: opennurbs_string.h:3577
Definition: opennurbs_string.h:357
static const ON_UnitSystem LightYears
Definition: opennurbs_string.h:3964
Definition: opennurbs_locale.h:32
static const ON_UnitSystem Meters
unit system = ON::LengthUnitSystem::Meters and meters/unit = 1
Definition: opennurbs_string.h:3943
static const ON_UnitSystem Inches
unit system = ON::LengthUnitSystem::Inches and meters/unit = 0.0254 exactly
Definition: opennurbs_string.h:3953
static const ON_SHA1_Hash ZeroDigest
all digest bytes are zero
Definition: opennurbs_sha1.h:22
size_t m_size
bytes in the file.
Definition: opennurbs_string.h:469
Definition: opennurbs_file_utilities.h:1187
static const ON_UnitSystem AstronomicalUnits
Definition: opennurbs_string.h:3963