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