mirror of https://github.com/aseprite/aseprite.git
67 lines
1.1 KiB
C++
67 lines
1.1 KiB
C++
|
// Aseprite Document Library
|
||
|
// Copyright (c) 2017 David Capello
|
||
|
//
|
||
|
// This file is released under the terms of the MIT license.
|
||
|
// Read LICENSE.txt for more information.
|
||
|
|
||
|
#ifdef HAVE_CONFIG_H
|
||
|
#include "config.h"
|
||
|
#endif
|
||
|
|
||
|
#include "doc/slices.h"
|
||
|
|
||
|
#include "base/debug.h"
|
||
|
#include "doc/slice.h"
|
||
|
|
||
|
#include <algorithm>
|
||
|
|
||
|
namespace doc {
|
||
|
|
||
|
Slices::Slices(Sprite* sprite) : m_sprite(sprite)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
Slices::~Slices()
|
||
|
{
|
||
|
for (Slice* slice : m_slices) {
|
||
|
slice->setOwner(nullptr);
|
||
|
delete slice;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void Slices::add(Slice* slice)
|
||
|
{
|
||
|
m_slices.push_back(slice);
|
||
|
slice->setOwner(this);
|
||
|
}
|
||
|
|
||
|
void Slices::remove(Slice* slice)
|
||
|
{
|
||
|
auto it = std::find(m_slices.begin(), m_slices.end(), slice);
|
||
|
ASSERT(it != m_slices.end());
|
||
|
if (it != m_slices.end())
|
||
|
m_slices.erase(it);
|
||
|
|
||
|
slice->setOwner(nullptr);
|
||
|
}
|
||
|
|
||
|
Slice* Slices::getByName(const std::string& name) const
|
||
|
{
|
||
|
for (Slice* slice : *this) {
|
||
|
if (slice->name() == name)
|
||
|
return slice;
|
||
|
}
|
||
|
return nullptr;
|
||
|
}
|
||
|
|
||
|
Slice* Slices::getById(ObjectId id) const
|
||
|
{
|
||
|
for (Slice* slice : *this) {
|
||
|
if (slice->id() == id)
|
||
|
return slice;
|
||
|
}
|
||
|
return nullptr;
|
||
|
}
|
||
|
|
||
|
} // namespace doc
|