mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-24 21:39:51 +00:00
Now Aseprite will export only visible layers by default. - Added doc::LayersRange to simplify layer iteration
59 lines
1.1 KiB
C++
59 lines
1.1 KiB
C++
// Aseprite Document Library
|
|
// Copyright (c) 2001-2015 David Capello
|
|
//
|
|
// This file is released under the terms of the MIT license.
|
|
// Read LICENSE.txt for more information.
|
|
|
|
#ifndef DOC_LAYERS_RANGE_H_INCLUDED
|
|
#define DOC_LAYERS_RANGE_H_INCLUDED
|
|
#pragma once
|
|
|
|
#include "doc/layer_index.h"
|
|
#include "doc/object_id.h"
|
|
|
|
#include <set>
|
|
|
|
namespace doc {
|
|
class Layer;
|
|
class Sprite;
|
|
|
|
class LayersRange {
|
|
public:
|
|
LayersRange(const Sprite* sprite, LayerIndex first, LayerIndex last);
|
|
|
|
class iterator {
|
|
public:
|
|
iterator();
|
|
iterator(const Sprite* sprite, LayerIndex first, LayerIndex last);
|
|
|
|
bool operator==(const iterator& other) const {
|
|
return m_layer == other.m_layer;
|
|
}
|
|
|
|
bool operator!=(const iterator& other) const {
|
|
return !operator==(other);
|
|
}
|
|
|
|
Layer* operator*() const {
|
|
return m_layer;
|
|
}
|
|
|
|
iterator& operator++();
|
|
|
|
private:
|
|
Layer* m_layer;
|
|
LayerIndex m_cur, m_last;
|
|
std::set<ObjectId> m_visited;
|
|
};
|
|
|
|
iterator begin() { return m_begin; }
|
|
iterator end() { return m_end; }
|
|
|
|
private:
|
|
iterator m_begin, m_end;
|
|
};
|
|
|
|
} // namespace doc
|
|
|
|
#endif
|