|
45 | 45 | ParametrizationAsset, |
46 | 46 | LineNetworkAsset, |
47 | 47 | LineNetworkBvhAsset, |
| 48 | + MeshBvhAsset, |
48 | 49 | ) |
49 | 50 |
|
50 | 51 | if TYPE_CHECKING: |
@@ -684,6 +685,44 @@ def __call__(self, eval_: Evaluator) -> TypedResult[Literal[FuncType.FLOAT]]: |
684 | 685 | return cast(TypedResult[Literal[FuncType.FLOAT]], r) |
685 | 686 |
|
686 | 687 |
|
| 688 | +class SampleTriangleMeshBvh_Parameters(TypedDict, total=False): |
| 689 | + xform: Mat4f |
| 690 | + |
| 691 | + |
| 692 | +class SampleTriangleMeshBvh(TypedFunc[Literal[FuncType.FLOAT]]): |
| 693 | + def __init__( |
| 694 | + self, |
| 695 | + points: TypedFunc[Literal[FuncType.VEC3F]], |
| 696 | + bvh_data: MeshBvhAsset, |
| 697 | + mesh_data: TriangleMeshAsset, |
| 698 | + parameters: Optional[SampleTriangleMeshBvh_Parameters] = None, |
| 699 | + ): |
| 700 | + self.inputs: Optional[dict[str, Func]] |
| 701 | + self.inputs = { |
| 702 | + "Points": points, |
| 703 | + } |
| 704 | + self.assets: Optional[Assets] |
| 705 | + self.assets = { |
| 706 | + "bvh_data": bvh_data, |
| 707 | + "mesh_data": mesh_data, |
| 708 | + } |
| 709 | + self.parameters = parameters |
| 710 | + |
| 711 | + @cache |
| 712 | + def __call__(self, eval_: Evaluator) -> TypedResult[Literal[FuncType.FLOAT]]: |
| 713 | + inputs: Optional[Inputs] = None |
| 714 | + if self.inputs: |
| 715 | + inputs = dict((k, v(eval_)) for k, v in self.inputs.items()) |
| 716 | + r = eval_( |
| 717 | + "SampleTriangleMeshBvh", |
| 718 | + inputs=inputs, |
| 719 | + assets=self.assets, |
| 720 | + # https://github.com/python/mypy/issues/4976#issuecomment-460971843 |
| 721 | + parameters=cast(Optional[Params], self.parameters), |
| 722 | + ) |
| 723 | + return cast(TypedResult[Literal[FuncType.FLOAT]], r) |
| 724 | + |
| 725 | + |
687 | 726 | class SampleVolume_Parameters(TypedDict, total=False): |
688 | 727 | volume_offset: Vec3f |
689 | 728 | volume_size: Vec3f |
|
0 commit comments