BRL-CAD
Loading...
Searching...
No Matches

Module of libbu to handle units conversion between strings and mm. More...

Collaboration diagram for Units:

Files

file  units.h
 

Macros

#define BU_HN_DECIMAL   0x01
 
#define BU_HN_NOSPACE   0x02
 
#define BU_HN_B   0x04
 
#define BU_HN_DIVISOR_1000   0x08
 
#define BU_HN_IEC_PREFIXES   0x10
 
#define BU_HN_GETSCALE   0x10
 
#define BU_HN_AUTOSCALE   0x20
 

Functions

double bu_units_conversion (const char *str)
 
const charbu_units_string (const double mm)
 
struct bu_vlsbu_units_strings_vls (void)
 
const charbu_nearest_units_string (const double mm)
 
double bu_mm_value (const char *s)
 
void bu_mm_cvt (const struct bu_structparse *sdp, const char *name, void *base, const char *value, void *data)
 
int bu_humanize_number (char *buf, size_t len, int64_t quotient, const char *suffix, size_t scale, int flags)
 
int bu_dehumanize_number (const char *str, int64_t *size)
 

Detailed Description

Module of libbu to handle units conversion between strings and mm.

Macro Definition Documentation

◆ BU_HN_DECIMAL

#define BU_HN_DECIMAL   0x01

Definition at line 106 of file units.h.

◆ BU_HN_NOSPACE

#define BU_HN_NOSPACE   0x02

Definition at line 107 of file units.h.

◆ BU_HN_B

#define BU_HN_B   0x04

Definition at line 108 of file units.h.

◆ BU_HN_DIVISOR_1000

#define BU_HN_DIVISOR_1000   0x08

Definition at line 109 of file units.h.

◆ BU_HN_IEC_PREFIXES

#define BU_HN_IEC_PREFIXES   0x10

Definition at line 110 of file units.h.

◆ BU_HN_GETSCALE

#define BU_HN_GETSCALE   0x10

Definition at line 113 of file units.h.

◆ BU_HN_AUTOSCALE

#define BU_HN_AUTOSCALE   0x20

Definition at line 114 of file units.h.

Function Documentation

◆ bu_units_conversion()

double bu_units_conversion ( const char str)
extern

Convert the provided string into a units conversion factor.

Given a string for a unit of length (e.g., "feet", "yd"), volume (e.g., "cm^3", "cu yards"), or mass (e.g., "kg", "grain", or "oz") return the multiplier (aka conversion factor) that converts the unit into the default (millimeters for length, mm^3 for volume, and grams for mass.) Values may be optionally specified with the unit (e.g., "5ft") to get the conversion factor for a particular quantity.

Returns 0.0 on error and >0.0 on success

◆ bu_units_string()

const char * bu_units_string ( const double  mm)
extern

Given a conversion factor to mm, search the table to find what unit this represents.

To accommodate floating point fuzz, a "near miss" is allowed.

Returns - char* units string NULL No known unit matches this conversion factor.

◆ bu_units_strings_vls()

struct bu_vls * bu_units_strings_vls ( void  )
extern

undocumented

◆ bu_nearest_units_string()

const char * bu_nearest_units_string ( const double  mm)
extern

Given a conversion factor to mm, search the table to find the closest matching unit.

Returns - char* units string NULL Invalid conversion factor (non-positive)

◆ bu_mm_value()

double bu_mm_value ( const char s)
extern

Given a string of the form "25cm" or "5.2ft" returns the corresponding distance in mm.

Returns - -1 on error >0 on success

◆ bu_mm_cvt()

void bu_mm_cvt ( const struct bu_structparse sdp,
const char name,
void base,
const char value,
void data 
)
extern

Used primarily as a hooked function for bu_structparse tables to allow input of floating point values in other units.

◆ bu_humanize_number()

int bu_humanize_number ( char buf,
size_t  len,
int64_t  quotient,
const char suffix,
size_t  scale,
int  flags 
)
extern

Convert digital sizes to human readable form. Based off the BSD function humanize_number(3). Upon success, the humanize_number function returns the number of characters that would have been stored in buf (excluding the terminating NUL) if buf was large enough, or -1 upon failure. Even upon failure, the contents of buf may be modified. If BU_HN_GETSCALE is specified, the prefix index number will be returned instead.

◆ bu_dehumanize_number()

int bu_dehumanize_number ( const char str,
int64_t size 
)
extern