GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRSlur.h
1 #ifndef GRSlur_H
2 #define GRSlur_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2004 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 "ARSlur.h"
19 #include "GRBowing.h"
20 #include "GRVisitor.h"
21 
24 class GRSlur : public GRBowing
25 {
26  public:
27  GRSlur (GRStaff * grstaff) : GRBowing(grstaff) {}
28  GRSlur (GRStaff * grstaff, const ARSlur * inAR ) : GRBowing(grstaff, inAR ) {}
29  virtual ~GRSlur() {}
30 
31  virtual void tellPositionEnd(GRNotationElement * caller);
32  virtual void OnDraw( VGDevice & hdc ) const;
33 
35  size_t countDeferred() { return fDeferredTellPostion.size(); }
36 
37  protected:
38  virtual void automaticCurveDirection( GRBowingContext * context, const ARBowing * arBow, GRSystemStartEndStruct * sse );
39  virtual void automaticAnchorPoints ( const GRBowingContext * context, const ARBowing * arBow, GRSystemStartEndStruct * sse );
40  virtual void automaticControlPoints ( const GRBowingContext * context, const ARBowing * arBow, GRSystemStartEndStruct * sse );
41  virtual void accept (GRVisitor& visitor);
42 
43  virtual GRSlur * isGRSlur() { return this; }
44 
45  private:
46  float getEltOffset (const GRNotationElement* el ) const;
47  NVRect getElementBox (const GRBowingContext * context, const GRNotationElement* el ) const;
48 };
49 
50 #endif
GRSlur::automaticCurveDirection
virtual void automaticCurveDirection(GRBowingContext *context, const ARBowing *arBow, GRSystemStartEndStruct *sse)
GRVisitor
Definition: GRVisitor.h:39
GRSlur::GRSlur
GRSlur(GRStaff *grstaff, const ARSlur *inAR)
Definition: GRSlur.h:28
GRSlur::tellPositionEnd
virtual void tellPositionEnd(GRNotationElement *caller)
GRSystemStartEndStruct
This class is used to determine when a position tag ends.
Definition: GRPositionTag.h:32
GRSlur::automaticAnchorPoints
virtual void automaticAnchorPoints(const GRBowingContext *context, const ARBowing *arBow, GRSystemStartEndStruct *sse)
GRSlur::~GRSlur
virtual ~GRSlur()
Definition: GRSlur.h:29
GRSlur::isGRSlur
virtual GRSlur * isGRSlur()
Definition: GRSlur.h:43
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRSlur::countDeferred
size_t countDeferred()
Definition: GRSlur.h:35
GRSlur::nextDeferred
GRNotationElement * nextDeferred()
Definition: GRSlur.h:34
GRBowing::fDeferredTellPostion
std::queue< GRNotationElement * > fDeferredTellPostion
Definition: GRBowing.h:39
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRSlur
Graphical representation of a slur.
Definition: GRSlur.h:24
GRBowing
Base class for ties and slurs.
Definition: GRBowing.h:36
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRSlur::GRSlur
GRSlur(GRStaff *grstaff)
Definition: GRSlur.h:27
NVRect
Definition: NVRect.h:22
GRSlur::automaticControlPoints
virtual void automaticControlPoints(const GRBowingContext *context, const ARBowing *arBow, GRSystemStartEndStruct *sse)
GRSlur::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRSlur::accept
virtual void accept(GRVisitor &visitor)
ARSlur
not yet documented
Definition: ARSlur.h:51
ARBowing
Implement bowing abstract objects (slur, ties...)
Definition: ARBowing.h:23

Guido Project Copyright © 2019 Grame-CNCM