GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARTHead.h
1 #ifndef ARTHead_H
2 #define ARTHead_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 <string>
19 
20 #include "ARMTParameter.h"
21 #include "ARPositionTag.h"
22 
23 /*@mkdoc
24 
25 @group:Notes
26 
27 @tagname:\headsCenter
28 @tagtype:RP
29 @tagnotation:moves the notehead centered on the stem
30 @tagdesc
31 The **\headsCenter** tag supports both a range and a position form.
32 For the latter, it is is applied up to the next *head* specification or to the end of the voice.
33 
34 See the [notes](@EXAMPLES/notes/) example.
35 @tagend
36 
37 @tagname:\headsLeft
38 @tagtype:RP
39 @tagnotation:force the notehead to the left of the stem
40 @tagdesc
41 The **\headsLeft** tag supports both a range and a position form.
42 For the latter, it is is applied up to the next *head* specification or to the end of the voice.
43 
44 See the [notes](@EXAMPLES/notes/) example.
45 @tagend
46 
47 @tagname:\headsRight
48 @tagtype:RP
49 @tagnotation:force the notehead to the right of the stem
50 @tagdesc
51 The **\headsRight** tag supports both a range and a position form.
52 For the latter, it is is applied up to the next *head* specification or to the end of the voice.
53 
54 See the [notes](@EXAMPLES/notes/) example.
55 @tagend
56 
57 @tagname:\headsNormal
58 @tagtype:RP
59 @tagnotation:cancel a previous *head* specification and reverts to normal head position.
60 @tagdesc
61 The **\headsNormal** tag supports both a range and a position form.
62 For the latter, it is is applied up to the next *head* specification or to the end of the voice.
63 @tagend
64 
65 @tagname:\headsReverse
66 @tagtype:RP
67 @tagnotation:moves the notehead on the opposite side of the normal position
68 @tagdesc
69 The **\headsReverse** tag supports both a range and a position form.
70 For the latter, it is is applied up to the next *head* specification or to the end of the voice.
71 @tagend
72 
73 */
74 
77 class ARTHead : public ARMTParameter, public ARPositionTag
78 {
79  public:
81 
82  ARTHead(int st = ARTHead::NOTSET, const ARTHead * p_savehead = NULL, const ARTHead * p_copyhead = NULL);
83  ARTHead(const ARTHead & arthead);
84  virtual ~ARTHead() { }
85 
86  ARMusicalObject * Copy() const { return new ARTHead(*this); }
87 
88  virtual bool IsStateTag() const { return true; }
89  virtual const char* getTagName() const { return "ARTHead"; };
90  virtual std::string getGMNName() const;
91 
92  virtual const HEADSTATE getHeadState() const { return fHeadState; }
93  virtual ARMusicalObject * getEndTag() const { return new ARTHead(NOTSET,NULL,fSavedHead); }
94 
95  private:
96  const ARTHead * fSavedHead;
97  HEADSTATE fHeadState;
98 };
99 
100 #endif
ARTHead::RIGHT
Definition: ARTHead.h:80
ARTHead::getEndTag
virtual ARMusicalObject * getEndTag() const
Definition: ARTHead.h:93
ARTHead
not yet documented
Definition: ARTHead.h:77
ARTHead::Copy
ARMusicalObject * Copy() const
Definition: ARTHead.h:86
ARTHead::~ARTHead
virtual ~ARTHead()
Definition: ARTHead.h:84
ARTHead::getGMNName
virtual std::string getGMNName() const
ARTHead::NOTSET
Definition: ARTHead.h:80
ARTHead::IsStateTag
virtual bool IsStateTag() const
Definition: ARTHead.h:88
ARTHead::LEFT
Definition: ARTHead.h:80
ARTHead::NORMAL
Definition: ARTHead.h:80
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
ARTHead::REVERSE
Definition: ARTHead.h:80
ARTHead::ARTHead
ARTHead(int st=ARTHead::NOTSET, const ARTHead *p_savehead=NULL, const ARTHead *p_copyhead=NULL)
ARTHead::getHeadState
virtual const HEADSTATE getHeadState() const
Definition: ARTHead.h:92
ARTHead::getTagName
virtual const char * getTagName() const
Definition: ARTHead.h:89
ARTHead::HEADSTATE
HEADSTATE
Definition: ARTHead.h:80
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
ARTHead::CENTER
Definition: ARTHead.h:80

Guido Project Copyright © 2019 Grame-CNCM