GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARTStem.h
1 #ifndef ARTStem_H
2 #define ARTStem_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 
21 class TagParameterFloat;
22 
23 
24 /*@mkdoc
25 
26 @group:Notes
27 
28 @tagname:\stemsOff
29 @tagalias:
30 @tagtype:P
31 @tagnotation:disable stems drawing
32 @tagdesc
33 See the [notes](@EXAMPLES/notes/) example.
34 @tagend
35 
36 @tagname:\stemsAuto
37 @tagalias:
38 @tagtype:P
39 @tagnotation:cancel \stemsOff and enable automatic stems direction
40 @tagdesc
41 @tagend
42 @params:
43 @param:length:unit:the stem length:7.0:true
44 @paramdesc
45 See the [notes](@EXAMPLES/notes/) example.
46 @paramend
47 
48 @tagname:\stemsDown
49 @tagalias:
50 @tagtype:P
51 @tagnotation:force stem direction to down
52 @tagdesc
53 @tagend
54 @params:
55 @param:length:unit:the stem length:7.0:true
56 @paramdesc
57 See the [4 voices](@EXAMPLES/4voices/) example. <br />
58 See the [notes](@EXAMPLES/notes/) example.
59 @paramend
60 
61 @tagname:\stemsUp
62 @tagalias:
63 @tagtype:P
64 @tagnotation:force stem direction to up
65 @tagdesc
66 @tagend
67 @params:
68 @param:length:unit:the stem length:7.0:true
69 @paramdesc
70 See the [4 voices](@EXAMPLES/4voices/) example. <br />
71 See the [notes](@EXAMPLES/notes/) example.
72 @paramend
73 
74 */
75 
76 
80 class ARTStem : public ARMTParameter, public ARPositionTag
81 {
82  public:
83 
84  enum STEMSTATE { UP ,DOWN ,AUTO, OFF };
85 
86  virtual bool IsStateTag() const { return true; }
87 
88  ARTStem( int st = ARTStem::AUTO, const ARTStem * p_savestem = NULL, const ARTStem * p_copystem = NULL);
89  ARTStem(const ARTStem * tstem);
90  virtual ~ARTStem() {}
91 
92 
93  virtual ARMusicalObject * Copy() const { return new ARTStem(this); }
94 
95  virtual const char* getParamsStr() const { return kARTStemParams; };
96  virtual const char* getTagName() const { return "ARTStem"; };
97  virtual std::string getGMNName() const;
98 
99  const TagParameterFloat * getLength() const; // { return mTpfLength; }
100  virtual const STEMSTATE getStemState() const { return mStemState; }
101  virtual ARMusicalObject * getEndTag() const { return new ARTStem(AUTO, NULL, mSaveStem); }
102 
103  private:
104  const ARTStem * mSaveStem;
105  STEMSTATE mStemState;
106 };
107 
108 #endif
ARTStem::IsStateTag
virtual bool IsStateTag() const
Definition: ARTStem.h:86
ARTStem::AUTO
Definition: ARTStem.h:84
ARTStem::getParamsStr
virtual const char * getParamsStr() const
Definition: ARTStem.h:95
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
ARTStem::UP
Definition: ARTStem.h:84
ARTStem
not yet documented
Definition: ARTStem.h:80
ARTStem::DOWN
Definition: ARTStem.h:84
ARTStem::ARTStem
ARTStem(int st=ARTStem::AUTO, const ARTStem *p_savestem=NULL, const ARTStem *p_copystem=NULL)
ARTStem::getGMNName
virtual std::string getGMNName() const
ARTStem::getEndTag
virtual ARMusicalObject * getEndTag() const
Definition: ARTStem.h:101
ARTStem::OFF
Definition: ARTStem.h:84
ARTStem::Copy
virtual ARMusicalObject * Copy() const
Definition: ARTStem.h:93
TagParameterFloat
The floating point parameter type for Guido Tags.
Definition: TagParameterFloat.h:24
ARTStem::STEMSTATE
STEMSTATE
Definition: ARTStem.h:84
ARTStem::getLength
const TagParameterFloat * getLength() const
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
ARTStem::getTagName
virtual const char * getTagName() const
Definition: ARTStem.h:96
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
ARTStem::getStemState
virtual const STEMSTATE getStemState() const
Definition: ARTStem.h:100
ARTStem::~ARTStem
virtual ~ARTStem()
Definition: ARTStem.h:90

Guido Project Copyright © 2019 Grame-CNCM