From 2f037b14ee5fe799b19bfaf838c13dca649574e1 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 28 Oct 2026 10:32:19 +0100 Subject: Load .duf scenes: figure, bones, morphs, dials and formulas Co-Authored-By: Claude Sonnet 5.5 --- tests/data/lib/data/Test/Fig/Fig.dsf | 21 +++++++++++++++++++++ tests/data/lib/data/Test/Fig/Morphs/Test/Broken.dsf | 1 + tests/data/lib/data/Test/Fig/Morphs/Test/Tall.dsf | 18 ++++++++++++++++++ tests/data/lib/data/Test/Fig/Morphs/Test/Wide.dsf | 8 ++++++++ 4 files changed, 48 insertions(+) create mode 100644 tests/data/lib/data/Test/Fig/Fig.dsf create mode 100644 tests/data/lib/data/Test/Fig/Morphs/Test/Broken.dsf create mode 100644 tests/data/lib/data/Test/Fig/Morphs/Test/Tall.dsf create mode 100644 tests/data/lib/data/Test/Fig/Morphs/Test/Wide.dsf (limited to 'tests/data/lib') diff --git a/tests/data/lib/data/Test/Fig/Fig.dsf b/tests/data/lib/data/Test/Fig/Fig.dsf new file mode 100644 index 0000000..5589a23 --- /dev/null +++ b/tests/data/lib/data/Test/Fig/Fig.dsf @@ -0,0 +1,21 @@ +{ + "file_version": "0.6.0.0", + "node_library": [ + {"id": "Fig", "name": "Fig", "label": "Test Figure", "type": "figure", + "rotation_order": "XYZ", + "center_point": [{"id": "x", "value": 0}, {"id": "y", "value": 0}, {"id": "z", "value": 0}], + "end_point": [{"id": "x", "value": 0}, {"id": "y", "value": 10}, {"id": "z", "value": 0}], + "orientation": [{"id": "x", "value": 0}, {"id": "y", "value": 0}, {"id": "z", "value": 0}]}, + {"id": "hip", "name": "hip", "label": "Hip", "type": "bone", "parent": "#Fig", + "rotation_order": "YZX", + "center_point": [{"id": "x", "value": 0}, {"id": "y", "value": 5}, {"id": "z", "value": 0}], + "end_point": [{"id": "x", "value": 0}, {"id": "y", "value": 8}, {"id": "z", "value": 0}], + "orientation": [{"id": "x", "value": 0}, {"id": "y", "value": 0}, {"id": "z", "value": 0}]} + ], + "geometry_library": [ + {"id": "Fig-geom", + "vertices": {"count": 3, "values": [[0, 0, 0], [1, 0, 0], [0, 1, 0]]}, + "polygon_material_groups": {"count": 1, "values": ["Skin"]}, + "polylist": {"count": 1, "values": [[0, 0, 0, 1, 2]]}} + ] +} diff --git a/tests/data/lib/data/Test/Fig/Morphs/Test/Broken.dsf b/tests/data/lib/data/Test/Fig/Morphs/Test/Broken.dsf new file mode 100644 index 0000000..e0c93d7 --- /dev/null +++ b/tests/data/lib/data/Test/Fig/Morphs/Test/Broken.dsf @@ -0,0 +1 @@ +{not json diff --git a/tests/data/lib/data/Test/Fig/Morphs/Test/Tall.dsf b/tests/data/lib/data/Test/Fig/Morphs/Test/Tall.dsf new file mode 100644 index 0000000..dff777e --- /dev/null +++ b/tests/data/lib/data/Test/Fig/Morphs/Test/Tall.dsf @@ -0,0 +1,18 @@ +{ + "file_version": "0.6.0.0", + "modifier_library": [ + {"id": "Tall", "parent": "/data/Test/Fig/Fig.dsf#Fig", + "channel": {"id": "value", "type": "float", "value": 0, "min": 0, "max": 1, "clamped": true}, + "morph": {"vertex_count": 3, "deltas": {"count": 1, "values": [[1, 0, 2, 0]]}}, + "formulas": [ + {"output": "hip:/data/Test/Fig/Fig.dsf#hip?center_point/y", + "operations": [{"op": "push", "url": "Fig:/data/Test/Fig/Morphs/Test/Tall.dsf#Tall?value"}, + {"op": "push", "val": 2}, {"op": "mult"}]}, + {"output": "Fig:/data/Test/Fig/Morphs/Test/Wide.dsf#Wide?value", + "operations": [{"op": "push", "url": "Fig:/data/Test/Fig/Morphs/Test/Tall.dsf#Tall?value"}, + {"op": "push", "val": 0.5}, {"op": "mult"}]}, + {"output": "Fig:/data/Test/Fig/Morphs/Test/Wide.dsf#Wide?value", + "operations": [{"op": "push", "url": "hip:/data/Test/Fig/Fig.dsf#hip?rotation/x"}]} + ]} + ] +} diff --git a/tests/data/lib/data/Test/Fig/Morphs/Test/Wide.dsf b/tests/data/lib/data/Test/Fig/Morphs/Test/Wide.dsf new file mode 100644 index 0000000..721606c --- /dev/null +++ b/tests/data/lib/data/Test/Fig/Morphs/Test/Wide.dsf @@ -0,0 +1,8 @@ +{ + "file_version": "0.6.0.0", + "modifier_library": [ + {"id": "Wide", "parent": "/data/Test/Fig/Fig.dsf#Fig", + "channel": {"id": "value", "type": "float", "value": 0, "min": 0, "max": 1, "clamped": true}, + "morph": {"vertex_count": 3, "deltas": {"count": 2, "values": [[0, -1, 0, 0], [1, 1, 0, 0]]}}} + ] +} -- cgit v1.2.3