GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRClef.h
1 #ifndef GRClef_H
2 #define GRClef_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 "GRTagARNotationElement.h"
19 #include "GuidoDefs.h"
20 #include "GRVisitor.h"
21 
22 class ARClef;
23 class GRStaff;
24 
28 class GRClef : public GRTagARNotationElement //, public GRTag
29 {
30 
31 public:
32  GRClef(const ARClef * arClef, GRStaff * curstaff, bool ownsAR = false );
33  virtual ~GRClef() {}
34 
35  virtual bool operator ==(const GRTag & tag) const;
36  virtual bool operator ==(const GRClef & clef) const;
37 
38  virtual void accept (GRVisitor& visitor);
39  virtual void OnDraw( VGDevice & hdc ) const;
40 
41  virtual const NVPoint & getReferencePosition() const;
42  virtual unsigned int getTextAlign() const { return sClefTextAlign; }
43  virtual bool checkCollisionWith() const { return true; }
44 
45  const ARClef * getARClef() const;
46 
47  TYPE_PITCH getBasePitch() const { return mClefBasePitch; }
48  TYPE_REGISTER getBaseOct() const { return mClefBaseOctave; }
49  int getBaseLine() const { return mClefStaffLine; }
50 
51  virtual void setHPosition( float inX );
52  virtual void GetMap( GuidoElementSelector sel, MapCollector& f, MapInfos& infos ) const;
53 
54 protected:
55  void DrawTAB( VGDevice & hdc, float size, float lspace ) const;
56 
57  TYPE_PITCH mClefBasePitch;
58  TYPE_REGISTER mClefBaseOctave;
59  int mClefStaffLine; // line count from the bottom of the staff.
60  const char * mOctaveStr = nullptr;
62 
64 
65 #ifdef SMUFL
66  static NVPoint fRefpos;
67 #else
72 #endif
73  static unsigned int sClefTextAlign;
74 };
75 
76 
77 #endif
78 
79 
GRVisitor
Definition: GRVisitor.h:39
MapCollector
an abstract class to be provided by clients to collect mappings
Definition: GUIDOScoreMap.h:109
GRClef::getARClef
const ARClef * getARClef() const
GRClef::mClefStaffLine
int mClefStaffLine
Definition: GRClef.h:59
GRClef::getBasePitch
TYPE_PITCH getBasePitch() const
Definition: GRClef.h:47
GRClef::refposBass
static NVPoint refposBass
Definition: GRClef.h:71
GRClef::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRClef::mDoubleTreble
bool mDoubleTreble
Definition: GRClef.h:63
GRClef::getTextAlign
virtual unsigned int getTextAlign() const
Definition: GRClef.h:42
GRClef
Graphial representation of a staff clef.
Definition: GRClef.h:28
NVPoint
Definition: NVPoint.h:20
GRClef::getBaseOct
TYPE_REGISTER getBaseOct() const
Definition: GRClef.h:48
GRClef::GetMap
virtual void GetMap(GuidoElementSelector sel, MapCollector &f, MapInfos &infos) const
MapInfos
A class to propagate device related information.
Definition: GObject.h:42
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRClef::refposTreble
static NVPoint refposTreble
Definition: GRClef.h:69
GRClef::sClefTextAlign
static unsigned int sClefTextAlign
Definition: GRClef.h:73
GRClef::mOctaveOffset
NVPoint mOctaveOffset
Definition: GRClef.h:61
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRClef::getBaseLine
int getBaseLine() const
Definition: GRClef.h:49
GRClef::DrawTAB
void DrawTAB(VGDevice &hdc, float size, float lspace) const
GRClef::checkCollisionWith
virtual bool checkCollisionWith() const
Definition: GRClef.h:43
GRTagARNotationElement
GRTagARNotationElement.
Definition: GRTagARNotationElement.h:26
GRClef::refposPerc
static NVPoint refposPerc
Definition: GRClef.h:68
GRClef::mOctaveStr
const char * mOctaveStr
Definition: GRClef.h:60
GRClef::accept
virtual void accept(GRVisitor &visitor)
GRTag
The GRTag class is the base class for all GUIDO tags.
Definition: GRTag.h:37
GuidoElementSelector
GuidoElementSelector
Definition: GUIDOScoreMap.h:40
ARClef
Abstract representation of a staff clef.
Definition: ARClef.h:60
GRClef::refposAlto
static NVPoint refposAlto
Definition: GRClef.h:70
GRClef::mClefBaseOctave
TYPE_REGISTER mClefBaseOctave
Definition: GRClef.h:58
GRClef::operator==
virtual bool operator==(const GRTag &tag) const
GRClef::mClefBasePitch
TYPE_PITCH mClefBasePitch
Definition: GRClef.h:57
GRClef::setHPosition
virtual void setHPosition(float inX)
GRClef::getReferencePosition
virtual const NVPoint & getReferencePosition() const
Retrieves the Symbol-reference-position with respect to the GUIDO-reference-position.
GRClef::~GRClef
virtual ~GRClef()
Definition: GRClef.h:33
GRClef::GRClef
GRClef(const ARClef *arClef, GRStaff *curstaff, bool ownsAR=false)

Guido Project Copyright © 2019 Grame-CNCM