mirror of
https://github.com/aseprite/aseprite.git
synced 2024-10-06 23:09:58 +00:00
Add SelectedFrames::reversed() function
This commit is contained in:
parent
e58d54600a
commit
ad518b7fb2
@ -97,6 +97,21 @@ namespace doc {
|
|||||||
mutable frame_t m_frame;
|
mutable frame_t m_frame;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Reversed {
|
||||||
|
public:
|
||||||
|
typedef const_reverse_iterator const_iterator;
|
||||||
|
|
||||||
|
const_iterator begin() const { return m_selectedFrames.rbegin(); }
|
||||||
|
const_iterator end() const { return m_selectedFrames.rend(); }
|
||||||
|
|
||||||
|
Reversed(const SelectedFrames& selectedFrames)
|
||||||
|
: m_selectedFrames(selectedFrames) {
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
const SelectedFrames& m_selectedFrames;
|
||||||
|
};
|
||||||
|
|
||||||
const_iterator begin() const { return const_iterator(m_ranges.begin()); }
|
const_iterator begin() const { return const_iterator(m_ranges.begin()); }
|
||||||
const_iterator end() const { return const_iterator(m_ranges.end()); }
|
const_iterator end() const { return const_iterator(m_ranges.end()); }
|
||||||
const_reverse_iterator rbegin() const { return const_reverse_iterator(m_ranges.rbegin()); }
|
const_reverse_iterator rbegin() const { return const_reverse_iterator(m_ranges.rbegin()); }
|
||||||
@ -114,6 +129,8 @@ namespace doc {
|
|||||||
frame_t firstFrame() const { return (!m_ranges.empty() ? m_ranges.front().fromFrame: -1); }
|
frame_t firstFrame() const { return (!m_ranges.empty() ? m_ranges.front().fromFrame: -1); }
|
||||||
frame_t lastFrame() const { return (!m_ranges.empty() ? m_ranges.back().toFrame: -1); }
|
frame_t lastFrame() const { return (!m_ranges.empty() ? m_ranges.back().toFrame: -1); }
|
||||||
|
|
||||||
|
Reversed reversed() const { return Reversed(*this); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ranges m_ranges;
|
Ranges m_ranges;
|
||||||
};
|
};
|
||||||
|
@ -115,6 +115,12 @@ TEST(SelectedFrames, ReverseIterators)
|
|||||||
EXPECT_EQ(6, res[1]);
|
EXPECT_EQ(6, res[1]);
|
||||||
EXPECT_EQ(5, res[2]);
|
EXPECT_EQ(5, res[2]);
|
||||||
EXPECT_EQ(1, res[3]);
|
EXPECT_EQ(1, res[3]);
|
||||||
|
|
||||||
|
std::vector<frame_t> res2;
|
||||||
|
for (frame_t frame : f.reversed())
|
||||||
|
res2.push_back(frame);
|
||||||
|
|
||||||
|
EXPECT_EQ(res, res2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
|
Loading…
Reference in New Issue
Block a user