Skip to content

Commit 706baac

Browse files
committed
[1.3.25] 2025-01-03
*Updated copyright dates to 2025* *Plant Architecture* !!! Many significant changes in this release !!! - The way leaf prototypes are generated has changed. There is now a modifiable parameter set that controls procedural leaf generation (or loading a model from an OBJ file). - Changed generic leaf prototype function to be able to represent leaf "buckling", such as what happens to long leaves of grasses like maize. - Removed shoot parameter 'leaf_flush_count'. - Added shoot parameter 'max_nodes_per_season' to allow the shoot to stop growing for the season, but continue adding nodes in future seasons. - Phenological thresholds for plants have been changed to be realistic (e.g., the phenological cycle for perennial plants corresponds to days in a year). - A maximum age limit for plants has been added so users don't inadvertantly specify a very old plant that will cause the program to hang. - Changed the way that vegetative bud break probability is handled such that it can vary along the shoot. The relevant parameters are now 'vegetative_bud_break_probability_min' and 'vegetative_bud_break_probability_decay_rate'. - Changed the way that downstream leaf area is calculated to improve computational efficiency. This required some changes in the 'girth_area_factor` parameter. - Committed all Blender project files used to create organ OBJ models: plugins/plantarchitecture/assets/Blender_organ_models/ - Moved initial internode radius from being a shoot parameter to a phytomer parameter, since it is constant along the shoot and over time. - Added overloaded PlantArchitecture::advanceTime() method that allows to specify the time step in years and days for advancing over long time periods. - Changed the name of the shoot parameter 'phyllochron' to 'phyllochron_min' to be consistent with how it will be used in the carbohydrate model. - Added actual self-test that builds all plants in the library. *Visualizer* - Problem fixed in freetype zconf.h file that caused build errors on latest MacOS compilers. - All output messages were not being properly suppressed after calling disableOutputMessages(). *Canopy Generator* - Many edits made regarding how parameters with random variation are handled, mainly to ensure proper constraints on values (e.g., always positive).
1 parent f4e8f8c commit 706baac

File tree

678 files changed

+25464
-26237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

678 files changed

+25464
-26237
lines changed

core/include/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "Context.h" Context header file.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

core/include/global.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "global.h" Header file for all global function/object definitions.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by
@@ -26,6 +26,8 @@
2626
#define M_PI 3.14159265358979323846
2727
#endif
2828

29+
inline constexpr float PI_F = 3.14159265358979323846f;
30+
2931
#ifndef HELIOS_GLOBAL
3032
#define HELIOS_GLOBAL
3133

core/include/helios_vector_types.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "helios_vector_types.h" Declarations for vector types
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by
@@ -1534,8 +1534,8 @@ inline bool Time::operator!=( const Time &c ) const{
15341534
struct SphericalCoord{
15351535
private:
15361536

1537-
float elevation_private;
1538-
float zenith_private;
1537+
float elevation_private;
1538+
float zenith_private;
15391539

15401540
public:
15411541

@@ -1556,20 +1556,20 @@ struct SphericalCoord{
15561556

15571557
//! Default constructor
15581558
/** initializes to vertical unit vector */
1559-
SphericalCoord() : elevation_private(0.5*float(M_PI)), elevation(elevation_private), zenith_private(0.f), zenith(zenith_private) {
1559+
SphericalCoord() : elevation_private(0.5f*float(M_PI)), zenith_private(0.f), elevation(elevation_private), zenith(zenith_private) {
15601560
radius=1;
15611561
azimuth=0;
15621562
}
15631563
//! Initialize SphericalCoord by specifying radius, elevation, and azimuth
15641564
/**
15651565
* \param[in] radius Radius
1566-
* \param[in] elevation Elevation angle (radians)
1567-
* \param[in] azimuth Azimuthal angle (radians)
1566+
* \param[in] elevation_radians Elevation angle (radians)
1567+
* \param[in] azimuth_radians Azimuthal angle (radians)
15681568
*/
1569-
SphericalCoord(float radius, float elevation_radians, float azimuth_radians ) : elevation_private(elevation_radians), elevation(elevation_private), zenith_private(0.5f * float(M_PI) - elevation_radians), zenith(zenith_private), radius(radius), azimuth(azimuth_radians) {}
1569+
SphericalCoord(float radius, float elevation_radians, float azimuth_radians ) : elevation_private(elevation_radians), zenith_private(0.5f * float(M_PI) - elevation_radians), radius(radius), elevation(elevation_private), zenith(zenith_private), azimuth(azimuth_radians) {}
15701570

15711571
//! Copy constructor
1572-
SphericalCoord( const SphericalCoord &c ) : elevation_private(c.elevation_private), elevation(elevation_private), zenith_private(c.zenith_private), zenith(zenith_private), radius(c.radius), azimuth(c.azimuth) {}
1572+
SphericalCoord( const SphericalCoord &c ) : elevation_private(c.elevation_private), zenith_private(c.zenith_private), radius(c.radius), elevation(c.elevation_private), zenith(c.zenith_private), azimuth(c.azimuth) {}
15731573

15741574
//! Assignment operator
15751575
SphericalCoord& operator=( const SphericalCoord &c ){

core/src/Context.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "Context.cpp" Context declarations.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

core/src/Context_data.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "Context_data.cpp" Context primitive data, object data, and global data declarations.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

core/src/Context_fileIO.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "Context_fileIO.cpp" Filesystem input/output functions within the Context.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

core/src/global.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "global.cpp" global declarations.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

core/src/selfTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** \file "selfTest.cpp" Context selfTest() function.
22
3-
Copyright (C) 2016-2024 Brian Bailey
3+
Copyright (C) 2016-2025 Brian Bailey
44
55
This program is free software: you can redistribute it and/or modify
66
it under the terms of the GNU General Public License as published by

doc/CHANGELOG

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1985,4 +1985,31 @@ The radiation model has been re-designed, with the following primary additions:
19851985
- Error corrected in radiation camera documentation example code.
19861986

19871987
*Photosynthesis*
1988-
- Updated code to include stomatal sidedness option (this was already described in the documentation, although it had not been implemented).
1988+
- Updated code to include stomatal sidedness option (this was already described in the documentation, although it had not been implemented).
1989+
1990+
[1.3.25] 2025-01-03
1991+
1992+
*Updated copyright dates to 2025*
1993+
1994+
*Plant Architecture*
1995+
!!! Many significant changes in this release !!!
1996+
- The way leaf prototypes are generated has changed. There is now a modifiable parameter set that controls procedural leaf generation (or loading a model from an OBJ file).
1997+
- Changed generic leaf prototype function to be able to represent leaf "buckling", such as what happens to long leaves of grasses like maize.
1998+
- Removed shoot parameter 'leaf_flush_count'.
1999+
- Added shoot parameter 'max_nodes_per_season' to allow the shoot to stop growing for the season, but continue adding nodes in future seasons.
2000+
- Phenological thresholds for plants have been changed to be realistic (e.g., the phenological cycle for perennial plants corresponds to days in a year).
2001+
- A maximum age limit for plants has been added so users don't inadvertantly specify a very old plant that will cause the program to hang.
2002+
- Changed the way that vegetative bud break probability is handled such that it can vary along the shoot. The relevant parameters are now 'vegetative_bud_break_probability_min' and 'vegetative_bud_break_probability_decay_rate'.
2003+
- Changed the way that downstream leaf area is calculated to improve computational efficiency. This required some changes in the 'girth_area_factor` parameter.
2004+
- Committed all Blender project files used to create organ OBJ models: plugins/plantarchitecture/assets/Blender_organ_models/
2005+
- Moved initial internode radius from being a shoot parameter to a phytomer parameter, since it is constant along the shoot and over time.
2006+
- Added overloaded PlantArchitecture::advanceTime() method that allows to specify the time step in years and days for advancing over long time periods.
2007+
- Changed the name of the shoot parameter 'phyllochron' to 'phyllochron_min' to be consistent with how it will be used in the carbohydrate model.
2008+
- Added actual self-test that builds all plants in the library.
2009+
2010+
*Visualizer*
2011+
- Problem fixed in freetype zconf.h file that caused build errors on latest MacOS compilers.
2012+
- All output messages were not being properly suppressed after calling disableOutputMessages().
2013+
2014+
*Canopy Generator*
2015+
- Many edits made regarding how parameters with random variation are handled, mainly to ensure proper constraints on values (e.g., always positive).

doc/UserGuide.dox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! \mainpage Helios Documentation v1.3.24
1+
/*! \mainpage Helios Documentation v1.3.25
22

33
<p> <br> </p>
44

0 commit comments

Comments
 (0)