GUIDOLib  1.7.7
Guido Engine Internal Documentation
TagParameterFloat.h
1 #ifndef TagParameterFloat_H
2 #define TagParameterFloat_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2002-2017 Grame
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
18 #include "TagParameter.h"
19 
20 typedef float TYPE_FLOATPARAMETER;
21 
25 {
26  public:
27  TagParameterFloat( bool unittag );
28  TagParameterFloat( float theFloat = 0.f );
29  TagParameterFloat( const TagParameterFloat & tpf );
30  virtual ~TagParameterFloat() {}
31 
32  virtual void print(std::ostream& out);
33  virtual void set( const TagParameterFloat & in );
34  void reset(float theFloat, const char * inUnit);
35 
36  virtual float getUnitValue() const { return fValue; }
37  void setUnit(const char *un);
38  virtual void setValue(const char *p);
39  virtual void setValue(float val) { fValue = val; }
40 
41  virtual TagParameter* getCopy() const { return new TagParameterFloat(*this); }
42  virtual bool copyValue(const TagParameter *tp); // Returns true on if successful
43  virtual bool isFloat() const { return true; }
44 
45  const TYPE_FLOATPARAMETER getValue( float curLSPACE = 50.0f ) const;
46 
47  static bool convertValue(float value, double &toValue, const char * unit, float curLSPACE = 50.0f);
48 
49  bool TagIsUnitTag() const { return fUnittag; }
50  void setUnitTag() { fUnittag = true; }
51  const char * getUnit() const { return fUnit.c_str(); }
52  bool hasUnit() const { return fUnit.size() ? true : false; }
53 
54  static TagParameterFloat * cast( TagParameter * inTag )
55  { return inTag->isFloat() ? static_cast<TagParameterFloat *>(inTag) : 0; }
56  static const TagParameterFloat * cast( const TagParameter * inTag )
57  { return inTag->isFloat() ? static_cast<const TagParameterFloat *>(inTag) : 0; }
58 
59  //------------------------
60  bool fUnittag; // true if the tag is a unit tag (offset or width/height)
61 
62  protected:
63 // enum { kUnitLen=3 };
64  std::string fUnit;
65  TYPE_FLOATPARAMETER fValue;
66 
67  private:
68  using TagParameter::set;
69 };
70 
71 #endif
TagParameterFloat::getValue
const TYPE_FLOATPARAMETER getValue(float curLSPACE=50.0f) const
TagParameterFloat::setValue
virtual void setValue(float val)
Definition: TagParameterFloat.h:39
TagParameterFloat::copyValue
virtual bool copyValue(const TagParameter *tp)
TagParameterFloat::~TagParameterFloat
virtual ~TagParameterFloat()
Definition: TagParameterFloat.h:30
TagParameter::isFloat
virtual bool isFloat() const
Definition: TagParameter.h:60
TagParameterFloat::fValue
TYPE_FLOATPARAMETER fValue
Definition: TagParameterFloat.h:65
TagParameterFloat::fUnittag
bool fUnittag
Definition: TagParameterFloat.h:60
TagParameterFloat::cast
static TagParameterFloat * cast(TagParameter *inTag)
Definition: TagParameterFloat.h:54
TagParameterFloat::TagParameterFloat
TagParameterFloat(bool unittag)
TagParameterFloat::cast
static const TagParameterFloat * cast(const TagParameter *inTag)
Definition: TagParameterFloat.h:56
TagParameterFloat::setUnit
void setUnit(const char *un)
TagParameterFloat::TagIsUnitTag
bool TagIsUnitTag() const
Definition: TagParameterFloat.h:49
TagParameterFloat::isFloat
virtual bool isFloat() const
Definition: TagParameterFloat.h:43
TagParameterFloat::convertValue
static bool convertValue(float value, double &toValue, const char *unit, float curLSPACE=50.0f)
TagParameterFloat::getUnit
const char * getUnit() const
Definition: TagParameterFloat.h:51
TagParameterFloat::setUnitTag
void setUnitTag()
Definition: TagParameterFloat.h:50
TagParameterFloat::print
virtual void print(std::ostream &out)
TagParameterFloat::getCopy
virtual TagParameter * getCopy() const
Definition: TagParameterFloat.h:41
TagParameterFloat::getUnitValue
virtual float getUnitValue() const
resets value, unit & unittag
Definition: TagParameterFloat.h:36
TagParameter
The base class for all guido tags.
Definition: TagParameter.h:26
TagParameter::set
virtual void set(const TagParameter &in)
TagParameterFloat
The floating point parameter type for Guido Tags.
Definition: TagParameterFloat.h:24
TagParameterFloat::setValue
virtual void setValue(const char *p)
TagParameterFloat::set
virtual void set(const TagParameterFloat &in)
TagParameterFloat::hasUnit
bool hasUnit() const
Definition: TagParameterFloat.h:52
TagParameterFloat::fUnit
std::string fUnit
Definition: TagParameterFloat.h:64
TagParameterFloat::reset
void reset(float theFloat, const char *inUnit)

Guido Project Copyright © 2019 Grame-CNCM