Logo Search packages:      
Sourcecode: libqalculate version File versions  Download package

AliasUnit Class Reference

#include <Unit.h>

Inheritance diagram for AliasUnit:

Unit ExpressionItem AliasUnit_Composite

List of all members.


Detailed Description

An unit with relation to another unit.

Alias units is defined in relation to another unit. For example, hour are defined as an alias unit that equals 60 minutes which in turn is defined in relation to seconds.

Alias units have an associated base unit, exponent and relation expression. For more complex relations an inverse relation can also be specified for conversion back from the base unit. The base unit must not necessarily be of the base unit class and it is recommended that an alias unit is defined in relation to the closest unit (ex. 1ft = 3 hands, 1 hand = 4 in, and 1 in = 0.0254 m).

The relation is usually just a number that tells how large quantity of the base unit is needed to get the alias unit (alias unit = base unit * relation). More complex units can specify the relation as a full-blown expression where '' is replaced by the quantity of the base unit and '' is the exponent. For example, Degrees Celsius has the relation "\x + 273.15" and the inverse relation "\x - 273.15" to the base unit Kelvin. For simple relations, the reversion is automatic and ought not be defined separately.

The precision property inherited from ExpressionItem defines the precision of the relation.

The exponent defines the exponential relation to the base unit, so that the alias unit equals the base unit raised to the exponent. For simple unit relations this gives: alias unit = relation * base unit^exponent.

Alias units normally have three different names defined for use in expressions - abbreviation (ex. "m"), singular ("meter") and plural ("meters").

Definition at line 157 of file Unit.h.


Public Member Functions

virtual const string & abbreviation (bool return_singular_if_no_abbreviation=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual void addName (string sname, size_t index=0, bool force=true)
virtual void addName (const ExpressionName &ename, size_t index=0, bool force=true)
 AliasUnit (const AliasUnit *unit)
 AliasUnit (string cat_, string name_, string plural_, string singular_, string title_, Unit *alias, string relation="1", int exp=1, string inverse="", bool is_local=true, bool is_builtin=false, bool is_active=true)
virtual int baseExponent (int exp=1) const
virtual UnitbaseUnit () const
virtual const string & category () const
virtual bool changeReference (ExpressionItem *o_from, ExpressionItem *o_to)
virtual void clearNames ()
virtual void clearNonReferenceNames ()
MathStructure convert (Unit *u, bool *converted=NULL) const
bool convert (Unit *u, MathStructure &mvalue) const
bool convert (Unit *u, MathStructure &mvalue, MathStructure &exp) const
virtual MathStructure convertFromBaseUnit () const
virtual MathStructureconvertFromBaseUnit (MathStructure &mvalue) const
virtual MathStructureconvertFromBaseUnit (MathStructure &mvalue, MathStructure &mexp) const
virtual MathStructureconvertFromFirstBaseUnit (MathStructure &mvalue, MathStructure &mexp) const
virtual MathStructure convertToBaseUnit () const
virtual MathStructureconvertToBaseUnit (MathStructure &mvalue) const
virtual MathStructureconvertToBaseUnit (MathStructure &mvalue, MathStructure &mexp) const
virtual MathStructureconvertToFirstBaseUnit (MathStructure &mvalue, MathStructure &mexp) const
virtual ExpressionItemcopy () const
virtual size_t countNames () const
virtual const string & description () const
virtual bool destroy ()
virtual string expression () const
virtual const ExpressionNamefindName (int abbreviation=-1, int use_unicode=-1, int plural=-1, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual int firstBaseExponent () const
virtual UnitfirstBaseUnit () const
virtual const ExpressionNamegetName (size_t index) const
virtual ExpressionItemgetReferencer (size_t index=1) const
virtual bool hasChanged () const
virtual bool hasComplexExpression () const
virtual bool hasComplexRelationTo (Unit *u) const
virtual size_t hasName (const string &sname, bool case_sensitive=true) const
virtual size_t hasNameCaseSensitive (const string &sname) const
virtual string inverseExpression () const
virtual bool isActive () const
virtual bool isApproximate () const
virtual bool isBuiltin () const
virtual bool isChildOf (Unit *u) const
bool isCurrency () const
virtual bool isHidden () const
virtual bool isLocal () const
virtual bool isParentOf (Unit *u) const
bool isRegistered () const
bool isSIUnit () const
virtual bool isUsedByOtherUnits () const
virtual const string & name (bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual const string & plural (bool return_singular_if_no_plural=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual int precision () const
virtual const ExpressionNamepreferredDisplayName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual const ExpressionNamepreferredInputName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual const ExpressionNamepreferredName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual string print (bool plural_, bool short_, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual void ref (ExpressionItem *o)
virtual void ref ()
virtual int refcount () const
virtual const string & referenceName () const
virtual void removeName (size_t index)
virtual void set (const ExpressionItem *item)
virtual void setActive (bool is_active)
virtual void setApproximate (bool is_approx=true)
void setAsSIUnit ()
virtual void setBaseUnit (Unit *alias)
virtual void setCategory (string cat_)
virtual void setChanged (bool has_changed)
virtual void setDescription (string descr_)
virtual void setExponent (int exp)
virtual void setExpression (string relation)
virtual void setHidden (bool is_hidden)
virtual void setInverseExpression (string inverse)
virtual bool setLocal (bool is_local=true, int will_be_active=-1)
virtual void setName (string sname, size_t index, bool force=true)
virtual void setName (const ExpressionName &ename, size_t index=1, bool force=true)
virtual void setPrecision (int prec)
void setRegistered (bool is_registered)
 For internal use.
void setSystem (string s_system)
virtual void setTitle (string title_)
virtual const string & singular (bool return_abbreviation_if_no_singular=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual int subtype () const
const string & system () const
virtual const string & title (bool return_name_if_no_title=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const
virtual int type () const
virtual void unref (ExpressionItem *o)
virtual void unref ()

Protected Attributes

bool b_active
bool b_approx
bool b_builtin
bool b_changed
bool b_destroyed
bool b_hidden
bool b_local
bool b_registered
bool b_si
int i_exp
int i_precision
int i_ref
vector< ExpressionNamenames
Unito_unit
string scat
string sdescr
string sinverse
string ssystem
string stitle
string svalue
vector< ExpressionItem * > v_refs

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index