- Write readable code and explicit the algorithms.
- Document first.
- Reuse code.
- Geometric primitives should have their own class that carry semantic values.
- 2D Inhomogeous point, called Point
- 3D Inhomogeneous point, called Point3D
- 2D Homogeneous point, also Point3D. We ensure homogeneity through post / pre conditions.
Each class / method has an low-level array in / out. On top of it, we build an interface that deals with geometric concepts (points, etc) and passes them down as arrays.
- Add your pip requirements in
requirements.in
- Run
bazel run requirements.update
this will trigger thecompile_pip_requirements
function in BUILD.bazel. This then builds therequirements.txt
file, that will be used by other targets with therequirement()
function.
There is a Docker
folder with a docker file for running prechecks (code formatting, linting etc).
Setup
sudo docker build -t linter Docker/
Run (from repo root)
sudo docker run -v ${PWD}:/app linter
- Docker
- Bazel