1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:17:35 +00:00

LibPDF: Add facility to obtain Vector<float> from ArrayObject

Arrays of float numbers are common in many PDF objects, and thus to
avoid code repetition I'm introducing a new method to ArrayObject that
will return exactly that.
This commit is contained in:
Rodrigo Tobar 2022-11-25 16:34:06 +08:00 committed by Andreas Kling
parent a63b93f724
commit 17676705a5
2 changed files with 11 additions and 0 deletions

View file

@ -50,6 +50,16 @@ DeprecatedString NameObject::to_deprecated_string(int) const
return builder.to_deprecated_string(); return builder.to_deprecated_string();
} }
Vector<float> ArrayObject::float_elements() const
{
Vector<float> values;
values.ensure_capacity(m_elements.size());
for (auto const& value : m_elements) {
values.append(value.to_float());
}
return values;
}
DeprecatedString ArrayObject::to_deprecated_string(int indent) const DeprecatedString ArrayObject::to_deprecated_string(int indent) const
{ {
StringBuilder builder; StringBuilder builder;

View file

@ -74,6 +74,7 @@ public:
[[nodiscard]] ALWAYS_INLINE size_t size() const { return m_elements.size(); } [[nodiscard]] ALWAYS_INLINE size_t size() const { return m_elements.size(); }
[[nodiscard]] ALWAYS_INLINE Vector<Value> elements() const { return m_elements; } [[nodiscard]] ALWAYS_INLINE Vector<Value> elements() const { return m_elements; }
[[nodiscard]] Vector<float> float_elements() const;
ALWAYS_INLINE auto begin() const { return m_elements.begin(); } ALWAYS_INLINE auto begin() const { return m_elements.begin(); }
ALWAYS_INLINE auto end() const { return m_elements.end(); } ALWAYS_INLINE auto end() const { return m_elements.end(); }