Forráskód Böngészése

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.
Rodrigo Tobar 2 éve
szülő
commit
17676705a5

+ 10 - 0
Userland/Libraries/LibPDF/ObjectDerivatives.cpp

@@ -50,6 +50,16 @@ DeprecatedString NameObject::to_deprecated_string(int) const
     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
 {
     StringBuilder builder;

+ 1 - 0
Userland/Libraries/LibPDF/ObjectDerivatives.h

@@ -74,6 +74,7 @@ public:
 
     [[nodiscard]] ALWAYS_INLINE size_t size() const { return m_elements.size(); }
     [[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 end() const { return m_elements.end(); }