Find a file
2022-02-16 13:25:22 +01:00
src fix naive packer 2022-02-16 13:25:22 +01:00
.gitignore implement naive packer 2022-02-15 21:18:50 +01:00
justfile implement naive packer 2022-02-15 21:18:50 +01:00
lenna.png add bounding box 2022-02-12 00:28:54 +01:00
README.md fix naive packer 2022-02-16 13:25:22 +01:00
shell.nix add gui 2022-02-13 00:55:17 +01:00
test_algo.pdf initial commit 2022-02-11 19:03:22 +01:00
Tupfile.ini initial commit 2022-02-11 19:03:22 +01:00

Netatmo technical test

The subject is available here: Test Algo

TODO

  • document
  • dumb packing
  • skyline
  • add raygui
  • resize box
  • delete box in gui by clicking
  • wrap stb_rect_pack?
  • change bbox api to origin + size
  • dummy A2

Installation

Notes

Question 1

This is a packing problem, as described on Wikipedia. Since this is NP-hard, we know the "exact" solution might be unreachable but we could find a solution that is good enough for our needs.

Question 2

Question 3

PNG support

I chose to support PNG files through the stb files: github.com/nothings/stb. I could have implemented basic image support with the PNM format but I think it is nicer to support common image formats with a simple library.

stb also implements a 2D rectangle packer: stb_rect_pack.h I added this file in the project in order to compare my implementation to another one.

3rd party libraries

I use 2 external libraries for better visualization:

  • stb files (for PNG)
  • raylib (for GUI)

I don't rely on them for the algorithm implementation and the core of the exercise doesn't rely on external libraries.

To avoid name collision, I created my own namespace freling.

References