GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRTrill.h
1 #ifndef GRTrill_H
2 #define GRTrill_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7 
8  This Source Code Form is subject to the terms of the Mozilla Public
9  License, v. 2.0. If a copy of the MPL was not distributed with this
10  file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 
12  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
13  research@grame.fr
14 
15 */
16 
17 #include <vector>
18 
19 #include "GRPTagARNotationElement.h"
20 #include "ARTrill.h"
21 
22 class GRStaff;
23 class GREvent;
24 class GRAccidental;
25 class GRSingleNote;
26 class GRSystem;
27 class GRVisitor;
28 
29 
33 {
34  private:
35  GRNotationElement* fNextEvent = 0;
36 
37 // GRAccidental * createAccidental (ARMusicalVoice::CHORD_ACCIDENTAL acc, bool cautionary) const;
38  GRAccidental * createAccidental (const ARTrill * ar) const;
39 
40  public:
41  GRTrill( GRStaff * stf, const ARTrill * arTrill );
42  virtual ~GRTrill();
43 
44  virtual void accept (GRVisitor& visitor);
45  virtual void OnDraw( VGDevice & hdc) const;
46  virtual void OnDraw( VGDevice & hdc, float pos, float noteY, int numVoice) const;
47 // virtual void tellNoteX( const GRSingleNote * note, float x );
48 // virtual void tellNoteY( const GRSingleNote * note, float y );
49  virtual void tellPosition( GObject * caller, const NVPoint & np );
50  NVRect getEnclosingBox() const; // gives a rect that enclose the ornament including accidentals
51 
52  virtual unsigned int getTextAlign() const;
53  virtual const NVPoint & getReferencePosition() const;
54 
55  void setNextEvent(GRNotationElement* ev) { fNextEvent = ev; }
56  void setStartOffset (float offset) { fStartOffset = offset; }
57  bool getBegin() const { return fBegin; }
58  virtual const GRTrill * isGRTrill() const { return this; }
59 
60  ARTrill::POS getTrillPos() const { return fPosition; }
61 
62 
63  protected:
64  void placeMord(GREvent * inParents, NVPoint& newPoint);
65 
66  void setupTrill();
67  void setupTurn();
68  void setupInvertedTurn(bool bar);
69 // void setupTurnComplex();
70 // void setupInvertedTurnComplex();
71  void setupMord();
72  void setupInvertedMord();
73  void setupPrallMordent();
74  void setupPrallPrall();
75 
76 
77  void setTrillSymbol( unsigned int inSymbolID);
78 
79  GDirection chooseDirection (GREvent * inParent ) const;
80 
84  bool fBegin;
85  bool fShowTR;
86  bool fShowWavy;
87  float fTildeWidth;
88  float fStartOffset = 0;
90 
91  private:
92  typedef std::vector<std::pair<const GRSystem*, NVRect> > TDrawRects;
93  TDrawRects getAllAssociatedBoundingBox (const NEPointerList * assoc, const GRStaff* staff) const;
94  NVRect getCurrentRect (const GRSystem* sys) const;
95 
96  TDrawRects fDrawRects;
97 
98  static float & getLastPosX(int i);
99 };
100 #endif
GRTrill::setupPrallPrall
void setupPrallPrall()
GRTrill::chooseDirection
GDirection chooseDirection(GREvent *inParent) const
GRTrill::setupTurn
void setupTurn()
GRTrill::setNextEvent
void setNextEvent(GRNotationElement *ev)
Definition: GRTrill.h:55
GRVisitor
Definition: GRVisitor.h:39
GRSingleNote
Graphical representation of a note event.
Definition: GRSingleNote.h:38
GRTrill::fShowTR
bool fShowTR
Definition: GRTrill.h:85
ARTrill
not yet documented
Definition: ARTrill.h:115
GRTrill::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &np)
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRTrill::fShowWavy
bool fShowWavy
Definition: GRTrill.h:86
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GREvent
Graphical representation for an event (= has duration).
Definition: GREvent.h:61
NVPoint
Definition: NVPoint.h:20
GRTrill::fAccidental
GRAccidental * fAccidental
Definition: GRTrill.h:81
GRTrill::setStartOffset
void setStartOffset(float offset)
Definition: GRTrill.h:56
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRTrill::placeMord
void placeMord(GREvent *inParents, NVPoint &newPoint)
GRTrill::getBegin
bool getBegin() const
Definition: GRTrill.h:57
GRTrill::isGRTrill
virtual const GRTrill * isGRTrill() const
Definition: GRTrill.h:58
GRTrill::fBegin
bool fBegin
Definition: GRTrill.h:84
GRPTagARNotationElement
not yet documented
Definition: GRPTagARNotationElement.h:25
GRTrill::getTextAlign
virtual unsigned int getTextAlign() const
ARTrill::ORNAMENT
ORNAMENT
Definition: ARTrill.h:118
GRTrill::getTrillPos
ARTrill::POS getTrillPos() const
Definition: GRTrill.h:60
GRTrill::accept
virtual void accept(GRVisitor &visitor)
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRTrill::setupInvertedTurn
void setupInvertedTurn(bool bar)
ARTrill::POS
POS
Definition: ARTrill.h:120
GRTrill::GRTrill
GRTrill(GRStaff *stf, const ARTrill *arTrill)
GRTrill::setupTrill
void setupTrill()
GRTrill::setupPrallMordent
void setupPrallMordent()
GRAccidental
Accidentals: sharp, flat, natural, double sharp, double flat.
Definition: GRAccidental.h:27
GRTrill::~GRTrill
virtual ~GRTrill()
GRTrill::getEnclosingBox
NVRect getEnclosingBox() const
GRTrill::fTildeWidth
float fTildeWidth
Definition: GRTrill.h:87
GRTrill::fPosition
ARTrill::POS fPosition
Definition: GRTrill.h:89
NVRect
Definition: NVRect.h:22
GRTrill::fStartOffset
float fStartOffset
Definition: GRTrill.h:88
GRTrill::setupMord
void setupMord()
GRTrill::sRefPos
NVPoint sRefPos
Definition: GRTrill.h:83
GRTrill::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRTrill::fType
ARTrill::ORNAMENT fType
Definition: GRTrill.h:82
GRTrill::getReferencePosition
virtual const NVPoint & getReferencePosition() const
Retrieves the Symbol-reference-position with respect to the GUIDO-reference-position.
GRSystem
Manages a number of staffs and has a given start and end timeposition. GRSystem is the grafical repre...
Definition: GRSystem.h:52
GRTrill::setTrillSymbol
void setTrillSymbol(unsigned int inSymbolID)
NEPointerList
Definition: NEPointerList.h:34
GRTrill::setupInvertedMord
void setupInvertedMord()
GRTrill
GRTrill tag.
Definition: GRTrill.h:32

Guido Project Copyright © 2019 Grame-CNCM