From b3e48f64a5184c526ce430ad6136ddf82e2ae3c1 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 10 Aug 2021 10:52:43 +0900 Subject: [PATCH] common interator: add count() interface. --- src/lib/tvgPaint.h | 1 + src/lib/tvgPictureImpl.h | 6 ++++++ src/lib/tvgSceneImpl.h | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/src/lib/tvgPaint.h b/src/lib/tvgPaint.h index 6ce5d1f..b15ab17 100644 --- a/src/lib/tvgPaint.h +++ b/src/lib/tvgPaint.h @@ -31,6 +31,7 @@ namespace tvg { virtual ~Iterator() {} virtual const Paint* next() = 0; + virtual uint32_t count() = 0; }; struct StrategyMethod diff --git a/src/lib/tvgPictureImpl.h b/src/lib/tvgPictureImpl.h index 8d4fd11..12352fd 100644 --- a/src/lib/tvgPictureImpl.h +++ b/src/lib/tvgPictureImpl.h @@ -42,6 +42,12 @@ struct PictureIterator : Iterator paint = nullptr; return ret; } + + uint32_t count() override + { + if (paint) return 1; + else return 0; + } }; diff --git a/src/lib/tvgSceneImpl.h b/src/lib/tvgSceneImpl.h index 9b14db8..0a2292b 100644 --- a/src/lib/tvgSceneImpl.h +++ b/src/lib/tvgSceneImpl.h @@ -43,6 +43,11 @@ struct SceneIterator : Iterator if (idx >= paints->count) return nullptr; return paints->data[idx++]; } + + uint32_t count() override + { + return paints->count; + } }; struct Scene::Impl -- 2.7.4