GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRGlissando.h
1 #ifndef GRGlissando_H
2 #define GRGlissando_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2013 Grame
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 "GRPTagARNotationElement.h"
18 
19 class ARGlissando;
20 class GRStdNoteHead;
21 
22 /*
23 class GRStaff;
24 class GRSystem;
25 class GRGlobalStem;
26 class GRSystemStartEndStruct;
27 
28 */
29 
31 {
32  public:
33 
35  {
36  public:
38 
39  virtual ~GRGlissandoSaveStruct() { }
40  int numPoints;
41 
44  };
45 
47  {
48  public:
49  GRGlissandoContext() : staff(0), openRight(false), openLeft(false),
52  sizeLeft(1), sizeRight(1), leftNoteDX(0),
54  { }
56  bool openRight;
57  bool openLeft;
63  float sizeLeft;
64  float sizeRight;
65  float leftNoteDX;
66  float rightNoteDX;
67  float leftNoteDY;
68  float rightNoteDY;
69  };
70 
71  public:
72  GRGlissando( GRStaff * grstaff = 0);
73  GRGlissando( GRStaff * grstaff, const ARGlissando * ar );
74  virtual ~GRGlissando();
75 
76  virtual void OnDraw( VGDevice & hdc ) const;
77 
78  virtual void removeAssociation(GRNotationElement * el );
79  virtual void addAssociation(GRNotationElement * el);
80 
81  virtual void tellPosition(GObject * caller, const NVPoint & newPosition);
82  virtual GRNotationElement * getStartElement(GRStaff * grstaff) const;
83  virtual GRNotationElement * getEndElement(GRStaff * grstaff) const;
84  virtual void BreakTag(GRStaff * grstaff, GuidoPos & assocpos);
85  virtual void setPrevGlissando( GRGlissando * prev);
86  virtual GRGlissando * getPrevGlissando(){return prevGRGlissando;}
87  GRGlissandoContext * getContext(){return &fglissContext;}
88  void setHidden(){hidden = true;}
89  bool isFilled(){return filled;}
90 
91 
92  protected:
93 
94  virtual void updateGlissando( GRStaff * grstaff );
95  virtual void getGlissandoBeginningContext( GRGlissandoContext * ioContext, GRSystemStartEndStruct * sse );
96  virtual void getGlissandoEndingContext( GRGlissandoContext * ioContext, GRSystemStartEndStruct * sse );
97  //bool wavy;
98  bool fill;
99  bool hidden;
100  bool filled;
102 
103  private:
104  void compareAccidentals(GRSystemStartEndStruct * sse, bool * isUp, bool * isDown);
105  GRSystemStartEndStruct * initGRGlissando( GRStaff * grstaff );
106  GRGlissandoContext fglissContext;
107  GRGlissandoSaveStruct * fglissInfos;
108  GRGlissando * prevGRGlissando;
109 };
110 
111 #endif
GRGlissando::getContext
GRGlissandoContext * getContext()
Definition: GRGlissando.h:87
GRGlissando::filled
bool filled
Definition: GRGlissando.h:100
GRGlissando::GRGlissandoContext::sizeLeft
float sizeLeft
Definition: GRGlissando.h:63
GRGlissando::addAssociation
virtual void addAssociation(GRNotationElement *el)
GRSystemStartEndStruct
This class is used to determine when a position tag ends.
Definition: GRPositionTag.h:32
GRGlissando::flaststartElement
GRNotationElement * flaststartElement
Definition: GRGlissando.h:101
GRGlissando::GRGlissandoContext::rightNoteDY
float rightNoteDY
Definition: GRGlissando.h:68
GRGlissando::GRGlissandoContext::GRGlissandoContext
GRGlissandoContext()
Definition: GRGlissando.h:49
GRGlissando::getEndElement
virtual GRNotationElement * getEndElement(GRStaff *grstaff) const
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRGlissando::GRGlissandoContext::leftNoteDX
float leftNoteDX
Definition: GRGlissando.h:65
GRGlissando::GRGlissandoContext::sizeRight
float sizeRight
Definition: GRGlissando.h:64
GRGlissando::GRGlissandoContext::rightNoteDX
float rightNoteDX
Definition: GRGlissando.h:66
GRGlissando::GRGlissando
GRGlissando(GRStaff *grstaff=0)
GRGlissando::getStartElement
virtual GRNotationElement * getStartElement(GRStaff *grstaff) const
GRGlissando::updateGlissando
virtual void updateGlissando(GRStaff *grstaff)
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRGlissando::setPrevGlissando
virtual void setPrevGlissando(GRGlissando *prev)
NVPoint
Definition: NVPoint.h:20
GRGlissando::GRGlissandoSaveStruct::points
NVPoint points[4]
Definition: GRGlissando.h:42
GRPositionTag::GRSaveStruct
Definition: GRPositionTag.h:68
GRGlissando::GRGlissandoContext::openRight
bool openRight
Definition: GRGlissando.h:56
GRGlissando::getGlissandoBeginningContext
virtual void getGlissandoBeginningContext(GRGlissandoContext *ioContext, GRSystemStartEndStruct *sse)
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
ARGlissando
Definition: ARGlissando.h:47
GRGlissando::hidden
bool hidden
Definition: GRGlissando.h:99
GRStdNoteHead
Graphical representation of a note head.
Definition: GRStdNoteHead.h:25
GRPTagARNotationElement
not yet documented
Definition: GRPTagARNotationElement.h:25
GRGlissando::GRGlissandoContext::secondLeftHead
GRStdNoteHead * secondLeftHead
Definition: GRGlissando.h:58
GRGlissando::GRGlissandoSaveStruct::~GRGlissandoSaveStruct
virtual ~GRGlissandoSaveStruct()
Definition: GRGlissando.h:39
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRGlissando::GRGlissandoSaveStruct::position
NVPoint position
Definition: GRGlissando.h:43
GRGlissando::GRGlissandoSaveStruct
Definition: GRGlissando.h:34
GRGlissando::BreakTag
virtual void BreakTag(GRStaff *grstaff, GuidoPos &assocpos)
GRAccidental
Accidentals: sharp, flat, natural, double sharp, double flat.
Definition: GRAccidental.h:27
GRGlissando::getPrevGlissando
virtual GRGlissando * getPrevGlissando()
Definition: GRGlissando.h:86
GRGlissando::GRGlissandoContext::firstRightHead
GRStdNoteHead * firstRightHead
Definition: GRGlissando.h:61
GRGlissando::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &newPosition)
GRGlissando::isFilled
bool isFilled()
Definition: GRGlissando.h:89
GRGlissando::GRGlissandoContext::firstLeftHead
GRStdNoteHead * firstLeftHead
Definition: GRGlissando.h:59
GRGlissando::GRGlissandoContext
Definition: GRGlissando.h:46
GRGlissando::GRGlissandoContext::staff
GRStaff * staff
Definition: GRGlissando.h:55
GRGlissando::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRGlissando::GRGlissandoContext::accidentalRight
GRAccidental * accidentalRight
Definition: GRGlissando.h:62
GRGlissando::~GRGlissando
virtual ~GRGlissando()
GRGlissando::GRGlissandoContext::secondRightHead
GRStdNoteHead * secondRightHead
Definition: GRGlissando.h:60
GRGlissando::GRGlissandoContext::leftNoteDY
float leftNoteDY
Definition: GRGlissando.h:67
GRGlissando::fill
bool fill
Definition: GRGlissando.h:98
GRGlissando
Definition: GRGlissando.h:30
GRGlissando::GRGlissandoSaveStruct::numPoints
int numPoints
Definition: GRGlissando.h:40
GRGlissando::removeAssociation
virtual void removeAssociation(GRNotationElement *el)
GRGlissando::GRGlissandoContext::openLeft
bool openLeft
Definition: GRGlissando.h:57
GRGlissando::getGlissandoEndingContext
virtual void getGlissandoEndingContext(GRGlissandoContext *ioContext, GRSystemStartEndStruct *sse)
GRGlissando::GRGlissandoSaveStruct::GRGlissandoSaveStruct
GRGlissandoSaveStruct()
Definition: GRGlissando.h:37
GRGlissando::setHidden
void setHidden()
Definition: GRGlissando.h:88

Guido Project Copyright © 2019 Grame-CNCM