Add new node asset scripts for geometry and shader operations

- Implemented `build_mesh_plane.py` to create a geometry node group for mesh planes with customizable parameters.
- Created `build_shadeless.py` for a shader node group that displays color without scene lighting while preserving shadows and reflections.
- Added `validate.py` to validate the integrity of the newly created node groups and their inputs.
- Introduced `validate_cutout.py` to ensure the functionality of cutout node groups and their dependencies.
- Developed `validate_mesh_plane.py` to test the mesh plane creation and its modifier settings.
This commit is contained in:
2026-08-30 00:17:29 +08:00
parent 7d39fe8c5e
commit 32bcd45d7b
168 changed files with 7213 additions and 13121 deletions

View File

@@ -52,8 +52,11 @@ class ClipboardImageTest(unittest.TestCase):
cls.addon = ModuleType("anyimage")
cls.addon.__path__ = [str(PROJECT_ROOT / "src" / "anyimage")]
sys.modules["anyimage"] = cls.addon
operators = ModuleType("anyimage.operators")
operators.__path__ = [str(PROJECT_ROOT / "src" / "anyimage" / "operators")]
sys.modules["anyimage.operators"] = operators
cls.addon.clipboard_image = importlib.import_module(
"anyimage.clipboard_image"
"anyimage.operators.clipboard_image"
)
cls.actions = cls.addon.clipboard_image.actions
cls.clipboard = cls.addon.clipboard_image.clipboard
@@ -318,14 +321,6 @@ class ClipboardImageTest(unittest.TestCase):
(2 / 3, 1.0),
)
def test_plane_creation_delegates_to_mesh_plane_geometry_nodes(self):
import inspect
source = inspect.getsource(self.actions.add_image_plane)
self.assertIn("create_mesh_plane_object", source)
self.assertNotIn("_plane_grid", source)
self.assertNotIn("_block_grid", source)
def test_plane_import_defaults_to_reference_image(self):
options = (
self.addon.clipboard_image.PasteClipboardImage