From 90346740211199949afa8c1ec05ca5b6ba7c84f7 Mon Sep 17 00:00:00 2001 From: Randy Frank <89219420+randallfrank@users.noreply.github.com> Date: Fri, 6 Dec 2024 04:27:44 -0500 Subject: [PATCH 1/2] GLB timeline and material fixes (#491) Co-authored-by: David J. Bremer --- .../pyensight/core/utils/omniverse_glb_server.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ansys/pyensight/core/utils/omniverse_glb_server.py b/src/ansys/pyensight/core/utils/omniverse_glb_server.py index 2a75482696d..a850ef4bd7a 100644 --- a/src/ansys/pyensight/core/utils/omniverse_glb_server.py +++ b/src/ansys/pyensight/core/utils/omniverse_glb_server.py @@ -1,4 +1,5 @@ import io +import json import logging import os import sys @@ -108,6 +109,8 @@ def _map_material(self, glb_materialid: int, part_pb: Any) -> None: part_pb.ambient = 1.0 part_pb.diffuse = 1.0 part_pb.specular_intensity = 1.0 + if "ANSYS_material_details" in mat.extensions: + part_pb.material_name = json.dumps(mat.extensions["ANSYS_material_details"]) # if the material maps to a variable, set the variable id for coloring glb_varid = self._find_variable_from_glb_mat(glb_materialid) if glb_varid: @@ -662,8 +665,7 @@ def _build_scene_timeline(self, scene_idx: int, input_timeline: List[float]) -> try: t0 = self._gltf.scenes[scene_idx].extensions["ANSYS_scene_timevalue"]["timevalue"] idx = scene_idx + 1 - if idx >= num_scenes: - idx = scene_idx + if idx < num_scenes: t1 = self._gltf.scenes[idx].extensions["ANSYS_scene_timevalue"]["timevalue"] else: t1 = t0 @@ -680,10 +682,13 @@ def _build_scene_timeline(self, scene_idx: int, input_timeline: List[float]) -> if timeline[1] - timeline[0] <= 0.0: timeline = [0.0, float(num_scenes - 1)] # carve time into the input timeline. - delta = (timeline[1] - timeline[0]) / float(num_scenes) + delta = (timeline[1] - timeline[0]) / float(num_scenes - 1) output: List[float] = [] output.append(float(scene_idx) * delta + timeline[0]) - output.append(output[0] + delta) + if scene_idx < num_scenes - 1: + output.append(output[0] + delta) + else: + output.append(output[0]) return output @staticmethod From ad87ec518fd92982ed5ac02d164fdb0463852fab Mon Sep 17 00:00:00 2001 From: Randy Frank <89219420+randallfrank@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:04:35 -0500 Subject: [PATCH 2/2] Add another GLB test case (#493) --- tests/example_tests/test_glb_usd.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/example_tests/test_glb_usd.py b/tests/example_tests/test_glb_usd.py index f311880cfad..35144781954 100644 --- a/tests/example_tests/test_glb_usd.py +++ b/tests/example_tests/test_glb_usd.py @@ -10,7 +10,7 @@ def test_glb_usd(): # Get the example files base_uri = "https://s3.amazonaws.com/www3.ensight.com/PyEnSight/ExampleData" - filenames = ["fluent_elbow.glb", "rwing_bsl_1.glb", "rwing_bsl_2.glb"] + filenames = ["fluent_elbow.glb", "rwing_bsl_1.glb", "rwing_bsl_2.glb", "ens_car_exts.glb"] with tempfile.TemporaryDirectory() as tmpdirname: for filename in filenames: outpath = os.path.join(tmpdirname, filename)