The Builder is currently a collection of constructors for Generator. To facilitate adding more configuration options (like defining a perimeter #4), the Builder Pattern should be applied.
That means the Builder should first be constructed with a new() function with no arguments and further configuration should be applied to the Builder object before the build function is used.
Example:
Builder::<_, Vec2>::new().with_poisson_type(Type::Normal).with_radius(0.1)
The required refactoring is also a good opportunity to replace assert! in the Builder by returning an error, to avoid crashing the whole program.
The
Builderis currently a collection of constructors forGenerator. To facilitate adding more configuration options (like defining a perimeter #4), the Builder Pattern should be applied.That means the
Buildershould first be constructed with anew()function with no arguments and further configuration should be applied to theBuilderobject before thebuildfunction is used.Example:
The required refactoring is also a good opportunity to replace
assert!in theBuilderby returning an error, to avoid crashing the whole program.