#include <opennurbs_string_value.h>
Public Types | |
| enum | ScaleStringFormat : unsigned char {  ScaleStringFormat::None = 0, ScaleStringFormat::RatioFormat = 1, ScaleStringFormat::EquationFormat = 2, ScaleStringFormat::FractionFormat = 3, ScaleStringFormat::Unset = 0xFF }  | 
| Specifies prefered formats for automatically created string descriptions of a scale value.  More... | |
Public Member Functions | |
| ON_ScaleValue ()=default | |
| ON_ScaleValue (const ON_ScaleValue &)=default | |
| ~ON_ScaleValue ()=default | |
| const ON_SHA1_Hash | ContentHash () const | 
| bool | IsSet () const | 
| bool | IsUnset () const | 
| const class ON_LengthValue & | LeftLengthValue () const | 
| double | LeftToRightScale () const | 
| ON_ScaleValue & | operator= (const ON_ScaleValue &)=default | 
| bool | Read (class ON_BinaryArchive &archive) | 
| const class ON_LengthValue & | RightLengthValue () const | 
| double | RightToLeftScale () const | 
| const ON_wString & | ScaleAsString () const | 
| const wchar_t * | ScaleAsStringPointer () const | 
| const ON_ParseSettings | ScaleStringParseSettings () const | 
| void | SwapLeftAndRight () | 
| bool | Write (class ON_BinaryArchive &archive) const | 
Static Public Member Functions | |
| static int | Compare (const ON_ScaleValue &lhs, const ON_ScaleValue &rhs) | 
| static ON_ScaleValue | Create (const class ON_LengthValue &left_side_length, const class ON_LengthValue &right_side_length, ON_ScaleValue::ScaleStringFormat string_format_preference) | 
| static ON_ScaleValue | CreateFromString (ON_ParseSettings parse_settings, const wchar_t *string) | 
| Create an ON_ScaleValue by parsing a string.  More... | |
| static ON_ScaleValue | CreateFromSubString (ON_ParseSettings parse_settings, const wchar_t *string, int string_count, const wchar_t **string_end) | 
| Create an ON_ScaleValue by parsing a string.  More... | |
| static ON_ScaleValue::ScaleStringFormat | ScaleStringFormatFromUnsigned (unsigned int scale_string_format_as_unsigned) | 
Static Public Attributes | |
| static const ON_ScaleValue | OneToOne | 
| static const ON_ScaleValue | Unset | 
      
  | 
  strong | 
Specifies prefered formats for automatically created string descriptions of a scale value.
| Enumerator | |
|---|---|
| None | No preference for automatically created string descriptions of a scale value.  | 
| RatioFormat | Prefer the ratio format using a colon, like "1:4" or "4:1".  | 
| EquationFormat | Prefer the equation format using an equal sign, like "1 = 4" or "4 = 1".  | 
| FractionFormat | Prefer the fraction format using a slash, like "1/4" or "4/1".  | 
| Unset | ON_ScaleValue::ScaleStringFormat::Unset is used to indicate no preference is set. This condition is different from ON_ScaleValue::ScaleStringFormat::None.  | 
      
  | 
  default | 
      
  | 
  default | 
      
  | 
  default | 
      
  | 
  static | 
| const ON_SHA1_Hash ON_ScaleValue::ContentHash | ( | ) | const | 
      
  | 
  static | 
| left_length | [in] | 
| right_length | [in] | 
If you don't like the automatically created string value, then format the string yourself and use ON_ScaleValue::CreateFromString().
      
  | 
  static | 
Create an ON_ScaleValue by parsing a string.
| parse_settings | [in] Pass ON_ParseSettings(context_length_unit_system,context_angle_unit_system,context_locale_id) | 
| string | [in] null terminated string to parse. | 
If the entire string is not parsed, that is an error condition. Use CreateFromSubString() to permit parsing a portion of the string. Examples: "1:4", "1=4", "1/4", "0.25" will set LeftToRightScale() = 4, RightToLeftScale() = 0.25
"4:1", "4=1", "4/1", "4" will set LeftToRightScale() = 0.25, RightToLeftScale() = 4
"100:1", "100=1", "1 meter = 1 centimeter" will set LeftToRightScale() = 0.01, RightToLeftScale() = 100
"1:100", "1=100", "1 centimeter = 1 meter" will set LeftToRightScale() = 100, RightToLeftScale() = 0.01
"12:1", "12=1", "12/1", "12", "1 foot = 1 inch" will set LeftToRightScale() = 0.08333..., RightToLeftScale() = 12
"1:12", "1=12", "1/12", "1 inch = 1 foot" will set LeftToRightScale() = 12, RightToLeftScale() = 0.08333...
"1:48", "1 = 48", "1/4 inch = 1 foot" will set LeftToRightScale() = 48, RightToLeftScale() = 0.0208333...
      
  | 
  static | 
Create an ON_ScaleValue by parsing a string.
| parse_settings | [in] Pass ON_ParseSettings(context_length_unit_system,context_angle_unit_system,context_locale_id) | 
| string | [in] null terminated string to parse. | 
| string_count | [in] string[] and string_count specify the string to parse. If string_count >= 0, it specifies the maximum number of elements in string[] that may be parsed. If string_count = -1, then the string must contain a character that terminates scale parsing. | 
| string_end | [out] If string_end is not nullptr, then *string_end points to the first element in the string that was not parsed. | 
If the entire string is not parsed, that is an error condition. Use CreateFromSubString() to permit parsing a portion of the string.
Examples: "1:4", "1=4", "1/4", "0.25" will set LeftToRightScale() = 4, RightToLeftScale() = 0.25
"4:1", "4=1", "4/1", "4" will set LeftToRightScale() = 0.25, RightToLeftScale() = 4
"100:1", "100=1", "1 meter = 1 centimeter" will set LeftToRightScale() = 0.01, RightToLeftScale() = 100
"1:100", "1=100", "1 centimeter = 1 meter" will set LeftToRightScale() = 100, RightToLeftScale() = 0.01
"12:1", "12=1", "12/1", "12", "1 foot = 1 inch" will set LeftToRightScale() = 0.08333..., RightToLeftScale() = 12
"1:12", "1=12", "1/12", "1 inch = 1 foot" will set LeftToRightScale() = 12, RightToLeftScale() = 0.08333...
"1:48", "1 = 48", "1/4 inch = 1 foot" will set LeftToRightScale() = 48, RightToLeftScale() = 0.0208333...
| bool ON_ScaleValue::IsSet | ( | ) | const | 
| bool ON_ScaleValue::IsUnset | ( | ) | const | 
| const class ON_LengthValue& ON_ScaleValue::LeftLengthValue | ( | ) | const | 
| double ON_ScaleValue::LeftToRightScale | ( | ) | const | 
LeftToRightScale() = 1.0/RightToLeftScale() Examples: "1:4", "1=4", "1/4", "0.25" will set LeftToRightScale() = 4, RightToLeftScale() = 0.25
"4:1", "4=1", "4/1", "4" will set LeftToRightScale() = 0.25, RightToLeftScale() = 4
"100:1", "100=1", "1 meter = 1 centimeter" will set LeftToRightScale() = 0.01, RightToLeftScale() = 100
"1:100", "1=100", "1 centimeter = 1 meter" will set LeftToRightScale() = 100, RightToLeftScale() = 0.01
"12:1", "12=1", "12/1", "12", "1 foot = 1 inch" will set LeftToRightScale() = 0.08333..., RightToLeftScale() = 12
"1:12", "1=12", "1/12", "1 inch = 1 foot" will set LeftToRightScale() = 12, RightToLeftScale() = 0.08333...
"1:48", "1 = 48", "1/4 inch = 1 foot" will set LeftToRightScale() = 48, RightToLeftScale() = 0.0208333...
      
  | 
  default | 
| bool ON_ScaleValue::Read | ( | class ON_BinaryArchive & | archive | ) | 
| const class ON_LengthValue& ON_ScaleValue::RightLengthValue | ( | ) | const | 
| double ON_ScaleValue::RightToLeftScale | ( | ) | const | 
RightToLeftScale() = 1.0/LeftToRightScale() Examples: "1:4", "1=4", "1/4", "0.25" will set LeftToRightScale() = 4, RightToLeftScale() = 0.25
"4:1", "4=1", "4/1", "4" will set LeftToRightScale() = 0.25, RightToLeftScale() = 4
"100:1", "100=1", "1 meter = 1 centimeter" will set LeftToRightScale() = 0.01, RightToLeftScale() = 100
"1:100", "1=100", "1 centimeter = 1 meter" will set LeftToRightScale() = 100, RightToLeftScale() = 0.01
"12:1", "12=1", "12/1", "12", "1 foot = 1 inch" will set LeftToRightScale() = 0.08333..., RightToLeftScale() = 12
"1:12", "1=12", "1/12", "1 inch = 1 foot" will set LeftToRightScale() = 12, RightToLeftScale() = 0.08333...
"1:48", "1 = 48", "1/4 inch = 1 foot" will set LeftToRightScale() = 48, RightToLeftScale() = 0.0208333...
| const ON_wString& ON_ScaleValue::ScaleAsString | ( | ) | const | 
If ON_ScaleValue::CreateFromString() or ON_ScaleValue::CreateFromSubString() were used to create this ON_ScaleValue, a copy of that string is returned.
| const wchar_t* ON_ScaleValue::ScaleAsStringPointer | ( | ) | const | 
      
  | 
  static | 
| const ON_ParseSettings ON_ScaleValue::ScaleStringParseSettings | ( | ) | const | 
| void ON_ScaleValue::SwapLeftAndRight | ( | ) | 
| bool ON_ScaleValue::Write | ( | class ON_BinaryArchive & | archive | ) | const | 
      
  | 
  static | 
      
  | 
  static |