Merged
Conversation
fixed quick generation
There was a problem hiding this comment.
Pull request overview
Adds procedural leaf generation and leaf-aware export/distribution features across the C++ core, Python bindings, and Blender add-on.
Changes:
- Introduces C++ leaf generation (shape, venation, presets, LOD) with pybind11 bindings and tests.
- Adds Blender Leaf Shape node + leaf presets + upgraded leaves distribution node group (phyllotaxis, LOD, culling, billboards, normal transfer).
- Extends Pivot Painter (Unreal) export to optionally emit leaf attachment/facing textures when leaf attributes are present.
Reviewed changes
Copilot reviewed 32 out of 35 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/test_leaf_shape_generator.py | Adds Python integration tests for C++ leaf generator bindings. |
| tests/unit/test_leaf_presets.py | Adds unit tests for Blender-side leaf preset data. |
| python_classes/resources/node_groups.py | Implements v2 leaves distribution node group + procedural default leaf creation. |
| python_classes/presets/leaf_presets.py | Adds Blender UI leaf species preset data structure. |
| python_classes/presets/init.py | Re-exports leaf presets/helpers. |
| python_classes/pivot_painter/formats/unreal.py | Adds optional leaf attachment/facing EXR export path. |
| python_classes/pivot_painter/exporter.py | Detects leaf attributes and enables leaf data export. |
| python_classes/pivot_painter/core.py | Adds computation + pixel packing helpers for leaf attachment/facing textures. |
| python_classes/pivot_painter/init.py | Documents new leaf textures in package docstring. |
| python_classes/operators.py | Adds leaves distribution options + new leaf node operators. |
| python_classes/nodes/tree_function_nodes/tree_mesher_node.py | Adds guard for missing trunk function. |
| python_classes/nodes/tree_function_nodes/leaf_shape_node.py | Adds Leaf Shape node with generation + preset application behavior. |
| python_classes/nodes/tree_function_nodes/init.py | Registers LeafShapeNode. |
| python_classes/nodes/node_categories.py | Adds Leaf category for node editor. |
| python_classes/mesh_utils.py | Adds support for leaf meshes + vein_distance attribute. |
| pyproject.toml | Bumps add-on version to 5.4.0. |
| m_tree/tests/main.cpp | Replaces placeholder with a custom C++ test runner + extensive leaf tests. |
| m_tree/source/tree/Tree.cpp | Throws when executing a tree without a trunk function. |
| m_tree/source/meshers/manifold_mesher/ManifoldMesher.hpp | Adds phyllotaxis_angle attribute name. |
| m_tree/source/meshers/manifold_mesher/ManifoldMesher.cpp | Emits phyllotaxis_angle per cross-section (golden angle progression). |
| m_tree/source/leaf/VenationGenerator.hpp | Adds venation generator API and spatial hash types. |
| m_tree/source/leaf/VenationGenerator.cpp | Implements venation generation + vein_distance attribute computation. |
| m_tree/source/leaf/LeafShapeGenerator.hpp | Adds leaf shape generator API (superformula/margin/venation/deformation). |
| m_tree/source/leaf/LeafShapeGenerator.cpp | Implements contour sampling, triangulation, UVs, venation, deformation. |
| m_tree/source/leaf/LeafPresets.hpp | Adds C++ leaf preset struct and enums. |
| m_tree/source/leaf/LeafPresets.cpp | Adds C++ preset fixtures and lookup helpers. |
| m_tree/source/leaf/LeafLODGenerator.hpp | Adds LOD generator API. |
| m_tree/source/leaf/LeafLODGenerator.cpp | Implements card mesh, billboard cloud, and impostor view directions. |
| m_tree/python_bindings/main.cpp | Exposes leaf APIs + mesh float-attribute helpers to Python. |
| m_tree/pyproject.toml | Bumps core library version to 5.4.0. |
| blender_manifest.toml | Bumps Blender manifest version to 5.4.0. |
| VERSION | Bumps repo VERSION to 5_4_0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Added additional tests, added guards and type checks
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 39 out of 42 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WIP - Exploring