Skip to content

Commit 3188af6

Browse files
rhamel3drycwo
authored andcommitted
Add SampleSpinodoids
1 parent 9f0d173 commit 3188af6

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

metafold/func.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,42 @@ def __call__(self, eval_: Evaluator) -> TypedResult[Literal[FuncType.FLOAT]]:
605605
return cast(TypedResult[Literal[FuncType.FLOAT]], r)
606606

607607

608+
class SampleSpinodoid_Parameters(TypedDict, total=False):
609+
angles: Vec3f
610+
density: float
611+
wave_count: int
612+
xform: Mat4f
613+
614+
615+
class SampleSpinodoid(TypedFunc[Literal[FuncType.FLOAT]]):
616+
def __init__(
617+
self,
618+
points: TypedFunc[Literal[FuncType.VEC3F]],
619+
parameters: Optional[SampleSpinodoid_Parameters] = None,
620+
):
621+
self.inputs: Optional[dict[str, Func]]
622+
self.inputs = {
623+
"Points": points,
624+
}
625+
self.assets: Optional[Assets]
626+
self.assets = None
627+
self.parameters = parameters
628+
629+
@cache
630+
def __call__(self, eval_: Evaluator) -> TypedResult[Literal[FuncType.FLOAT]]:
631+
inputs: Optional[Inputs] = None
632+
if self.inputs:
633+
inputs = dict((k, v(eval_)) for k, v in self.inputs.items())
634+
r = eval_(
635+
"SampleSpinodoid",
636+
inputs=inputs,
637+
assets=self.assets,
638+
# https://github.com/python/mypy/issues/4976#issuecomment-460971843
639+
parameters=cast(Optional[Params], self.parameters),
640+
)
641+
return cast(TypedResult[Literal[FuncType.FLOAT]], r)
642+
643+
608644
SampleSurfaceLattice_Enum_lattice_type: TypeAlias = Literal["CD", "CI2Y", "CP", "CPM_Y", "CS", "CY", "C_Y", "D", "F", "FRD", "Gyroid", "I2Y", "IWP", "None", "P", "PM_Y", "S", "SD1", "Schwarz", "SchwarzD", "SchwarzN", "SchwarzPW", "SchwarzW", "W", "Y"]
609645

610646

0 commit comments

Comments
 (0)