Files
Work/guitar/requirements.hpp
2024-08-07 09:16:27 -04:00

46 lines
956 B
C++

#ifndef _GUITAR_REQUIREMENTS_HPP_
#define _GUITAR_REQUIREMENTS_HPP_
#ifndef _COMMON_ARRAY_HPP_
#include <common/array.hpp>
#endif
#ifndef _GUITAR_ORDERING_HPP_
#include <guitar/ordering.hpp>
#endif
#ifndef _GUITAR_NOTEPATH_HPP_
#include <guitar/notepath.hpp>
#endif
#ifndef _GUITAR_REQUIREMENT_HPP_
#include <guitar/requirement.hpp>
#endif
class Requirements : public Array<Requirement>
{
public:
Requirements(void);
Requirements(Block<Note> &notes);
virtual ~Requirements();
bool satisfyRequirements(NotePaths &notePaths);
void setRequirements(Block<Note> &notes);
private:
bool satisfyRequirement(NotePath &notePath);
bool haveRequirement(const FrettedNote &frettedNote);
bool isPositionAvailable(const FrettedNote &frettedNote,PtrRequirement &requirement);
};
inline
Requirements::Requirements(void)
{
}
inline
Requirements::Requirements(Block<Note> &notes)
{
setRequirements(notes);
}
inline
Requirements::~Requirements()
{
}
#endif