GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRSystemSlice.h
1 #ifndef GRSystemSlice_H
2 #define GRSystemSlice_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 
19 #include <vector>
20 
21 #include "ARBar.h"
22 #include "GREvent.h"
23 
24 template <class T> class KF_IVector;
26 
27 class GRSystem;
28 class GRStaffManager;
32 class GRGlue;
33 class GRSliceHeight;
34 class GRFinishBar;
35 class GRDoubleBar;
36 class GRRepeatBegin;
37 class GRRepeatEnd;
38 class TCollisions;
39 
55 class GRSystemSlice : public GREvent
56 {
57  friend class GRStaffManager;
58  friend class GRSystem;
59  friend class GRSliceHeight;
60 
61 public:
63 
64  GRSystemSlice(GRStaffManager * stmgr, const TYPE_TIMEPOSITION & tp);
65  virtual ~GRSystemSlice();
66 
67  virtual void tellPosition(GObject * caller, const NVPoint & newPosition);
68  virtual void setHPosition( GCoord nx);
69  virtual void OnDraw( VGDevice & hdc ) const;
70  virtual void GetMap( GuidoElementSelector sel, MapCollector& f, MapInfos& infos ) const;
71  virtual void updateBoundingBox();
72  virtual void print(std::ostream& os) const;
73 
74  void checkCollisions (TCollisions& state);
75 
76  void Finish();
77  void FinishSlice();
78  GRSystem * getGRSystem() const { return mGrSystem; }
79  GRGlue * getStartGlue() const { return mStartGlue; }
80  GRGlue * getEndGlue() const { return mEndGlue; }
81  int getStaffNumber( const GRStaff * staff ) const;
82  int getNumber() const { return mNumber; }
83  const StaffVector * getStaves() const { return mStaffs; }
84  GRBar* getBarAt (const TYPE_TIMEPOSITION& pos) const;
85  const GRBar* getBar () const;
86 
87  void addSystemTag( GRNotationElement * tg );
88  void addStaff( GRStaff * newStaff, int num);
89  void addBar ( GRBar * mybar, const ARBar::TRanges& ranges, GRStaff * grstaff);
90  void addDoubleBar ( GRDoubleBar * mybar,const ARBar::TRanges& ranges, GRStaff * grstaff);
91  void addFinishBar ( GRFinishBar * mybar,const ARBar::TRanges& ranges, GRStaff * grstaff);
92  void addRepeatBegin ( GRRepeatBegin * mybar,const ARBar::TRanges& ranges, GRStaff * grstaff);
93  void addRepeatEnd ( GRRepeatEnd * mybar,const ARBar::TRanges& ranges, GRStaff * grstaff);
95 
96  void setNumber(int num ) { mNumber = num; }
97  bool hasSystemBars( ) { return mHasSystemBars; }
98 
99 protected:
100  // this variable holds the current begin
101  // sff: this space would be needed, if the
102  // slice would be the first of a potential line of music.
105 
109 
110  int mNumber;
111 
114 
117  bool mHasSystemBars; // Totally useless for now, I guess
118  float mFirstEvXPosition; // used by the first slice to split the mapping consistently to the next systems
119 };
120 
121 std::ostream& operator<< (std::ostream& os, const GRSystemSlice& slice);
122 std::ostream& operator<< (std::ostream& os, const GRSystemSlice* slice);
123 
124 
125 #endif
GRBar
Measure bar.
Definition: GRBar.h:29
GRSystemSlice::~GRSystemSlice
virtual ~GRSystemSlice()
GRSystemSlice::mStartGlue
GRGlue * mStartGlue
Definition: GRSystemSlice.h:112
GRSystemSlice::getNumber
int getNumber() const
Definition: GRSystemSlice.h:82
GRSystemSlice::GRSystemSlice
GRSystemSlice(GRStaffManager *stmgr, const TYPE_TIMEPOSITION &tp)
MapCollector
an abstract class to be provided by clients to collect mappings
Definition: GUIDOScoreMap.h:109
GRSystemSlice::hasSystemBars
bool hasSystemBars()
Definition: GRSystemSlice.h:97
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRSystemSlice::mFirstEvXPosition
float mFirstEvXPosition
Definition: GRSystemSlice.h:118
TCollisions
Definition: TCollisions.h:53
GRSystemSlice::getEndGlue
GRGlue * getEndGlue() const
Definition: GRSystemSlice.h:80
GRStaffManager
This class manages the staffs of a system.
Definition: GRStaffManager.h:160
GRSystemSlice::getBarAt
GRBar * getBarAt(const TYPE_TIMEPOSITION &pos) const
GRSystemSlice::getStartGlue
GRGlue * getStartGlue() const
Definition: GRSystemSlice.h:79
Fraction
Numerator and denominator.
Definition: Fraction.h:23
GRSystemSlice::print
virtual void print(std::ostream &os) const
GRSystemSlice::mNumber
int mNumber
Definition: GRSystemSlice.h:110
GRSystemSlice::addStaff
void addStaff(GRStaff *newStaff, int num)
GRSliceHeight
This class manages the Height of Slices.
Definition: GRSliceHeight.h:32
GRBeginSpaceForceFunction2
GRBeginSpaceForceFunction2 is an derived version of GRSpaceForceFunction2.
Definition: GRBeginSpaceForceFunction2.h:30
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRRepeatEnd
The left facing repeat bar sign.
Definition: GRRepeatEnd.h:31
GREvent
Graphical representation for an event (= has duration).
Definition: GREvent.h:61
GRSystemSlice::mStaffs
StaffVector * mStaffs
Definition: GRSystemSlice.h:106
NVPoint
Definition: NVPoint.h:20
ARBar::TRanges
std::vector< std::pair< int, int > > TRanges
Definition: ARBar.h:54
GRSystemSlice::getBar
const GRBar * getBar() const
MapInfos
A class to propagate device related information.
Definition: GObject.h:42
GRSystemSlice::mBeginForceFunc
GRBeginSpaceForceFunction2 * mBeginForceFunc
Definition: GRSystemSlice.h:103
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRSystemSlice::addSystemTag
void addSystemTag(GRNotationElement *tg)
GRSpaceForceFunction2
This class realizes the second implementation of the space-force-function.
Definition: GRSpringForceIndex.h:99
GRSystemSlice::mEndGlue
GRGlue * mEndGlue
Definition: GRSystemSlice.h:113
GRSystemSlice::addPossibleBreakState
void addPossibleBreakState(GRPossibleBreakState *in)
GRSystemSlice::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &newPosition)
GRRepeatBegin
The right facing repeat bar sign.
Definition: GRRepeatBegin.h:27
GRSystemSlice::mHasSystemBars
bool mHasSystemBars
Definition: GRSystemSlice.h:117
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRSystemSlice::setNumber
void setNumber(int num)
Definition: GRSystemSlice.h:96
GRSystemSlice::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRSystemSlice::mForceFunction
GRSpaceForceFunction2 * mForceFunction
Definition: GRSystemSlice.h:104
KF_IVector
Definition: GRPossibleBreakState.h:20
GRSystemSlice::getGRSystem
GRSystem * getGRSystem() const
Definition: GRSystemSlice.h:78
GRSystemSlice::mStartSpringID
int mStartSpringID
Definition: GRSystemSlice.h:115
GRGlue
not yet documented
Definition: GRGlue.h:25
GRSystemSlice::addRepeatEnd
void addRepeatEnd(GRRepeatEnd *mybar, const ARBar::TRanges &ranges, GRStaff *grstaff)
GRSystemSlice
Form the basis for the optimum system-break-algorithm.
Definition: GRSystemSlice.h:55
GuidoElementSelector
GuidoElementSelector
Definition: GUIDOScoreMap.h:40
GRSystemSlice::getStaves
const StaffVector * getStaves() const
Definition: GRSystemSlice.h:83
GRSystem
Manages a number of staffs and has a given start and end timeposition. GRSystem is the grafical repre...
Definition: GRSystem.h:52
GRSystemSlice::mEndSpringID
int mEndSpringID
Definition: GRSystemSlice.h:116
GRSystemSlice::updateBoundingBox
virtual void updateBoundingBox()
GRFinishBar
not yet documented
Definition: GRFinishBar.h:25
operator<<
std::ostream & operator<<(std::ostream &os, const svgendl &eol)
GRSystemSlice::addBar
void addBar(GRBar *mybar, const ARBar::TRanges &ranges, GRStaff *grstaff)
GRDoubleBar
The double barline.
Definition: GRDoubleBar.h:26
GRSystemSlice::addFinishBar
void addFinishBar(GRFinishBar *mybar, const ARBar::TRanges &ranges, GRStaff *grstaff)
GRSystemSlice::GetMap
virtual void GetMap(GuidoElementSelector sel, MapCollector &f, MapInfos &infos) const
GRSystemSlice::Finish
void Finish()
GRSystemSlice::FinishSlice
void FinishSlice()
GRSystemSlice::mPossibleBreakState
GRPossibleBreakState * mPossibleBreakState
Definition: GRSystemSlice.h:108
GRNotationElement::getStaffNumber
virtual int getStaffNumber() const
GRSystemSlice::setHPosition
virtual void setHPosition(GCoord nx)
GRSystemSlice::mGrSystem
GRSystem * mGrSystem
Definition: GRSystemSlice.h:107
GRSystemSlice::addDoubleBar
void addDoubleBar(GRDoubleBar *mybar, const ARBar::TRanges &ranges, GRStaff *grstaff)
GRPossibleBreakState
GRPossibleBreakState saves the states of all structures that are important, if it is decided by the B...
Definition: GRPossibleBreakState.h:35
GRSystemSlice::checkCollisions
void checkCollisions(TCollisions &state)
GRSystemSlice::addRepeatBegin
void addRepeatBegin(GRRepeatBegin *mybar, const ARBar::TRanges &ranges, GRStaff *grstaff)

Guido Project Copyright © 2019 Grame-CNCM