Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
spray-tool.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
#ifndef INKSCAPE_UI_TOOLS_SPRAY_TOOl_H
3
#define INKSCAPE_UI_TOOLS_SPRAY_TOOl_H
4
5
/*
6
* Spray Tool
7
*
8
* Authors:
9
* Pierre-Antoine MARC
10
* Pierre CACLIN
11
* Aurel-Aimé MARMION
12
* Julien LERAY
13
* Benoît LAVORATA
14
* Vincent MONTAGNE
15
* Pierre BARBRY-BLOT
16
* Jabiertxo ARRAIZA
17
* Adrian Boguszewski
18
*
19
* Copyright (C) 2009 authors
20
*
21
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
22
*/
23
24
#include <
2geom/pathvector.h
>
25
26
#include "
display/control/canvas-item-ptr.h
"
27
#include "
object/object-set.h
"
28
#include "
ui/tools/tool-base.h
"
29
30
namespace
Inkscape
{
class
CanvasItemBpath; }
31
32
#define TC_MIN_PRESSURE 0.0
33
#define TC_MAX_PRESSURE 1.0
34
#define TC_DEFAULT_PRESSURE 0.35
35
36
namespace
Inkscape::UI::Tools
{
37
38
enum
39
{
40
SPRAY_MODE_COPY
,
41
SPRAY_MODE_CLONE
,
42
SPRAY_MODE_SINGLE_PATH
,
43
SPRAY_MODE_ERASER
,
44
SPRAY_OPTION
,
45
};
46
47
class
SprayTool
:
public
ToolBase
48
{
49
public
:
50
SprayTool
(
SPDesktop
*
desktop
);
51
~SprayTool
()
override
;
52
53
/* extended input data */
54
double
pressure
;
55
56
/* attributes */
57
bool
usepressurewidth
=
false
;
58
bool
usepressurepopulation
=
false
;;
59
bool
usepressurescale
=
false
;
60
bool
usetilt
=
false
;
61
bool
usetext
=
false
;
62
63
double
width
= 0.2;
64
double
ratio
= 0.0;
65
double
tilt
= 0.0;
66
double
rotation_variation
= 0.0;
67
double
population
= 0.0;
68
double
scale_variation
= 1.0;
69
double
scale
= 1.0;
70
double
mean
= 0.2;
71
double
standard_deviation
= 0.2;
72
73
int
distrib
= 1;
74
75
int
mode
= 0;
76
77
bool
is_drawing
=
false
;
78
79
bool
is_dilating
=
false
;
80
bool
has_dilated
=
false
;
81
Geom::Point
last_push
;
82
CanvasItemPtr<CanvasItemBpath>
dilate_area
;
83
CanvasItemPtr<CanvasItemBpath>
shapes_area
;
84
std::vector<SPItem*>
items
;
85
bool
no_overlap
=
false
;
86
bool
picker
=
false
;
87
bool
pick_center
=
false
;
88
bool
pick_inverse_value
=
false
;
89
bool
pick_fill
=
false
;
90
bool
pick_stroke
=
false
;
91
bool
pick_no_overlap
=
false
;
92
bool
over_transparent
=
true
;
93
bool
over_no_transparent
=
true
;
94
double
offset
= 0.0;
95
int
pick
= 0;
96
bool
do_trace
=
false
;
97
bool
pick_to_size
=
false
;
98
bool
pick_to_presence
=
false
;
99
bool
pick_to_color
=
false
;
100
bool
pick_to_opacity
=
false
;
101
bool
single_click
=
false
;
102
double
single_scale
= 0;
103
double
single_angle
= 0;
104
double
last_pressure
= 0;
105
bool
invert_picked
=
false
;
106
double
gamma_picked
= 0.0;
107
double
rand_picked
= 0.0;
108
Geom::PathVector
shapes
;
109
110
sigc::scoped_connection
release_connection
;
111
112
void
set
(
Preferences::Entry
const
&val)
override
;
113
virtual
void
setCloneTilerPrefs
();
114
bool
root_handler
(
CanvasEvent
const
&event)
override
;
115
void
update_cursor
(
bool
/*with_shift*/
);
116
117
ObjectSet
*
objectSet
() {
return
&
object_set
; }
118
SPItem
*
single_path_output
=
nullptr
;
119
120
private
:
121
ObjectSet
object_set
;
122
};
123
124
}
// namespace Inkscape::UI::Tools
125
126
#endif
// INKSCAPE_UI_TOOLS_SPRAY_TOOl_H
127
128
/*
129
Local Variables:
130
mode:c++
131
c-file-style:"stroustrup"
132
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
133
indent-tabs-mode:nil
134
fill-column:99
135
End:
136
*/
137
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
138
set
bool set
Definition
actions-canvas-snapping.cpp:86
canvas-item-ptr.h
CanvasItemPtr
std::unique_ptr< T, CanvasItemUnlinkDeleter > CanvasItemPtr
Smart pointer used to hold CanvasItems, like std::unique_ptr.
Definition
canvas-item-ptr.h:27
Geom::PathVector
Sequence of subpaths.
Definition
pathvector.h:122
Geom::Point
Two-dimensional point that doubles as a vector.
Definition
point.h:66
Inkscape::ObjectSet
Definition
object-set.h:94
Inkscape::Preferences::Entry
Data type representing a typeless value of a preference.
Definition
preferences.h:152
Inkscape::UI::Tools::SprayTool
Definition
spray-tool.h:48
Inkscape::UI::Tools::SprayTool::do_trace
bool do_trace
Definition
spray-tool.h:96
Inkscape::UI::Tools::SprayTool::pick_to_size
bool pick_to_size
Definition
spray-tool.h:97
Inkscape::UI::Tools::SprayTool::setCloneTilerPrefs
virtual void setCloneTilerPrefs()
Definition
spray-tool.cpp:215
Inkscape::UI::Tools::SprayTool::~SprayTool
~SprayTool() override
Definition
spray-tool.cpp:183
Inkscape::UI::Tools::SprayTool::object_set
ObjectSet object_set
Definition
spray-tool.h:121
Inkscape::UI::Tools::SprayTool::scale_variation
double scale_variation
Definition
spray-tool.h:68
Inkscape::UI::Tools::SprayTool::pick_stroke
bool pick_stroke
Definition
spray-tool.h:90
Inkscape::UI::Tools::SprayTool::rand_picked
double rand_picked
Definition
spray-tool.h:107
Inkscape::UI::Tools::SprayTool::over_no_transparent
bool over_no_transparent
Definition
spray-tool.h:93
Inkscape::UI::Tools::SprayTool::is_dilating
bool is_dilating
Definition
spray-tool.h:79
Inkscape::UI::Tools::SprayTool::objectSet
ObjectSet * objectSet()
Definition
spray-tool.h:117
Inkscape::UI::Tools::SprayTool::rotation_variation
double rotation_variation
Definition
spray-tool.h:66
Inkscape::UI::Tools::SprayTool::single_path_output
SPItem * single_path_output
Definition
spray-tool.h:118
Inkscape::UI::Tools::SprayTool::pick
int pick
Definition
spray-tool.h:95
Inkscape::UI::Tools::SprayTool::width
double width
Definition
spray-tool.h:63
Inkscape::UI::Tools::SprayTool::update_cursor
void update_cursor(bool)
Definition
spray-tool.cpp:187
Inkscape::UI::Tools::SprayTool::mode
int mode
Definition
spray-tool.h:75
Inkscape::UI::Tools::SprayTool::pick_fill
bool pick_fill
Definition
spray-tool.h:89
Inkscape::UI::Tools::SprayTool::single_click
bool single_click
Definition
spray-tool.h:101
Inkscape::UI::Tools::SprayTool::mean
double mean
Definition
spray-tool.h:70
Inkscape::UI::Tools::SprayTool::usepressurescale
bool usepressurescale
Definition
spray-tool.h:59
Inkscape::UI::Tools::SprayTool::pick_inverse_value
bool pick_inverse_value
Definition
spray-tool.h:88
Inkscape::UI::Tools::SprayTool::ratio
double ratio
Definition
spray-tool.h:64
Inkscape::UI::Tools::SprayTool::is_drawing
bool is_drawing
Definition
spray-tool.h:77
Inkscape::UI::Tools::SprayTool::no_overlap
bool no_overlap
Definition
spray-tool.h:85
Inkscape::UI::Tools::SprayTool::scale
double scale
Definition
spray-tool.h:69
Inkscape::UI::Tools::SprayTool::shapes
Geom::PathVector shapes
Definition
spray-tool.h:108
Inkscape::UI::Tools::SprayTool::single_angle
double single_angle
Definition
spray-tool.h:103
Inkscape::UI::Tools::SprayTool::usetilt
bool usetilt
Definition
spray-tool.h:60
Inkscape::UI::Tools::SprayTool::release_connection
sigc::scoped_connection release_connection
Definition
spray-tool.h:110
Inkscape::UI::Tools::SprayTool::single_scale
double single_scale
Definition
spray-tool.h:102
Inkscape::UI::Tools::SprayTool::tilt
double tilt
Definition
spray-tool.h:65
Inkscape::UI::Tools::SprayTool::usepressurewidth
bool usepressurewidth
Definition
spray-tool.h:57
Inkscape::UI::Tools::SprayTool::items
std::vector< SPItem * > items
Definition
spray-tool.h:84
Inkscape::UI::Tools::SprayTool::distrib
int distrib
Definition
spray-tool.h:73
Inkscape::UI::Tools::SprayTool::over_transparent
bool over_transparent
Definition
spray-tool.h:92
Inkscape::UI::Tools::SprayTool::population
double population
Definition
spray-tool.h:67
Inkscape::UI::Tools::SprayTool::pick_to_opacity
bool pick_to_opacity
Definition
spray-tool.h:100
Inkscape::UI::Tools::SprayTool::shapes_area
CanvasItemPtr< CanvasItemBpath > shapes_area
Definition
spray-tool.h:83
Inkscape::UI::Tools::SprayTool::pick_to_color
bool pick_to_color
Definition
spray-tool.h:99
Inkscape::UI::Tools::SprayTool::root_handler
bool root_handler(CanvasEvent const &event) override
Definition
spray-tool.cpp:1132
Inkscape::UI::Tools::SprayTool::invert_picked
bool invert_picked
Definition
spray-tool.h:105
Inkscape::UI::Tools::SprayTool::picker
bool picker
Definition
spray-tool.h:86
Inkscape::UI::Tools::SprayTool::last_pressure
double last_pressure
Definition
spray-tool.h:104
Inkscape::UI::Tools::SprayTool::standard_deviation
double standard_deviation
Definition
spray-tool.h:71
Inkscape::UI::Tools::SprayTool::gamma_picked
double gamma_picked
Definition
spray-tool.h:106
Inkscape::UI::Tools::SprayTool::pick_center
bool pick_center
Definition
spray-tool.h:87
Inkscape::UI::Tools::SprayTool::usepressurepopulation
bool usepressurepopulation
Definition
spray-tool.h:58
Inkscape::UI::Tools::SprayTool::dilate_area
CanvasItemPtr< CanvasItemBpath > dilate_area
Definition
spray-tool.h:82
Inkscape::UI::Tools::SprayTool::usetext
bool usetext
Definition
spray-tool.h:61
Inkscape::UI::Tools::SprayTool::pick_to_presence
bool pick_to_presence
Definition
spray-tool.h:98
Inkscape::UI::Tools::SprayTool::last_push
Geom::Point last_push
Definition
spray-tool.h:81
Inkscape::UI::Tools::SprayTool::offset
double offset
Definition
spray-tool.h:94
Inkscape::UI::Tools::SprayTool::pick_no_overlap
bool pick_no_overlap
Definition
spray-tool.h:91
Inkscape::UI::Tools::SprayTool::has_dilated
bool has_dilated
Definition
spray-tool.h:80
Inkscape::UI::Tools::SprayTool::pressure
double pressure
Definition
spray-tool.h:54
Inkscape::UI::Tools::ToolBase
Base class for Event processors.
Definition
tool-base.h:95
SPDesktop
To do: update description of desktop.
Definition
desktop.h:149
SPItem
Base class for visual SVG elements.
Definition
sp-item.h:109
Inkscape::UI::Tools
Definition
desktop.h:121
Inkscape::UI::Tools::SPRAY_MODE_SINGLE_PATH
@ SPRAY_MODE_SINGLE_PATH
Definition
spray-tool.h:42
Inkscape::UI::Tools::SPRAY_MODE_ERASER
@ SPRAY_MODE_ERASER
Definition
spray-tool.h:43
Inkscape::UI::Tools::SPRAY_MODE_CLONE
@ SPRAY_MODE_CLONE
Definition
spray-tool.h:41
Inkscape::UI::Tools::SPRAY_OPTION
@ SPRAY_OPTION
Definition
spray-tool.h:44
Inkscape::UI::Tools::SPRAY_MODE_COPY
@ SPRAY_MODE_COPY
Definition
spray-tool.h:40
Inkscape
Helper class to stream background task notifications as a series of messages.
Definition
actions-canvas-snapping.h:27
object-set.h
pathvector.h
PathVector - a sequence of subpaths.
Inkscape::CanvasEvent
Abstract base class for events.
Definition
canvas-event.h:64
desktop
SPDesktop * desktop
Definition
tabs-widget.cpp:70
tool-base.h
src
ui
tools
spray-tool.h
Generated on Sun Jul 13 2025 04:02:22 for Inkscape by
1.9.8