-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcanvaslayer.h
More file actions
54 lines (43 loc) · 1.32 KB
/
canvaslayer.h
File metadata and controls
54 lines (43 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef CANVASLAYER_H
#define CANVASLAYER_H
#include <QList>
#include <memory>
#include "canvaswidget-opencl.h"
#include "blendmodes.h"
#include "layertype.h"
#include "tileset.h"
class QMatrix;
class CanvasTile;
class CanvasLayer
{
public:
CanvasLayer(QString name = "");
CanvasLayer(CanvasLayer const& from);
CanvasTile &operator=(const CanvasTile&) = delete;
~CanvasLayer();
QString name;
bool visible;
bool editable;
BlendMode::Mode mode;
float opacity;
LayerType::Type type;
std::shared_ptr<TileMap> tiles;
QList<CanvasLayer *> children;
TileSet getTileSet() const;
float *openTileAt(int x, int y);
cl_mem clOpenTileAt(int x, int y);
CanvasTile *getTile(int x, int y);
CanvasTile *getTileMaybe(int x, int y) const;
std::unique_ptr<CanvasTile> takeTileMaybe(int x, int y);
std::unique_ptr<CanvasLayer> deepCopy() const;
std::unique_ptr<CanvasLayer> translated(int x, int y) const;
std::unique_ptr<CanvasLayer> applyMatrix(QMatrix const &matrix) const;
std::unique_ptr<CanvasLayer> mergeDown(CanvasLayer const *target) const;
std::unique_ptr<CanvasLayer> flattened() const;
TileSet takeTiles(CanvasLayer *source);
void prune();
void swapOut();
private:
std::unique_ptr<CanvasLayer> shellCopy() const;
};
#endif // CANVASLAYER_H