Implement note decorators
This commit is contained in:
parent
4b91146c33
commit
03d1b39331
|
@ -139,7 +139,7 @@ void EditorState::enter()
|
||||||
|
|
||||||
test_menu->addPushButton(bpm_button);
|
test_menu->addPushButton(bpm_button);
|
||||||
test_menu->addCascadeButton(test_cascade_button);
|
test_menu->addCascadeButton(test_cascade_button);
|
||||||
test_menu->addPushButton(quit_button);
|
//test_menu->addPushButton(quit_button);
|
||||||
|
|
||||||
test_cascade_button->resetRect();
|
test_cascade_button->resetRect();
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#include "game/classicarrownote.h"
|
#include "game/classicarrownote.h"
|
||||||
#include "graphics/animations/classicanimationscenario.h"
|
#include "graphics/animations/classicanimationscenario.h"
|
||||||
#include "graphics/classicgraphicsmanager.h"
|
#include "graphics/classicgraphicsmanager.h"
|
||||||
#include "graphics/classicnotegraphics.h"
|
#include "graphics/notegraphics/notegraphics.h"
|
||||||
|
|
||||||
EditorContext::EditorContext(const std::shared_ptr<SelectionManager<ClassicNote>>& selection_manager,
|
EditorContext::EditorContext(const std::shared_ptr<SelectionManager<ClassicNote>>& selection_manager,
|
||||||
std::vector<std::shared_ptr<ClassicGraphicsManager>>&& graphics_managers) :
|
std::vector<std::shared_ptr<ClassicGraphicsManager>>&& graphics_managers) :
|
||||||
|
|
|
@ -60,12 +60,6 @@ public:
|
||||||
return _multiselection_enabled;
|
return _multiselection_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void apply(const std::function<void(T*)>& function)
|
|
||||||
{
|
|
||||||
for (auto& thing : _selected_things)
|
|
||||||
function(thing);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<T*> _selected_things;
|
std::vector<T*> _selected_things;
|
||||||
bool _multiselection_enabled;
|
bool _multiselection_enabled;
|
||||||
|
|
|
@ -3,18 +3,18 @@
|
||||||
#include "classicmode/classicactions.h"
|
#include "classicmode/classicactions.h"
|
||||||
|
|
||||||
#include "core/gameevent.h"
|
#include "core/gameevent.h"
|
||||||
#include "core/point.h"
|
#include "core/point.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
class ClassicNoteGraphics;
|
class NoteGraphics;
|
||||||
class ClassicAnimationScenario;
|
class ClassicAnimationScenario;
|
||||||
|
|
||||||
struct ArrowElement
|
struct ArrowElement
|
||||||
{
|
{
|
||||||
std::shared_ptr<ClassicNoteGraphics> sprite;
|
std::shared_ptr<NoteGraphics> sprite;
|
||||||
std::array<std::shared_ptr<ClassicAnimationScenario>, 5> animations;
|
std::array<std::shared_ptr<ClassicAnimationScenario>, 5> animations;
|
||||||
|
|
||||||
kku::SystemEvent::Key::Code pressed_as = kku::SystemEvent::Key::Code::Unknown;
|
kku::SystemEvent::Key::Code pressed_as = kku::SystemEvent::Key::Code::Unknown;
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class ClassicNoteGraphics;
|
class NoteGraphics;
|
||||||
|
|
||||||
class ClassicAnimationScenario
|
class ClassicAnimationScenario
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~ClassicAnimationScenario() = default;
|
virtual ~ClassicAnimationScenario() = default;
|
||||||
|
|
||||||
virtual void launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end) = 0;
|
virtual void launch(const std::shared_ptr<NoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end) = 0;
|
||||||
virtual void update(const kku::microsec& music_offset) = 0;
|
virtual void update(const kku::microsec& music_offset) = 0;
|
||||||
virtual bool isDone() const = 0;
|
virtual bool isDone() const = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::shared_ptr<ClassicNoteGraphics> _sprite;
|
std::shared_ptr<NoteGraphics> _sprite;
|
||||||
kku::microsec _time_begin;
|
kku::microsec _time_begin;
|
||||||
kku::microsec _time_end;
|
kku::microsec _time_end;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "classicdyinganimationscenario.h"
|
#include "classicdyinganimationscenario.h"
|
||||||
#include "graphics/classicnotegraphics.h"
|
#include "graphics/notegraphics/notegraphics.h"
|
||||||
|
|
||||||
void ClassicDyingAnimationScenario::launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end)
|
void ClassicDyingAnimationScenario::launch(const std::shared_ptr<NoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end)
|
||||||
{
|
{
|
||||||
_sprite = sprite;
|
_sprite = sprite;
|
||||||
_time_begin = time_begin;
|
_time_begin = time_begin;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
class ClassicDyingAnimationScenario : public ClassicAnimationScenario
|
class ClassicDyingAnimationScenario : public ClassicAnimationScenario
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec& time_end) override;
|
virtual void launch(const std::shared_ptr<NoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec& time_end) override;
|
||||||
virtual void update(const kku::microsec& music_offset) override;
|
virtual void update(const kku::microsec& music_offset) override;
|
||||||
virtual bool isDone() const override;
|
virtual bool isDone() const override;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "classicflyinganimationscenario.h"
|
#include "classicflyinganimationscenario.h"
|
||||||
#include "graphics/classicnotegraphics.h"
|
#include "graphics/notegraphics/notegraphics.h"
|
||||||
|
|
||||||
void ClassicFlyingAnimationScenario::launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end)
|
void ClassicFlyingAnimationScenario::launch(const std::shared_ptr<NoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec &time_end)
|
||||||
{
|
{
|
||||||
_sprite = sprite;
|
_sprite = sprite;
|
||||||
_time_begin = time_begin;
|
_time_begin = time_begin;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
class ClassicFlyingAnimationScenario : public ClassicAnimationScenario
|
class ClassicFlyingAnimationScenario : public ClassicAnimationScenario
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void launch(const std::shared_ptr<ClassicNoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec& time_end) override;
|
virtual void launch(const std::shared_ptr<NoteGraphics> sprite, const kku::microsec& time_begin, const kku::microsec& time_end) override;
|
||||||
virtual void update(const kku::microsec& music_offset) override;
|
virtual void update(const kku::microsec& music_offset) override;
|
||||||
virtual bool isDone() const override;
|
virtual bool isDone() const override;
|
||||||
|
|
||||||
|
|
|
@ -41,10 +41,10 @@ auto ClassicGraphicsFactory::generate(Type type) const -> SpriteData
|
||||||
return SpriteData{shape, trail, color};
|
return SpriteData{shape, trail, color};
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ClassicNoteGraphics> ClassicGraphicsFactory::createSprite(Type type) const
|
std::shared_ptr<NoteGraphics> ClassicGraphicsFactory::createSprite(Type type) const
|
||||||
{
|
{
|
||||||
const auto data = generate(type);
|
const auto data = generate(type);
|
||||||
return std::make_shared<ClassicNoteGraphics>(ClassicNoteGraphics::Init{data.shape, data.trail, data.color});
|
return std::make_shared<ClassicContentGraphics>(NoteGraphics::Init{data.shape, data.trail, data.color});
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<ClassicSelectionGraphics> ClassicGraphicsFactory::createSelection() const
|
std::shared_ptr<ClassicSelectionGraphics> ClassicGraphicsFactory::createSelection() const
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "classicmode/classicactions.h"
|
#include "classicmode/classicactions.h"
|
||||||
#include "graphics/classicnotegraphics.h"
|
#include "graphics/notegraphics/notegraphics.h"
|
||||||
#include "graphics/classicselectiongraphics.h"
|
#include "graphics/classicselectiongraphics.h"
|
||||||
#include "core/rectangle.h"
|
#include "core/rectangle.h"
|
||||||
#include "core/corefactory.h"
|
#include "core/corefactory.h"
|
||||||
|
@ -13,7 +13,7 @@ class ClassicGraphicsFactory
|
||||||
public:
|
public:
|
||||||
explicit ClassicGraphicsFactory(const std::shared_ptr<kku::CoreFactory>& core_factory);
|
explicit ClassicGraphicsFactory(const std::shared_ptr<kku::CoreFactory>& core_factory);
|
||||||
|
|
||||||
std::shared_ptr<ClassicNoteGraphics> createSprite(Type type) const;
|
std::shared_ptr<NoteGraphics> createSprite(Type type) const;
|
||||||
std::shared_ptr<ClassicSelectionGraphics> createSelection() const;
|
std::shared_ptr<ClassicSelectionGraphics> createSelection() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "core/sprite.h"
|
|
||||||
#include "core/point.h"
|
|
||||||
#include "core/color.h"
|
|
||||||
#include "core/rectangle.h"
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
class ClassicNoteGraphics
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
struct Init
|
|
||||||
{
|
|
||||||
std::shared_ptr<kku::Rectangle> shape;
|
|
||||||
std::shared_ptr<kku::Rectangle> trail;
|
|
||||||
kku::Color color;
|
|
||||||
};
|
|
||||||
|
|
||||||
ClassicNoteGraphics(ClassicNoteGraphics::Init&& init);
|
|
||||||
void reset();
|
|
||||||
void display() const;
|
|
||||||
|
|
||||||
void setPosition(const kku::Point &position);
|
|
||||||
void setTrailPosition(const kku::Point &position);
|
|
||||||
kku::Point getPosition() const;
|
|
||||||
kku::Point getTrailPosition() const;
|
|
||||||
|
|
||||||
void setColor(const kku::Color& color);
|
|
||||||
void setTrailColor(const kku::Color& color);
|
|
||||||
kku::Color getColor() const;
|
|
||||||
kku::Color getTrailColor() const;
|
|
||||||
|
|
||||||
std::shared_ptr<const kku::Rectangle> getRectangle() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
kku::Color _reset_color;
|
|
||||||
std::shared_ptr<kku::Rectangle> _shape;
|
|
||||||
std::shared_ptr<kku::Rectangle> _trail;
|
|
||||||
};
|
|
|
@ -30,7 +30,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
kku::SpriteContainer<Type, ClassicGraphicsFactory, ClassicNoteGraphics> _sprite_container;
|
kku::SpriteContainer<Type, ClassicGraphicsFactory, NoteGraphics> _sprite_container;
|
||||||
const std::shared_ptr<const ClassicGraphicsFactory> _factory;
|
const std::shared_ptr<const ClassicGraphicsFactory> _factory;
|
||||||
|
|
||||||
typedef typename std::set<ClassicNote*>::const_iterator Iterator;
|
typedef typename std::set<ClassicNote*>::const_iterator Iterator;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include "classicselectiongraphics.h"
|
#include "classicselectiongraphics.h"
|
||||||
#include "classicnotegraphics.h"
|
#include "graphics/notegraphics/notegraphics.h"
|
||||||
|
|
||||||
ClassicSelectionGraphics::ClassicSelectionGraphics(ClassicSelectionGraphics::Init&& init) :
|
ClassicSelectionGraphics::ClassicSelectionGraphics(ClassicSelectionGraphics::Init&& init) :
|
||||||
_fill_color(init.color),
|
_fill_color(init.color),
|
||||||
|
@ -19,7 +19,7 @@ void ClassicSelectionGraphics::display() const
|
||||||
_shape->display();
|
_shape->display();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicSelectionGraphics::adjustTo(const std::shared_ptr<ClassicNoteGraphics>& sprite)
|
void ClassicSelectionGraphics::adjustTo(const std::shared_ptr<NoteGraphics>& sprite)
|
||||||
{
|
{
|
||||||
_shape->setRect(sprite->getRectangle()->getRect());
|
_shape->setRect(sprite->getRectangle()->getRect());
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class ClassicNoteGraphics;
|
class NoteGraphics;
|
||||||
|
|
||||||
class ClassicSelectionGraphics
|
class ClassicSelectionGraphics
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@ public:
|
||||||
void reset();
|
void reset();
|
||||||
void display() const;
|
void display() const;
|
||||||
|
|
||||||
void adjustTo(const std::shared_ptr<ClassicNoteGraphics>& sprite);
|
void adjustTo(const std::shared_ptr<NoteGraphics> &sprite);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
kku::Color _fill_color;
|
kku::Color _fill_color;
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
virtual void draw(const ClassicArrowNote * const note) const override;
|
virtual void draw(const ClassicArrowNote * const note) const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
kku::SpriteContainer<Type, ClassicGraphicsFactory, ClassicNoteGraphics> _sprite_container;
|
kku::SpriteContainer<Type, ClassicGraphicsFactory, NoteGraphics> _sprite_container;
|
||||||
const std::shared_ptr<const ClassicGraphicsFactory> _factory;
|
const std::shared_ptr<const ClassicGraphicsFactory> _factory;
|
||||||
|
|
||||||
typedef typename std::set<ClassicNote*>::const_iterator Iterator;
|
typedef typename std::set<ClassicNote*>::const_iterator Iterator;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "classicnotegraphics.h"
|
#include "graphics/notegraphics/notecontentgraphics.h"
|
||||||
|
|
||||||
ClassicNoteGraphics::ClassicNoteGraphics(ClassicNoteGraphics::Init&& init) :
|
NoteContentGraphics::NoteContentGraphics(NoteContentGraphics::Init&& init) :
|
||||||
_reset_color(init.color),
|
_reset_color(init.color),
|
||||||
_shape(init.shape),
|
_shape(init.shape),
|
||||||
_trail(init.trail)
|
_trail(init.trail)
|
||||||
|
@ -9,7 +9,7 @@ ClassicNoteGraphics::ClassicNoteGraphics(ClassicNoteGraphics::Init&& init) :
|
||||||
_trail->setColor(init.color);
|
_trail->setColor(init.color);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::reset()
|
void NoteContentGraphics::reset()
|
||||||
{
|
{
|
||||||
_shape->setPosition(kku::Point{0, 0});
|
_shape->setPosition(kku::Point{0, 0});
|
||||||
_trail->setPosition(kku::Point{0, 0});
|
_trail->setPosition(kku::Point{0, 0});
|
||||||
|
@ -18,53 +18,53 @@ void ClassicNoteGraphics::reset()
|
||||||
_trail->setColor(_reset_color);
|
_trail->setColor(_reset_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::setPosition(const kku::Point& position)
|
void NoteContentGraphics::setPosition(const kku::Point& position)
|
||||||
{
|
{
|
||||||
_shape->setPosition(position);
|
_shape->setPosition(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::setTrailPosition(const kku::Point &position)
|
void NoteContentGraphics::setTrailPosition(const kku::Point &position)
|
||||||
{
|
{
|
||||||
_trail->setPosition(position);
|
_trail->setPosition(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
kku::Point ClassicNoteGraphics::getPosition() const
|
kku::Point NoteContentGraphics::getPosition() const
|
||||||
{
|
{
|
||||||
return _shape->getPosition();
|
return _shape->getPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
kku::Point ClassicNoteGraphics::getTrailPosition() const
|
kku::Point NoteContentGraphics::getTrailPosition() const
|
||||||
{
|
{
|
||||||
return _trail->getPosition();
|
return _trail->getPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::setColor(const kku::Color& color)
|
void NoteContentGraphics::setColor(const kku::Color& color)
|
||||||
{
|
{
|
||||||
_shape->setColor(color);
|
_shape->setColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::setTrailColor(const kku::Color& color)
|
void NoteContentGraphics::setTrailColor(const kku::Color& color)
|
||||||
{
|
{
|
||||||
_trail->setColor(color);
|
_trail->setColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
kku::Color ClassicNoteGraphics::getColor() const
|
kku::Color NoteContentGraphics::getColor() const
|
||||||
{
|
{
|
||||||
return _shape->getColor();
|
return _shape->getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
kku::Color ClassicNoteGraphics::getTrailColor() const
|
kku::Color NoteContentGraphics::getTrailColor() const
|
||||||
{
|
{
|
||||||
return _trail->getColor();
|
return _trail->getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicNoteGraphics::display() const
|
void NoteContentGraphics::display() const
|
||||||
{
|
{
|
||||||
_shape->display();
|
_shape->display();
|
||||||
_trail->display();
|
_trail->display();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<const kku::Rectangle> ClassicNoteGraphics::getRectangle() const
|
std::shared_ptr<const kku::Rectangle> NoteContentGraphics::getRectangle() const
|
||||||
{
|
{
|
||||||
return _shape;
|
return _shape;
|
||||||
}
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "notegraphics.h"
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class NoteContentGraphics : public NoteGraphics
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
struct Init
|
||||||
|
{
|
||||||
|
std::shared_ptr<kku::Rectangle> shape;
|
||||||
|
std::shared_ptr<kku::Rectangle> trail;
|
||||||
|
kku::Color color;
|
||||||
|
};
|
||||||
|
|
||||||
|
explicit NoteContentGraphics(NoteContentGraphics::Init&& init);
|
||||||
|
virtual void reset() override;
|
||||||
|
virtual void display() const override;
|
||||||
|
|
||||||
|
virtual void setPosition(const kku::Point &position) override;
|
||||||
|
virtual void setTrailPosition(const kku::Point &position) override;
|
||||||
|
virtual kku::Point getPosition() const override;
|
||||||
|
virtual kku::Point getTrailPosition() const override;
|
||||||
|
|
||||||
|
virtual void setColor(const kku::Color& color) override;
|
||||||
|
virtual void setTrailColor(const kku::Color& color) override;
|
||||||
|
virtual kku::Color getColor() const override;
|
||||||
|
virtual kku::Color getTrailColor() const override;
|
||||||
|
|
||||||
|
virtual std::shared_ptr<const kku::Rectangle> getRectangle() const override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
kku::Color _reset_color;
|
||||||
|
std::shared_ptr<kku::Rectangle> _shape;
|
||||||
|
std::shared_ptr<kku::Rectangle> _trail;
|
||||||
|
};
|
|
@ -0,0 +1,71 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "notegraphics.h"
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class NoteDecoratorGraphics : public NoteGraphics
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~NoteDecoratorGraphics() override = 0;
|
||||||
|
explicit NoteDecoratorGraphics(const std::shared_ptr<NoteGraphics>& decorated_graphics)
|
||||||
|
: _decorated_graphics(decorated_graphics)
|
||||||
|
{}
|
||||||
|
|
||||||
|
virtual void reset() override
|
||||||
|
{
|
||||||
|
_decorated_graphics->reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void display() const override
|
||||||
|
{
|
||||||
|
_decorated_graphics->display();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setPosition(const kku::Point &position) override
|
||||||
|
{
|
||||||
|
_decorated_graphics->setPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setTrailPosition(const kku::Point &position) override
|
||||||
|
{
|
||||||
|
_decorated_graphics->setTrailPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual kku::Point getPosition() const override
|
||||||
|
{
|
||||||
|
return _decorated_graphics->getPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual kku::Point getTrailPosition() const override
|
||||||
|
{
|
||||||
|
return _decorated_graphics->getTrailPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setColor(const kku::Color& color) override
|
||||||
|
{
|
||||||
|
_decorated_graphics->setColor(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setTrailColor(const kku::Color& color) override
|
||||||
|
{
|
||||||
|
_decorated_graphics->setTrailColor(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual kku::Color getColor() const override
|
||||||
|
{
|
||||||
|
return _decorated_graphics->getColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual kku::Color getTrailColor() const override
|
||||||
|
{
|
||||||
|
return _decorated_graphics->getTrailColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual std::shared_ptr<const kku::Rectangle> getRectangle() const override
|
||||||
|
{
|
||||||
|
return _decorated_graphics->getRectangle();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::shared_ptr<NoteGraphics> _decorated_graphics;
|
||||||
|
};
|
|
@ -0,0 +1,27 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/point.h"
|
||||||
|
#include "core/color.h"
|
||||||
|
#include "core/rectangle.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class NoteGraphics
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~NoteGraphics() = default;
|
||||||
|
virtual void reset() = 0;
|
||||||
|
virtual void display() const = 0;
|
||||||
|
|
||||||
|
virtual void setPosition(const kku::Point& position) = 0;
|
||||||
|
virtual void setTrailPosition(const kku::Point& position) = 0;
|
||||||
|
virtual kku::Point getPosition() const = 0;
|
||||||
|
virtual kku::Point getTrailPosition() const = 0;
|
||||||
|
|
||||||
|
virtual void setColor(const kku::Color& color) = 0;
|
||||||
|
virtual void setTrailColor(const kku::Color& color) = 0;
|
||||||
|
virtual kku::Color getColor() const = 0;
|
||||||
|
virtual kku::Color getTrailColor() const = 0;
|
||||||
|
|
||||||
|
virtual std::shared_ptr<const kku::Rectangle> getRectangle() const = 0;
|
||||||
|
};
|
Loading…
Reference in New Issue