diff --git a/src/db/db/dbShapeCollectionUtils.h b/src/db/db/dbShapeCollectionUtils.h index 93e34da9f..c9df9c0ff 100644 --- a/src/db/db/dbShapeCollectionUtils.h +++ b/src/db/db/dbShapeCollectionUtils.h @@ -124,6 +124,27 @@ private: db::Shapes *mp_shapes; }; +/** + * @brief A shape delivery implementation for polygons with properties + */ +template <> +struct DB_PUBLIC shape_collection_processor_delivery +{ + shape_collection_processor_delivery (db::Layout *layout, db::Shapes *shapes) + : mp_layout (layout), mp_shapes (shapes) + { } + + void put (const db::PolygonWithProperties &result) + { + tl::MutexLocker locker (&mp_layout->lock ()); + mp_shapes->insert (db::PolygonRefWithProperties (db::PolygonRef (result, mp_layout->shape_repository ()), result.properties_id ())); + } + +private: + db::Layout *mp_layout; + db::Shapes *mp_shapes; +}; + /** * @brief A shape delivery implementation for texts */ @@ -145,6 +166,27 @@ private: db::Shapes *mp_shapes; }; +/** + * @brief A shape delivery implementation for texts with properties + */ +template <> +struct DB_PUBLIC shape_collection_processor_delivery +{ + shape_collection_processor_delivery (db::Layout *layout, db::Shapes *shapes) + : mp_layout (layout), mp_shapes (shapes) + { } + + void put (const db::TextWithProperties &result) + { + tl::MutexLocker locker (&mp_layout->lock ()); + mp_shapes->insert (db::TextRefWithProperties (db::TextRef (result, mp_layout->shape_repository ()), result.properties_id ())); + } + +private: + db::Layout *mp_layout; + db::Shapes *mp_shapes; +}; + /** * @brief A generic delivery */