Horizon
src
core
tools
tool_place_shape.hpp
1
#pragma once
2
#include "common/shape.hpp"
3
#include "core/tool.hpp"
4
#include <forward_list>
5
6
namespace
horizon {
7
8
class
ToolPlaceShape :
public
ToolBase {
9
public
:
10
ToolPlaceShape(IDocument *c, ToolID tid);
11
ToolResponse
begin
(
const
ToolArgs
&args)
override
;
12
ToolResponse
update
(
const
ToolArgs
&args)
override
;
13
bool
can_begin
()
override
;
14
std::set<InToolActionID> get_actions()
const override
15
{
16
using
I = InToolActionID;
17
return
{
18
I::LMB, I::CANCEL, I::RMB, I::EDIT, I::ROTATE,
19
};
20
}
21
22
protected
:
23
Shape *temp = 0;
24
std::forward_list<Shape *> shapes_placed;
25
26
void
create_shape(
const
Coordi &c);
27
};
28
}
// namespace horizon
horizon::ToolPlaceShape::update
ToolResponse update(const ToolArgs &args) override
Gets called whenever the user generated some sort of input.
horizon::ToolPlaceShape::can_begin
bool can_begin() override
horizon::ToolResponse
To signal back to the core what the Tool did, a Tool returns a ToolResponse.
Definition:
tool.hpp:42
horizon::ToolArgs
This is what a Tool receives when the user did something.
Definition:
tool.hpp:23
horizon::ToolPlaceShape::begin
ToolResponse begin(const ToolArgs &args) override
Gets called right after the constructor has finished.
Generated by
1.8.20