Skip to content

Add Layouts and renderFacade task - #200

Open
zhak5388 wants to merge 2 commits into
mainfrom
zhak/facades_july
Open

Add Layouts and renderFacade task#200
zhak5388 wants to merge 2 commits into
mainfrom
zhak/facades_july

Conversation

@zhak5388

@zhak5388 zhak5388 commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Changes

This PR adds layouts and a task to render facades.

Feature description

Layouts are a kind of structure that can resize itself to fit a requested space. Contrary to Structure, its size aren't fixed, it can stretch, be repeated to fill the available space.

With that we can define layouts and have building facades rendered dynamically.

The type of Layouts are:

  • Stretchable : it makes a structure stretchable by having one band per axis that gets repeated or ommited to fit the requested size.
  • Repeat: it repeats a another layout along a given axis.
  • Concatenate: it places several layout side by side.

Showcase

Capture d’écran du 2026-08-28 16-38-09

Reason

This adds more expressiveness on building rendering. Moreover with models values, we can have layout that are rendered depending on metadata, randomly..

TODOs

Left one TODO on full.yaml. Layout parameters can be very long, it could a good idea to define it elsewhere. (As it uses voxels defined on format, could be common.yaml file. But that is a detail.

Self-checks

  • The code has unit tests associated
  • The code has Javadoc Comments associated
  • Complex / Unexpected code is explained / justified with a small comment
  • Relevant documentation inside the /docs folder has been updated
  • All examples in examples/ work the same (or have been adapted if subject to changes in this PR)
  • Git history is clean (each commit accomplish a single task and describe it accordingly)
  • The texts have been proofread (documentation, error messages, logs, comments...)

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown

[Maven Build Status]

📑 Commit: ba339a21869abb1d723d876442da881ee19e86ea
⌚️ Date: 2026-08-28T19:11:43 (CEST)
🛠️ Status: ✅ Success

📦 Download artifact: Generator.jar

@zhak5388
zhak5388 marked this pull request as draft July 21, 2026 20:07
@zhak5388
zhak5388 force-pushed the zhak/facades_july branch from 0614713 to 645c300 Compare July 23, 2026 13:59
@zhak5388 zhak5388 changed the title WIP: LayoutBuilder single commit. Uncessary files removed. TODO: Fini… Add Layouts and renderFacade task Aug 28, 2026
@zhak5388
zhak5388 marked this pull request as ready for review August 28, 2026 17:03
@zhak5388

Copy link
Copy Markdown
Contributor Author

@pyrollo
This is the continuation of the previous work. I haven't changed much on the key features. It was mostly about improving the existing work. I have introduced the parameters that we decided last time.

I focused mainly on removing dead code, resolving or completing TODOs, and improving the algorithm used by concatenate (on PriorityRepartitionAxisMapperBuilder). I made a some decisions on the way, but nothing drastic. Comments usually explain the choices made (As it was usually on some edge cases).

Also I have added multiple unit tests as I have discovered some bugs onAxisMapperBuilders.

For the algorithm, in a nutshell, I have used I reused your approach and added a second phase for starved builders. This fixes 2 issues where space where not distributed evenly.

This work is now ready for a PR, and the documentation was done. It is no longer a work in progress. It is a bit unusual to open a PR at the end, hope you'll be able to take it from here (Although not a good time).

zhak5388 and others added 2 commits August 28, 2026 19:11
Co-authored-by: Pierre-Yves Rollo <dev@pyrollo.com>
Co-authored-by: Pierre-Yves Rollo <dev@pyrollo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant