Skip to content

Commit e4cd13c

Browse files
committed
fix: allow iterable to be passed to isosurfacer
1 parent 29175b4 commit e4cd13c

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

LoopStructural/utils/_surface.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
from typing import Optional, Union, Callable, List
4+
from collections.abc import Iterable
45
import numpy as np
56
import numpy.typing as npt
67
from LoopStructural.utils.logging import getLogger
@@ -86,11 +87,14 @@ def fit(
8687
all_values = self.callable(self.bounding_box.regular_grid(local=False))
8788
## set value to mean value if its not specified
8889
if values is None:
89-
values = [(np.nanmax(all_values) - np.nanmin(all_values)) / 2]
90-
if isinstance(values, list):
90+
values = [((np.nanmax(all_values) - np.nanmin(all_values)) / 2) + np.nanmin(all_values)]
91+
if isinstance(values, Iterable):
9192
isovalues = values
9293
elif isinstance(values, float):
9394
isovalues = [values]
95+
if isinstance(values, int) and values == 0:
96+
values = 0.0 # assume 0 isosurface is meant to be a float
97+
9498
elif isinstance(values, int) and values < 1:
9599
raise ValueError(
96100
"Number of isosurfaces must be greater than 1. Either use a positive integer or provide a list or float for a specific isovalue."

0 commit comments

Comments
 (0)