GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRFlag.h
1 #ifndef GRFlag_H
2 #define GRFlag_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 "GRNotationElement.h"
19 
20 class GREvent;
21 class GRGlobalStem;
22 class GRStem;
23 
24 
27 class GRFlag : public GRNotationElement
28 {
29 public:
30  friend class GREvent;
31 
32  enum FLAGTYPE { NONE = kNoneSymbol,
33  H8U = kFlag8UpSymbol,
34  H8D = kFlag8DownSymbol,
35  H16U = kFlag16UpSymbol,
36  H16D = kFlag16DownSymbol,
37  H32U = kFlag32UpSymbol,
38  H32D = kFlag32DownSymbol,
39  H64U = kFlag64UpSymbol,
40  H64D = kFlag64DownSymbol };
41 
42  GRFlag(const TYPE_DURATION & durtempl);
43 
44  GRFlag(GRGlobalStem * gstem, const TYPE_DURATION & durtempl,
45  GDirection dir, float stemlength);
46 
47  GRFlag(GREvent * sngnot, const TYPE_DURATION & durtempl,
48  GDirection dir, float stemlength,
49  float notebreite);
50 
51  virtual ~GRFlag();
52 
53  virtual void configureForChord(GRGlobalStem *gstem, const TYPE_DURATION& duration);
54  virtual void configureForSingleNote(GREvent *sngnot, const TYPE_DURATION& duration);
55 
56  virtual void changeStemLength (GREvent * sngnot, float inLen, GDirection stemdir);
57 
58  virtual const NVPoint & getOffset() const { return mOffset; }
59  virtual const NVPoint & getReferencePosition() const { return sRefpos; }
60 
61  void setFlagOnOff(bool p);
62 
63  virtual float getSize() const { return mSize; }
64  virtual const unsigned char * getColRef() const { return mColRef; }
65  void setStraight(bool nstr) { mStraight = nstr; }
66  bool getStraight() const { return mStraight; }
67 
68  virtual void OnDraw(VGDevice & hdc ) const;
69 
70  virtual int getNumFaehnchen() const;
71  virtual void setColRef(const unsigned char * tmpcolref);
72 
73  void changeOffset (GRStem * stem);
74 
75 protected:
76  void calcFlagExtent( float inNoteBreite );
77  void initialize(const TYPE_DURATION & duration, GDirection stemdir, float notebreite);
78 
79  static NVPoint sRefpos;
80 
81  float mSize;
82  unsigned char * mColRef;
83  bool mFlagOn;
84 
85  // is set to one, if the flag should be drawn straight...
86  bool mStraight;
87 
88 
89 private:
91  GDirection fStemdir;
92  float fStemlength;
93  float fNotebreite;
94 };
95 
96 #endif
GRFlag::sRefpos
static NVPoint sRefpos
Definition: GRFlag.h:79
GRFlag::H32U
Definition: GRFlag.h:37
GRFlag::configureForSingleNote
virtual void configureForSingleNote(GREvent *sngnot, const TYPE_DURATION &duration)
GRFlag::setFlagOnOff
void setFlagOnOff(bool p)
GRFlag::setColRef
virtual void setColRef(const unsigned char *tmpcolref)
GRFlag::mColRef
unsigned char * mColRef
Definition: GRFlag.h:82
GRFlag::H16U
Definition: GRFlag.h:35
duration
GuidoDate duration(CGRHandler inHandleGR)
Returns the music duration of a score.
GRFlag::H8U
Definition: GRFlag.h:33
GRFlag::H64D
Definition: GRFlag.h:40
GRFlag
Flags attached to a note stem.
Definition: GRFlag.h:27
Fraction
Numerator and denominator.
Definition: Fraction.h:23
GRFlag::H8D
Definition: GRFlag.h:34
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GREvent
Graphical representation for an event (= has duration).
Definition: GREvent.h:61
GRFlag::getNumFaehnchen
virtual int getNumFaehnchen() const
NVPoint
Definition: NVPoint.h:20
GRFlag::getReferencePosition
virtual const NVPoint & getReferencePosition() const
Retrieves the Symbol-reference-position with respect to the GUIDO-reference-position.
Definition: GRFlag.h:59
GRFlag::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRFlag::mFlagOn
bool mFlagOn
Definition: GRFlag.h:83
GRFlag::getStraight
bool getStraight() const
Definition: GRFlag.h:66
GRFlag::NONE
Definition: GRFlag.h:32
GRFlag::H16D
Definition: GRFlag.h:36
GRFlag::configureForChord
virtual void configureForChord(GRGlobalStem *gstem, const TYPE_DURATION &duration)
GRFlag::changeOffset
void changeOffset(GRStem *stem)
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRFlag::FLAGTYPE
FLAGTYPE
Definition: GRFlag.h:32
GRFlag::H64U
Definition: GRFlag.h:39
GRFlag::calcFlagExtent
void calcFlagExtent(float inNoteBreite)
GRFlag::initialize
void initialize(const TYPE_DURATION &duration, GDirection stemdir, float notebreite)
GREvent::mOffset
NVPoint mOffset
Definition: GREvent.h:148
GRFlag::mSize
float mSize
Definition: GRFlag.h:81
GRGlobalStem
Shared stem.
Definition: GRGlobalStem.h:36
GRStem
Graphical representation of a stem.
Definition: GRStem.h:28
GRFlag::changeStemLength
virtual void changeStemLength(GREvent *sngnot, float inLen, GDirection stemdir)
GRFlag::H32D
Definition: GRFlag.h:38
GRFlag::getSize
virtual float getSize() const
Definition: GRFlag.h:63
GRFlag::GRFlag
GRFlag(const TYPE_DURATION &durtempl)
GRFlag::mStraight
bool mStraight
Definition: GRFlag.h:86
GRFlag::getOffset
virtual const NVPoint & getOffset() const
Definition: GRFlag.h:58
GRFlag::getColRef
virtual const unsigned char * getColRef() const
Definition: GRFlag.h:64
GRFlag::~GRFlag
virtual ~GRFlag()
GRFlag::setStraight
void setStraight(bool nstr)
Definition: GRFlag.h:65

Guido Project Copyright © 2019 Grame-CNCM