Skip to content

Commit 8fd1c8c

Browse files
committed
[v0.1.14] 2026-01-30
🚨++ New Plug-in Integrated ++ 🚨 - Terrestrial LiDAR plug-in integrated - Updated helios-core to v1.3.63 ## Core - Added `Context.seedRandomGenerator()` for reproducible stochastic simulations ## LiDAR - Removed CollisionDetection as explicit Python API dependency (handled at C++ level) ## Energy Balance - Energy balance tests now work without radiation plugin by setting radiation flux data manually
1 parent 0c1934a commit 8fd1c8c

Some content is hidden

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

43 files changed

+6100
-165
lines changed

β€Ž.github/workflows/build-wheels.ymlβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
build_wheels:
1010
name: Build wheels on ${{ matrix.os }}
1111
runs-on: ${{ matrix.os }}
12-
timeout-minutes: 60
12+
timeout-minutes: 90
1313
strategy:
1414
matrix:
1515
include:
@@ -157,7 +157,7 @@ jobs:
157157
158158
- name: Build wheels
159159
run: python -m cibuildwheel --output-dir wheelhouse
160-
timeout-minutes: 30 # Single timeout for the entire step
160+
timeout-minutes: 60 # Increased for LiDAR tests which are comprehensive
161161
env:
162162
# Build for Python 3.8+ on all platforms
163163
CIBW_BUILD: cp38-* cp39-* cp310-* cp311-* cp312-*
@@ -656,7 +656,7 @@ jobs:
656656
test_wheels:
657657
name: Test wheels on ${{ matrix.os }} Python ${{ matrix.python-version }}
658658
runs-on: ${{ matrix.os }}
659-
timeout-minutes: 30
659+
timeout-minutes: 45
660660
needs: build_wheels
661661
strategy:
662662
matrix:

β€Žbuild_scripts/build_helios.pyβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@
4848
"boundarylayerconductance",
4949
"photosynthesis",
5050
"plantarchitecture",
51-
"leafoptics"
51+
"leafoptics",
52+
"lidar"
5253
]
5354

5455
# Execute dependency_resolver.py to get PluginDependencyResolver

β€Žbuild_scripts/prepare_wheel.pyβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ def copy_assets_for_packaging(project_root):
216216
'visualizer': ['textures', 'shaders', 'fonts'],
217217
'plantarchitecture': ['assets/textures', 'assets/obj'],
218218
'leafoptics': ['spectral_data'],
219+
'lidar': ['xml', 'data'],
219220
# NOTE: canopygenerator is not integrated with PyHelios - assets not needed
220221
}
221222

β€Ždocs/CHANGELOG.mdβ€Ž

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Changelog
22

3+
# [v0.1.14] 2026-01-30
4+
5+
🚨++ New Plug-in Integrated ++ 🚨
6+
- Terrestrial LiDAR plug-in integrated
7+
8+
- Updated helios-core to v1.3.63
9+
10+
## Core
11+
- Added `Context.seedRandomGenerator()` for reproducible stochastic simulations
12+
13+
## LiDAR
14+
- Removed CollisionDetection as explicit Python API dependency (handled at C++ level)
15+
16+
## Energy Balance
17+
- Energy balance tests now work without radiation plugin by setting radiation flux data manually
18+
319
# [v0.1.13] 2025-12-25
420

521
- Updated helios-core to v1.3.61

β€Ždocs/assets/custom.cssβ€Ž

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,155 @@
1010

1111
#searchbox-container #MSearchBox {
1212
width: 100%;
13+
}
14+
15+
/* ============================================
16+
Nav Tree Arrowhead Styles (missing from older doxygen-awesome)
17+
============================================ */
18+
19+
/* Arrowhead triangle for expandable nav items */
20+
span.arrowhead {
21+
display: inline-block;
22+
width: 0;
23+
height: 0;
24+
border-left: 4px solid transparent;
25+
border-right: 4px solid transparent;
26+
border-top: 6px solid var(--primary-light-color);
27+
vertical-align: middle;
28+
margin-right: 4px;
29+
transition: transform var(--animation-duration) ease-out;
30+
}
31+
32+
/* Closed state - arrow points right */
33+
span.arrowhead.closed {
34+
transform: rotate(-90deg);
35+
}
36+
37+
/* Open state - arrow points down */
38+
span.arrowhead.opened {
39+
transform: rotate(0deg);
40+
}
41+
42+
/* Selected item arrowhead color */
43+
.selected span.arrowhead {
44+
border-top-color: var(--primary-color);
45+
}
46+
47+
/* ============================================
48+
Mobile Navigation Sidebar Toggle
49+
============================================ */
50+
51+
/* Mobile hamburger button - hidden on desktop, shown on mobile */
52+
#mobile-menu-btn {
53+
display: none;
54+
position: fixed;
55+
top: 10px;
56+
left: 10px;
57+
z-index: 101;
58+
flex-direction: column;
59+
justify-content: center;
60+
align-items: center;
61+
width: 44px;
62+
height: 44px;
63+
padding: 10px;
64+
background: var(--page-background-color);
65+
border: 1px solid var(--separator-color);
66+
border-radius: var(--border-radius-medium);
67+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
68+
cursor: pointer;
69+
gap: 5px;
70+
}
71+
72+
#mobile-menu-btn span {
73+
display: block;
74+
width: 20px;
75+
height: 2px;
76+
background-color: var(--page-foreground-color);
77+
border-radius: 1px;
78+
transition: transform 0.3s ease, opacity 0.3s ease;
79+
}
80+
81+
/* Hamburger to X animation when open */
82+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(1) {
83+
transform: translateY(7px) rotate(45deg);
84+
}
85+
86+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(2) {
87+
opacity: 0;
88+
}
89+
90+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(3) {
91+
transform: translateY(-7px) rotate(-45deg);
92+
}
93+
94+
/* Mobile overlay - hidden by default */
95+
#mobile-nav-overlay {
96+
display: none;
97+
position: fixed;
98+
top: 0;
99+
left: 0;
100+
right: 0;
101+
bottom: 0;
102+
background: rgba(0, 0, 0, 0.5);
103+
z-index: 99;
104+
opacity: 0;
105+
transition: opacity 0.3s ease;
106+
}
107+
108+
/* Mobile-specific styles */
109+
@media screen and (max-width: 767px) {
110+
/* Show hamburger button on mobile */
111+
#mobile-menu-btn {
112+
display: flex;
113+
}
114+
115+
/* Override doxygen-awesome hiding the sidebar - make it a slide-out drawer */
116+
#side-nav {
117+
display: block !important;
118+
position: fixed !important;
119+
top: 0 !important;
120+
left: 0 !important;
121+
bottom: 0 !important;
122+
width: 280px !important;
123+
max-width: 85vw !important;
124+
z-index: 100 !important;
125+
transform: translateX(-100%);
126+
transition: transform 0.3s ease;
127+
overflow-y: auto !important;
128+
box-shadow: none;
129+
}
130+
131+
/* Show sidebar when open */
132+
.mobile-sidebar-open #side-nav {
133+
transform: translateX(0);
134+
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);
135+
}
136+
137+
/* Show and animate overlay when sidebar is open */
138+
.mobile-sidebar-open #mobile-nav-overlay {
139+
display: block;
140+
opacity: 1;
141+
}
142+
143+
/* Prevent body scroll when sidebar is open */
144+
.mobile-sidebar-open {
145+
overflow: hidden;
146+
}
147+
148+
/* Ensure content doesn't shift */
149+
#doc-content {
150+
margin-left: 0 !important;
151+
padding-top: 60px !important;
152+
}
153+
154+
/* Hide titlearea inside sidebar on mobile - we only want nav tree */
155+
#side-nav #titlearea {
156+
display: none !important;
157+
}
158+
159+
/* Ensure nav tree arrows are visible on hover in mobile sidebar */
160+
#side-nav #nav-tree div.item:hover .arrow,
161+
#side-nav #nav-tree a:focus .arrow {
162+
opacity: 0.9 !important;
163+
}
13164
}

β€Ždocs/assets/pyhelios-custom.cssβ€Ž

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,155 @@
3838
#projectname {
3939
color: var(--page-foreground-color);
4040
font-weight: bold;
41+
}
42+
43+
/* ============================================
44+
Nav Tree Arrowhead Styles (missing from older doxygen-awesome)
45+
============================================ */
46+
47+
/* Arrowhead triangle for expandable nav items */
48+
span.arrowhead {
49+
display: inline-block;
50+
width: 0;
51+
height: 0;
52+
border-left: 4px solid transparent;
53+
border-right: 4px solid transparent;
54+
border-top: 6px solid var(--primary-light-color);
55+
vertical-align: middle;
56+
margin-right: 4px;
57+
transition: transform var(--animation-duration) ease-out;
58+
}
59+
60+
/* Closed state - arrow points right */
61+
span.arrowhead.closed {
62+
transform: rotate(-90deg);
63+
}
64+
65+
/* Open state - arrow points down */
66+
span.arrowhead.opened {
67+
transform: rotate(0deg);
68+
}
69+
70+
/* Selected item arrowhead color */
71+
.selected span.arrowhead {
72+
border-top-color: var(--primary-color);
73+
}
74+
75+
/* ============================================
76+
Mobile Navigation Sidebar Toggle
77+
============================================ */
78+
79+
/* Mobile hamburger button - hidden on desktop, shown on mobile */
80+
#mobile-menu-btn {
81+
display: none;
82+
position: fixed;
83+
top: 10px;
84+
left: 10px;
85+
z-index: 101;
86+
flex-direction: column;
87+
justify-content: center;
88+
align-items: center;
89+
width: 44px;
90+
height: 44px;
91+
padding: 10px;
92+
background: var(--page-background-color);
93+
border: 1px solid var(--separator-color);
94+
border-radius: var(--border-radius-medium);
95+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
96+
cursor: pointer;
97+
gap: 5px;
98+
}
99+
100+
#mobile-menu-btn span {
101+
display: block;
102+
width: 20px;
103+
height: 2px;
104+
background-color: var(--page-foreground-color);
105+
border-radius: 1px;
106+
transition: transform 0.3s ease, opacity 0.3s ease;
107+
}
108+
109+
/* Hamburger to X animation when open */
110+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(1) {
111+
transform: translateY(7px) rotate(45deg);
112+
}
113+
114+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(2) {
115+
opacity: 0;
116+
}
117+
118+
.mobile-sidebar-open #mobile-menu-btn span:nth-child(3) {
119+
transform: translateY(-7px) rotate(-45deg);
120+
}
121+
122+
/* Mobile overlay - hidden by default */
123+
#mobile-nav-overlay {
124+
display: none;
125+
position: fixed;
126+
top: 0;
127+
left: 0;
128+
right: 0;
129+
bottom: 0;
130+
background: rgba(0, 0, 0, 0.5);
131+
z-index: 99;
132+
opacity: 0;
133+
transition: opacity 0.3s ease;
134+
}
135+
136+
/* Mobile-specific styles */
137+
@media screen and (max-width: 767px) {
138+
/* Show hamburger button on mobile */
139+
#mobile-menu-btn {
140+
display: flex;
141+
}
142+
143+
/* Override doxygen-awesome hiding the sidebar - make it a slide-out drawer */
144+
#side-nav {
145+
display: block !important;
146+
position: fixed !important;
147+
top: 0 !important;
148+
left: 0 !important;
149+
bottom: 0 !important;
150+
width: 280px !important;
151+
max-width: 85vw !important;
152+
z-index: 100 !important;
153+
transform: translateX(-100%);
154+
transition: transform 0.3s ease;
155+
overflow-y: auto !important;
156+
box-shadow: none;
157+
}
158+
159+
/* Show sidebar when open */
160+
.mobile-sidebar-open #side-nav {
161+
transform: translateX(0);
162+
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);
163+
}
164+
165+
/* Show and animate overlay when sidebar is open */
166+
.mobile-sidebar-open #mobile-nav-overlay {
167+
display: block;
168+
opacity: 1;
169+
}
170+
171+
/* Prevent body scroll when sidebar is open */
172+
.mobile-sidebar-open {
173+
overflow: hidden;
174+
}
175+
176+
/* Ensure content doesn't shift */
177+
#doc-content {
178+
margin-left: 0 !important;
179+
padding-top: 60px !important;
180+
}
181+
182+
/* Hide titlearea inside sidebar on mobile - we only want nav tree */
183+
#side-nav #titlearea {
184+
display: none !important;
185+
}
186+
187+
/* Ensure nav tree arrows are visible on hover in mobile sidebar */
188+
#side-nav #nav-tree div.item:hover .arrow,
189+
#side-nav #nav-tree a:focus .arrow {
190+
opacity: 0.9 !important;
191+
}
41192
}
125 KB
Loading
132 KB
Loading
93.7 KB
Loading

β€Ždocs/images/HitTable.pngβ€Ž

50.1 KB
Loading

0 commit comments

Comments
Β (0)