Files
AnyImage/tools/nodes/arrangement/dimensions.json
nan 31074bd511 Add tests and implement boundary smoothing and cutout functionality
- Introduced tests for boundary smoothing in `test_boundary_smoothing.py`, verifying that smoothing reduces stair-step artifacts while preserving boundary integrity.
- Added tests for cutout boundary behavior in `test_cutout_boundary.py`, ensuring proper handling of boundary triangles and normal blending.
- Created `test_temporary_attributes.py` to check the cleanup of temporary attributes across depth modifier branches, ensuring no warnings are raised.
- Implemented point culling functionality in `test_validity.py`, confirming that invalid points are removed without affecting adjacent geometry.
- Developed boundary smoothing logic in `boundary_smoothing.py`, allowing for depth smoothing while maintaining edge integrity.
- Added cutout boundary management in `cutout_boundary.py`, including functions for removing boundary triangles and tapering thickness profiles.
- Implemented validity checks in `validity.py` to ensure proper deletion of invalid vertices and associated wire edges.
2026-09-11 20:37:20 +08:00

78 lines
2.4 KiB
JSON

{
"blender_version": "4.5",
"header": 32,
"row": 24,
"padding": 12,
"width": 180,
"wide_width": 220,
"collapsed_height": 36,
"controls": {
"FunctionNodeBooleanMath": 1,
"FunctionNodeCompare": 2,
"FunctionNodeFloatToInt": 1,
"FunctionNodeIntegerMath": 1,
"FunctionNodeSeparateColor": 1,
"GeometryNodeAccumulateField": 2,
"GeometryNodeAttributeStatistic": 2,
"GeometryNodeAttributeDomainSize": 1,
"GeometryNodeBlurAttribute": 1,
"GeometryNodeBoundBox": 0,
"GeometryNodeCornersOfEdge": 0,
"GeometryNodeCornersOfFace": 0,
"GeometryNodeDeleteGeometry": 2,
"GeometryNodeEdgesOfCorner": 0,
"GeometryNodeExtrudeMesh": 1,
"GeometryNodeFaceOfCorner": 0,
"GeometryNodeFieldAtIndex": 2,
"GeometryNodeFieldOnDomain": 2,
"GeometryNodeForeachGeometryElementInput": 0,
"GeometryNodeForeachGeometryElementOutput": 4,
"GeometryNodeFlipFaces": 0,
"GeometryNodeGroup": 1,
"GeometryNodeImageTexture": 2,
"GeometryNodeImageInfo": 0,
"GeometryNodeSetMaterial": 0,
"GeometryNodeInputIndex": 0,
"GeometryNodeInputMeshEdgeNeighbors": 0,
"GeometryNodeInputMeshEdgeVertices": 0,
"GeometryNodeInputMeshFaceArea": 0,
"GeometryNodeInputMeshFaceNeighbors": 0,
"GeometryNodeInputMeshIsland": 0,
"GeometryNodeInputMeshVertexNeighbors": 0,
"GeometryNodeInputNamedAttribute": 1,
"GeometryNodeInputNormal": 0,
"GeometryNodeInputPosition": 0,
"GeometryNodeJoinGeometry": 0,
"GeometryNodeMenuSwitch": 3,
"GeometryNodeMergeByDistance": 1,
"GeometryNodeMeshCube": 0,
"GeometryNodeMeshGrid": 0,
"GeometryNodeOffsetCornerInFace": 0,
"GeometryNodeRemoveAttribute": 1,
"GeometryNodeRepeatInput": 0,
"GeometryNodeRepeatOutput": 3,
"GeometryNodeSampleIndex": 3,
"GeometryNodeSampleNearest": 1,
"GeometryNodeSeparateGeometry": 1,
"GeometryNodeSetMaterialIndex": 0,
"GeometryNodeSetPosition": 0,
"GeometryNodeSetShadeSmooth": 1,
"GeometryNodeSimulationInput": 0,
"GeometryNodeSimulationOutput": 3,
"GeometryNodeSplitEdges": 0,
"GeometryNodeStoreNamedAttribute": 2,
"GeometryNodeSwitch": 1,
"GeometryNodeTransform": 1,
"GeometryNodeVertexOfCorner": 0,
"NodeGroupInput": 0,
"NodeGroupOutput": 0,
"ShaderNodeClamp": 1,
"ShaderNodeCombineXYZ": 0,
"ShaderNodeMapRange": 3,
"ShaderNodeMath": 2,
"ShaderNodeMix": 3,
"ShaderNodeSeparateXYZ": 0,
"ShaderNodeVectorMath": 1
}
}