GUIDOLib  1.7.7
Guido Engine Internal Documentation
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
GRBar.h
1 #ifndef GRBar_H
2 #define GRBar_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 <vector>
19 
20 #include "ARBar.h"
21 #include "GRTagARNotationElement.h"
22 
23 class GRStaff;
24 class GRPage;
25 class GRFinishBar;
26 
30 {
31  public:
32  typedef std::vector<std::pair<float, float> > TRanges;
33 
34  GRBar( const ARBar * p_arbar, GRStaff * inStaff, const TYPE_TIMEPOSITION & inTimePos, float propRender);
35  GRBar( const ARBar * p_arbar, GRSystem * p_grsystem, GRStaff * inStaff, const TYPE_TIMEPOSITION & inTimePos, float propRender);
36 
37  virtual ~GRBar();
38 
39  bool operator == (const GRBar & bar) const;
40  bool operator == (const GRTag & tag) const;
41 
42  void tellPosition( GObject * caller, const NVPoint & newPosition);
43  void setHPosition( float nx);
44 
45  void setPosFrom( float posy );
46  void setPosTo( float posy );
47 
48  virtual void setGRStaff(GRStaff * pstaff);
49  virtual void OnDraw( VGDevice & hdc ) const;
50  virtual void DrawWithGlyphs( VGDevice & hdc ) const;
51  virtual void DrawWithLines( VGDevice & hdc ) const;
52  virtual void GetMap( GuidoElementSelector sel, MapCollector& f, MapInfos& infos ) const;
53  virtual bool checkCollisionWith() const { return true; }
54  virtual void accept (GRVisitor& visitor);
55  virtual const GRBar * isGRBar() const { return this; }
56  virtual const GRFinishBar* isFinishBar() const { return 0; };
57 
58  virtual const NVPoint & getReferencePosition() const { return sRefPos; }
59 
60  const ARBar * getARBar() const;
61  const ARBar::TRanges getRanges() const { return getARBar()->getRanges(); }
62  void setRanges(const TRanges& r) { fRanges = r; }
63 
64  static void reset() { fCurrentPage = 0; fCurrentSystem = 0; } // required for a new score
65 
66  protected:
67  void DisplayMeasureNum( VGDevice & hdc ) const;
68  bool isSystemSlice() const;
69  float getXPos(float staffSize) const;
70  float getY1 (float top) const;
71  float getY2 (float y1, float bottom) const;
72 
73  static NVPoint sRefPos;
74 
76  float mDx;
77  float mDy;
78  float mStaffRatio;
81 
82  private:
83  static GRPage* fCurrentPage;
84  static GRSystem* fCurrentSystem;
85  void InitGRBar( const TYPE_TIMEPOSITION & inTimePos, const GRStaff * inStaff );
86 };
87 
88 #endif
GRBar::GetMap
virtual void GetMap(GuidoElementSelector sel, MapCollector &f, MapInfos &infos) const
GRBar
Measure bar.
Definition: GRBar.h:29
GRBar::getY1
float getY1(float top) const
GRBar::getRanges
const ARBar::TRanges getRanges() const
Definition: GRBar.h:61
GRVisitor
Definition: GRVisitor.h:39
MapCollector
an abstract class to be provided by clients to collect mappings
Definition: GUIDOScoreMap.h:109
ARBar
Bar tag.
Definition: ARBar.h:51
GRBar::mProportionalRender
float mProportionalRender
Definition: GRBar.h:79
GRBar::tellPosition
void tellPosition(GObject *caller, const NVPoint &newPosition)
GRPage
Graphical representation of a score page. Contains one or more instances of class GRSystem.
Definition: GRPage.h:40
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRBar::setPosFrom
void setPosFrom(float posy)
GRBar::getY2
float getY2(float y1, float bottom) const
Fraction
Numerator and denominator.
Definition: Fraction.h:23
GRBar::fRanges
TRanges fRanges
Definition: GRBar.h:80
GRBar::~GRBar
virtual ~GRBar()
GRBar::accept
virtual void accept(GRVisitor &visitor)
NVPoint
Definition: NVPoint.h:20
GRBar::fLinesCount
int fLinesCount
Definition: GRBar.h:75
GRBar::isGRBar
virtual const GRBar * isGRBar() const
Definition: GRBar.h:55
ARBar::TRanges
std::vector< std::pair< int, int > > TRanges
Definition: ARBar.h:54
GRBar::setPosTo
void setPosTo(float posy)
GRBar::checkCollisionWith
virtual bool checkCollisionWith() const
Definition: GRBar.h:53
GRBar::getXPos
float getXPos(float staffSize) const
GRBar::getReferencePosition
virtual const NVPoint & getReferencePosition() const
Retrieves the Symbol-reference-position with respect to the GUIDO-reference-position.
Definition: GRBar.h:58
GRBar::DisplayMeasureNum
void DisplayMeasureNum(VGDevice &hdc) const
MapInfos
A class to propagate device related information.
Definition: GObject.h:42
GRBar::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRBar::mDx
float mDx
Definition: GRBar.h:76
GRBar::setGRStaff
virtual void setGRStaff(GRStaff *pstaff)
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRBar::getARBar
const ARBar * getARBar() const
GRBar::DrawWithGlyphs
virtual void DrawWithGlyphs(VGDevice &hdc) const
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRBar::operator==
bool operator==(const GRBar &bar) const
GRBar::setHPosition
void setHPosition(float nx)
GRTagARNotationElement
GRTagARNotationElement.
Definition: GRTagARNotationElement.h:26
GRBar::isFinishBar
virtual const GRFinishBar * isFinishBar() const
Definition: GRBar.h:56
GRBar::DrawWithLines
virtual void DrawWithLines(VGDevice &hdc) const
GRTag
The GRTag class is the base class for all GUIDO tags.
Definition: GRTag.h:37
GuidoElementSelector
GuidoElementSelector
Definition: GUIDOScoreMap.h:40
GRBar::mStaffRatio
float mStaffRatio
Definition: GRBar.h:78
GRBar::reset
static void reset()
Definition: GRBar.h:64
GRSystem
Manages a number of staffs and has a given start and end timeposition. GRSystem is the grafical repre...
Definition: GRSystem.h:52
GRBar::sRefPos
static NVPoint sRefPos
Definition: GRBar.h:73
GRFinishBar
not yet documented
Definition: GRFinishBar.h:25
GRBar::mDy
float mDy
Definition: GRBar.h:77
GRBar::TRanges
std::vector< std::pair< float, float > > TRanges
Definition: GRBar.h:32
ARBar::getRanges
const TRanges & getRanges() const
Definition: ARBar.h:82
GRBar::setRanges
void setRanges(const TRanges &r)
Definition: GRBar.h:62
GRBar::isSystemSlice
bool isSystemSlice() const
GRBar::GRBar
GRBar(const ARBar *p_arbar, GRStaff *inStaff, const TYPE_TIMEPOSITION &inTimePos, float propRender)

Guido Project Copyright © 2019 Grame-CNCM