GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARBowing.h
1 #ifndef ARBowing_H
2 #define ARBowing_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 "ARMTParameter.h"
19 #include "ARPositionTag.h"
20 
23 class ARBowing : public ARMTParameter, public ARPositionTag
24 {
25  public:
27 
28  ARBowing();
29  ARBowing(const ARBowing * bowing);
30  virtual ~ARBowing() {}
31 
32  static float undefined() { return float(kPUndefined); }
33 
34  float getDX1() const { return fDx1; }
35  float getDX2() const { return fDx2; }
36  float getDY1() const { return fDy1; }
37  float getDY2() const { return fDy2; }
38  float getR3() const { return fCtrlPoint; }
39  float getH() const { return fCtrlPointOffset; }
40  bool getParSet() const { return fParSet; }
41  CurveDirection getCurve() const { return fCurveDir; }
42 
43  virtual void setTagParameters (const TagParameterMap& params);
44 
45  virtual const char* getParamsStr() const { return kARBowingParams; };
46  virtual const char* getTagName() const { return "ARBowing"; };
47  virtual std::string getGMNName() const { return "\\bowing"; };
48 
49  private:
50  float fDx1, fDy1; // offset to the first control point
51  float fDx2, fDy2; // offset to the last control point
52  float fCtrlPoint; // factor defining the position of the middle control point (default is 0.5).
53  float fCtrlPointOffset; // y offset to the middle control point (expressed in hs).
54  CurveDirection fCurveDir;
55 
56  bool fParSet; // true if at least one of the 6 params has been set.
57 };
58 
59 #endif
ARBowing::kDown
Definition: ARBowing.h:26
ARBowing::ARBowing
ARBowing()
ARBowing::setTagParameters
virtual void setTagParameters(const TagParameterMap &params)
ARBowing::getR3
float getR3() const
Definition: ARBowing.h:38
ARBowing::getGMNName
virtual std::string getGMNName() const
Definition: ARBowing.h:47
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
ARBowing::CurveDirection
CurveDirection
Definition: ARBowing.h:26
ARBowing::getParSet
bool getParSet() const
Definition: ARBowing.h:40
ARBowing::getDY2
float getDY2() const
Definition: ARBowing.h:37
ARBowing::getDX2
float getDX2() const
Definition: ARBowing.h:35
ARBowing::getTagName
virtual const char * getTagName() const
Definition: ARBowing.h:46
ARBowing::kPUndefined
Definition: ARBowing.h:26
ARBowing::getDX1
float getDX1() const
Definition: ARBowing.h:34
ARBowing::undefined
static float undefined()
Definition: ARBowing.h:32
ARBowing::kUp
Definition: ARBowing.h:26
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
TagParameterMap
A list of tag parameters represented as a map.
Definition: TagParameterMap.h:31
ARBowing::kUndefined
Definition: ARBowing.h:26
ARBowing::getH
float getH() const
Definition: ARBowing.h:39
ARBowing::getCurve
CurveDirection getCurve() const
Definition: ARBowing.h:41
ARBowing::~ARBowing
virtual ~ARBowing()
Definition: ARBowing.h:30
ARBowing::getDY1
float getDY1() const
Definition: ARBowing.h:36
ARBowing::getParamsStr
virtual const char * getParamsStr() const
Definition: ARBowing.h:45
ARBowing
Implement bowing abstract objects (slur, ties...)
Definition: ARBowing.h:23

Guido Project Copyright © 2019 Grame-CNCM