From 021e6ffeb5fdc6589705780c2f66ec0d865e5218 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Mal=C3=BD?= <madcatxster@devoid-pointer.net>
Date: Tue, 12 May 2020 11:53:58 +0200
Subject: [PATCH] Implement DNATCO Confal Pyramids location iterator

---
 .../dnatco/confal-pyramids/representation.ts  | 20 ++++++++-----------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/extensions/dnatco/confal-pyramids/representation.ts b/src/extensions/dnatco/confal-pyramids/representation.ts
index e916e1fd8..51ffe42c2 100644
--- a/src/extensions/dnatco/confal-pyramids/representation.ts
+++ b/src/extensions/dnatco/confal-pyramids/representation.ts
@@ -50,25 +50,21 @@ const ConfalPyramidsMeshParams = {
 type ConfalPyramidsMeshParams = typeof ConfalPyramidsMeshParams;
 
 function createConfalPyramidsIterator(structureGroup: StructureGroup): LocationIterator {
-    const { structure } = structureGroup;
-    const unit = structureGroup.group.units[0];
-
-    if (!Unit.isAtomic(unit)) {
-        // Noop
-        return LocationIterator(0, 1, () => NullLocation);
-    }
+    const { structure, group } = structureGroup;
+    const instanceCount = group.units.length;
 
     const prop = ConfalPyramidsProvider.get(structure.model).value;
     if (prop === undefined || prop.data === undefined) {
-        return LocationIterator(0, 1, (groupIndex: number, instanceIndex: number) => {
-            return NullLocation;
-        });
+        return LocationIterator(0, 1, () => NullLocation);
     }
 
+    const { locations } = prop.data;
+
     const getLocation = (groupIndex: number, instanceIndex: number) => {
-        return NullLocation; // TODO: Implement me
+        if (locations.length <= groupIndex) return NullLocation;
+        return locations[groupIndex];
     };
-    return LocationIterator(prop.data.locations.length, 1, getLocation); // TODO: Implement me
+    return LocationIterator(locations.length, instanceCount, getLocation);
 }
 
 function createConfalPyramidsMesh(ctx: VisualContext, unit: Unit, structure: Structure, theme: Theme, props: PD.Values<ConfalPyramidsMeshParams>, mesh?: Mesh) {
-- 
GitLab