GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRVoice.h
1 #ifndef GRVoice_H
2 #define GRVoice_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 "ARMusicalVoiceState.h"
19 #include "GRARCompositeNotationElement.h"
20 
21 template <class T> class KF_IPointerList;
22 template <class T> class KF_IVector;
23 
24 class ARMusicalVoice;
25 class GRSystem;
26 class GRVoice;
27 class GRStaffManager;
28 class GRVoiceManager;
29 class GRRod;
30 class GRSpring;
31 class GRPage;
33 class GRSpacingMatrix;
34 
36 {
37  friend class GRVoice;
38  private:
39  GRSystem * grsystem;
40  GuidoPos pos;
41 };
42 
43 // typedef KF_Vector<GuidoPos> SystemOffsetVector;
46 
50 {
51  friend class GRVoiceManager;
52 
53  public:
54  GRVoice( const ARMusicalObject * arobj, bool ownsar );
55  virtual ~GRVoice();
56 
57  GRPage * getPageNum(int num,int denom); // must match an existing element date.
58  GRPage * getPageForTimePos( int num, int denom ) const;
59  GRRod * getLastRod() const { return lastrod; }
60  GRRod * getFirstRod() const { return firstrod; }
61 
62  virtual GuidoPos AddTail(GRNotationElement * el);
63 
64  int updateMSCMatrix(GRSpaceForceFunction2 * sff, GRSpacingMatrix * spm, GRStaffManager * stfmgr, ISpringVector * sprvect, int startspr, int endspr);
65  int createNewRods(GRStaffManager * stfmgr, int &startspr, int & endspr, float optForce);
66 
67  virtual void rememberNLinePosition(const TYPE_TIMEPOSITION & tp);
68  virtual void setPossibleNLinePosition(const TYPE_TIMEPOSITION & tp);
69  virtual void accept (GRVisitor& visitor);
70 
71  virtual void OnDraw( VGDevice & ) const {}
72 
73  const ARMusicalVoice * getARMusicalVoice() const;
74  void startNewSystem(GRSystem * grsystem);
75 
76  protected:
77  GuidoPos getSystemStartPos(GRSystem * grsystem);
78 
80  bool mIsNewLine;
81  GuidoPos lastsprpos;
85  GuidoPos nlinepos;
87 };
88 
89 #endif
ARMusicalVoice
The class for GUIDO sequence, list of timepositions of events of a stream.
Definition: ARMusicalVoice.h:76
GRVoice::getPageForTimePos
GRPage * getPageForTimePos(int num, int denom) const
GRVoice::startNewSystem
void startNewSystem(GRSystem *grsystem)
GRVoice::rememberNLinePosition
virtual void rememberNLinePosition(const TYPE_TIMEPOSITION &tp)
GRVisitor
Definition: GRVisitor.h:39
GRVoice::getLastRod
GRRod * getLastRod() const
Definition: GRVoice.h:59
GRVoice::getPageNum
GRPage * getPageNum(int num, int denom)
GRVoice::createNewRods
int createNewRods(GRStaffManager *stfmgr, int &startspr, int &endspr, float optForce)
GRVoice::lastsprpos
GuidoPos lastsprpos
Definition: GRVoice.h:81
GRVoice::nlinepos
GuidoPos nlinepos
Definition: GRVoice.h:85
GRVoice::updateMSCMatrix
int updateMSCMatrix(GRSpaceForceFunction2 *sff, GRSpacingMatrix *spm, GRStaffManager *stfmgr, ISpringVector *sprvect, int startspr, int endspr)
GRVoice::getFirstRod
GRRod * getFirstRod() const
Definition: GRVoice.h:60
GRVoice::setPossibleNLinePosition
virtual void setPossibleNLinePosition(const TYPE_TIMEPOSITION &tp)
GRPage
Graphical representation of a score page. Contains one or more instances of class GRSystem.
Definition: GRPage.h:40
GRSpring
Used with rods and space fore functions.
Definition: GRSpring.h:38
GRStaffManager
This class manages the staffs of a system.
Definition: GRStaffManager.h:160
Fraction
Numerator and denominator.
Definition: Fraction.h:23
GRVoice::GRVoice
GRVoice(const ARMusicalObject *arobj, bool ownsar)
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRVoice::OnDraw
virtual void OnDraw(VGDevice &) const
Definition: GRVoice.h:71
GRRod
Used with springs and space-force functions.
Definition: GRRod.h:33
GRVoiceManager
not yet documented
Definition: GRVoiceManager.h:60
GRVoice::firstrod
GRRod * firstrod
Definition: GRVoice.h:83
GRVoice::firstPositionInLine
GuidoPos firstPositionInLine
Definition: GRVoice.h:79
KF_IPointerList
Definition: ARMusicalVoiceState.h:33
GRSpaceForceFunction2
This class realizes the second implementation of the space-force-function.
Definition: GRSpringForceIndex.h:99
GRSpacingMatrix
not yet documented
Definition: GRSpacingMatrix.h:31
GRVoice
Graphical representation of a voice.
Definition: GRVoice.h:49
GRVoice::mSysNodeList
SysNodeList * mSysNodeList
Definition: GRVoice.h:86
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRVoice::lastrod
GRRod * lastrod
Definition: GRVoice.h:82
SystemNode
Definition: GRVoice.h:35
KF_IVector
Definition: GRPossibleBreakState.h:20
GRVoice::~GRVoice
virtual ~GRVoice()
GRVoice::getARMusicalVoice
const ARMusicalVoice * getARMusicalVoice() const
GRVoice::nlinetp
TYPE_TIMEPOSITION nlinetp
Definition: GRVoice.h:84
GRVoice::AddTail
virtual GuidoPos AddTail(GRNotationElement *el)
GRSystem
Manages a number of staffs and has a given start and end timeposition. GRSystem is the grafical repre...
Definition: GRSystem.h:52
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
GRVoice::accept
virtual void accept(GRVisitor &visitor)
GRARCompositeNotationElement
not yet documented
Definition: GRARCompositeNotationElement.h:25
GRVoice::getSystemStartPos
GuidoPos getSystemStartPos(GRSystem *grsystem)
GRVoice::mIsNewLine
bool mIsNewLine
Definition: GRVoice.h:80

Guido Project Copyright © 2019 Grame-CNCM