From 2337ea2b0153a98175dd18e87f202307ec863852 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 6ce5d1ff..b15ab177 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 8d4fd111..12352fd8 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 9b14db88..0a2292b1 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