Add cutout profile and teddy balloon height calculations

- Implemented cotangent Poisson field and Poisson balloon profile in cutout_profile.py.
- Added teddy balloon heights calculation and related functions in cutout_teddy.py.
- Introduced interaction utilities for image editing in interaction.py.
- Developed depth normalization and analysis functions in cutout_depth.py.
- Created a validation script for cutout assets in validate_cutout_asset.py.
This commit is contained in:
2026-08-27 22:46:57 +08:00
parent 6c8358f92f
commit 7d39fe8c5e
40 changed files with 3058 additions and 3896 deletions

View File

@@ -67,7 +67,13 @@ class PackTest(unittest.TestCase):
self.assertIn("operators/depth_plane/operator.py", names)
self.assertIn("operators/mesh_plane.py", names)
self.assertIn("operators/image.py", names)
self.assertIn("operators/balloon/operator.py", names)
self.assertIn("operators/cutout_geometry.py", names)
self.assertIn("operators/cutout_nodes.py", names)
self.assertIn("operators/cutout_depth.py", names)
self.assertIn("operators/cutout_profile.py", names)
self.assertIn("operators/cutout_teddy.py", names)
self.assertNotIn("operators/cutout_poisson.py", names)
self.assertNotIn("operators/balloon/operator.py", names)
self.assertIn("operators/image_edit/__init__.py", names)
self.assertIn("operators/image_edit/common.py", names)
self.assertIn("operators/image_edit/mask.py", names)
@@ -76,6 +82,7 @@ class PackTest(unittest.TestCase):
self.assertIn("operators/image_edit/line.py", names)
self.assertIn("operators/image_edit/polyline.py", names)
self.assertIn("operators/image_edit/perspective.py", names)
self.assertIn("operators/image_edit/interaction.py", names)
self.assertIn("operators/surface.py", names)
self.assertIn(
"assets/O_AnyImage.blend",
@@ -87,6 +94,8 @@ class PackTest(unittest.TestCase):
self.assertIn("server/geometry/surface.py", names)
self.assertIn("server/jobs/background.py", names)
self.assertIn("server/jobs/image_mask.py", names)
self.assertIn("server/jobs/cutout_depth.py", names)
self.assertNotIn("server/jobs/balloon.py", names)
self.assertIn("server/models/ben2.py", names)
self.assertIn("server/models/da3.py", names)
self.assertIn("server/models/moge2.py", names)