GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARPositionTag.h
1 #ifndef ARPositionTag_H
2 #define ARPositionTag_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 "GUIDOTypes.h" // For GuidoPos
19 
20 
21 class ARMusicalObject;
22 
27 {
28  public:
30  virtual ~ARPositionTag() {
31  if(mPositionTag) {
33  mPositionTag = 0;
34  }
38  }
39  }
40 
41  virtual ARMusicalObject * Copy() const { return 0; }
42  virtual void setPosition(GuidoPos p_pos) { pos = p_pos ; }
43  virtual GuidoPos getPosition() const { return pos; }
44  virtual GuidoPos getStartPosition() const { return pos; }
45  virtual void setStartPosition(GuidoPos p_pos) { pos = p_pos; }
46  virtual std::string getGMNName() const = 0;
47 
48  virtual GuidoPos getEndPosition() const {
49  if (mPositionTag) return mPositionTag->getPosition();
50  else return ep;
51  }
52 
53  virtual void setEndPosition(GuidoPos p_pos) {
55  else ep = p_pos;
56  }
57 
58  virtual void setCorrespondence(ARPositionTag *p_cor) {
59  mPositionTag = p_cor;
61  }
62 
63  virtual ARPositionTag * getCorrespondence() const { return mPositionTag; }
64  virtual void setParentCorrespondence(ARPositionTag *parent) { mParentCorrespondence = parent; }
65  virtual bool isEndTagClass() const { return false; }
66 
67  virtual ARMusicalObject *isARDisplayDuration() { return NULL; }
68  virtual ARMusicalObject *isARChordTag() { return NULL; }
69  virtual ARMusicalObject *isARGrace() { return NULL; }
70  virtual const ARMusicalObject *isARFeatheredBeam() const { return NULL; }
71 
72  protected:
73  GuidoPos pos;
74  GuidoPos ep;
75 
76  ARPositionTag * mPositionTag; // the correspondence.
78 };
79 
80 #endif
81 
ARPositionTag::~ARPositionTag
virtual ~ARPositionTag()
Definition: ARPositionTag.h:30
ARPositionTag::setParentCorrespondence
virtual void setParentCorrespondence(ARPositionTag *parent)
Definition: ARPositionTag.h:64
ARPositionTag::isARDisplayDuration
virtual ARMusicalObject * isARDisplayDuration()
Definition: ARPositionTag.h:67
ARPositionTag::mPositionTag
ARPositionTag * mPositionTag
Definition: ARPositionTag.h:76
ARPositionTag::getEndPosition
virtual GuidoPos getEndPosition() const
Definition: ARPositionTag.h:48
ARPositionTag::setEndPosition
virtual void setEndPosition(GuidoPos p_pos)
Definition: ARPositionTag.h:53
ARPositionTag::getCorrespondence
virtual ARPositionTag * getCorrespondence() const
Definition: ARPositionTag.h:63
ARPositionTag::isEndTagClass
virtual bool isEndTagClass() const
Definition: ARPositionTag.h:65
ARPositionTag::mParentCorrespondence
ARPositionTag * mParentCorrespondence
Definition: ARPositionTag.h:77
ARPositionTag::Copy
virtual ARMusicalObject * Copy() const
Definition: ARPositionTag.h:41
ARPositionTag::isARChordTag
virtual ARMusicalObject * isARChordTag()
Definition: ARPositionTag.h:68
ARPositionTag::isARFeatheredBeam
virtual const ARMusicalObject * isARFeatheredBeam() const
Definition: ARPositionTag.h:70
ARPositionTag::setStartPosition
virtual void setStartPosition(GuidoPos p_pos)
Definition: ARPositionTag.h:45
ARPositionTag::setCorrespondence
virtual void setCorrespondence(ARPositionTag *p_cor)
Definition: ARPositionTag.h:58
ARPositionTag::getStartPosition
virtual GuidoPos getStartPosition() const
Definition: ARPositionTag.h:44
ARPositionTag::pos
GuidoPos pos
Definition: ARPositionTag.h:73
ARPositionTag::ARPositionTag
ARPositionTag()
Definition: ARPositionTag.h:29
ARPositionTag::getGMNName
virtual std::string getGMNName() const =0
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
ARPositionTag::ep
GuidoPos ep
Definition: ARPositionTag.h:74
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
ARPositionTag::setPosition
virtual void setPosition(GuidoPos p_pos)
Definition: ARPositionTag.h:42
ARPositionTag::isARGrace
virtual ARMusicalObject * isARGrace()
Definition: ARPositionTag.h:69
ARPositionTag::getPosition
virtual GuidoPos getPosition() const
Definition: ARPositionTag.h:43

Guido Project Copyright © 2019 Grame-CNCM