It is now possible to create ellipsoids (both directly and via the turtle). Note that, unlike
other primitives, the argument n does not specify the number of triangles but rather
ntriangles = 2n(n - 1) (see documentation of Ellipsoid for details).
All packages in the VPLCore plus SkyDomes are in version 1.0.1. This completes the migration of angles and trigonometry to work exclusively on hexadecimal degree.
This means that all functions that take an angle as input or return an angle as output (from VPLCore packages plus SkyDomes) will now only work with angles in hexadecimal degrees, never radians.
The changes also affect internal functions that you may be relying on.
All packages in the VPLCore plus SkyDomes are in version 1.0.0. This is done for technical reasons to facilitate further development of VPL and to signal that the tools are already being used as part of research projects across the world.
All public API functions now express angles in degrees instead of radians (both inputs and outputs). The internal calculations remain in radians.
The affected functions and their angle arguments/outputs are:
sky: inputstheta_dir,phi_dir,α,alpha_soil, andbeta_soilnow in degrees. Default values updated accordingly (α = 180.0,beta_soil = 180.0).clear_sky: inputlatand outputsthetaandphinow in degrees.daily_radiation: inputlatnow in degrees.cloudy_sky: inputlatand outputsthetaandphinow in degrees.CIE: inputsθₛandΦₛnow in degrees.declination: return value now in degrees (was radians).day_length: inputslatanddecnow in degrees.
We have added the capability to simulate:
- Rows of plants that are not oriented North-South:
αkeyword argument (azimuth of the X axis, defaultπ). - Terrain with a slope and orientation:
alpha_soil(slope inclination, default0) andbeta_soil(azimuth of slope normal, defaultπ).
A how to guide is added to the website explaining how to use the new feature as well as a
technical note with all the details regarding geomery. The user will mainly have to modify
the call to sky() from SkyDomes.jl to account for the changes.
These are not breaking changes as the defaults represent the original situation (so no
need to change code). However, Julia does treat any minor version below 1.0.0 as a breaking
change so you may need to update your [compat] section.
Fixed test dependencies.
Update dependencies and ensure it works on Julia 1.12
No changes (other than version number) since v0.0.7, see below.
Changes in this version:
-
A new
Meshobject is defined that contains any number of user defined properties per triangle. To accesscolorsormaterialsone should doproperties(mesh)[:colors]orproperties(mesh)[:materials]respectively. Note that the assignmet of colors and materials through turtle constructors maintains the same API. -
No
Sceneobject exists anymore, a mesh contains all the information needed. TheSceneconstructors are now replaced byMeshconstructors (i.e., replaceScene()withMesh()). -
The function
add!has a sligthly different API, check the documentation and examples. -
One can add properties individually to a mesh using the
add_property!function. This is required when meshes are constructed first and then added to a turtle or existing meshes. Check the API documentation for details of this function. -
Calls to
geoms()should also be replaced withMesh() -
When merging multiple meshes you need to ensure that they all have the same properties.