"""
Blender Handler Modules
Business logic implementations for Blender operations.
These handlers run inside Blender and are called by the addon.py socket server.
"""
# Import all handler functions for convenient access
from .scene import get_scene_info, get_object_info, get_viewport_screenshot, execute_code
from .mesh_analysis import mesh_stats, detect_topology_issues
from .topology_analysis import get_vertex_valence, get_triangle_faces, get_ngon_faces, analyze_cylindrical_structure, find_support_loops
from .viewport_advanced import set_shading_mode
from .remeshing import decimate, shrinkwrap_reproject, remesh_voxel, quadriflow_remesh
from .viewport import align_view_to_axis, frame_selected, focus_view_on_point, set_view_axis, orbit_view
from .shading import mark_seams_by_angle, mark_sharp_by_angle
from .modifiers import (
add_mirror_modifier,
add_shrinkwrap_modifier,
add_weighted_normal_modifier,
add_data_transfer_modifier,
add_decimate_modifier,
add_laplacian_smooth_modifier
)
from .mesh_ops import (
symmetrize_mesh,
smooth_vertices,
recalculate_normals,
merge_by_distance,
delete_loose,
dissolve_edge_loops,
dissolve_selected
)
from .selection import (
select_non_manifold,
select_by_valence,
select_triangles,
select_ngons,
select_edge_loop,
select_by_criteria,
get_selected_elements
)
from .topology_cleanup import tris_to_quads, align_vertex_to_loop, dissolve_edge_loop_by_selection, reduce_vertex_valence, fix_ngons
from .shading_validation import set_matcap_shading, toggle_wireframe_overlay, toggle_smooth_shading
from .snapping import set_snapping
from .camera import align_active_camera_to_view, set_camera_projection, set_active_camera
from .baking import bake_normals, bake_ambient_occlusion
__all__ = [
# Scene
'get_scene_info',
'get_object_info',
'get_viewport_screenshot',
'execute_code',
# Mesh Analysis
'mesh_stats',
'detect_topology_issues',
# Topology Analysis
'get_vertex_valence',
'get_triangle_faces',
'get_ngon_faces',
'analyze_cylindrical_structure',
# Viewport Advanced
'set_shading_mode',
# Remeshing
'decimate',
'shrinkwrap_reproject',
'remesh_voxel',
'quadriflow_remesh',
# Viewport
'align_view_to_axis',
'frame_selected',
'focus_view_on_point',
'set_view_axis',
'orbit_view',
# Shading
'mark_seams_by_angle',
'mark_sharp_by_angle',
# Modifiers
'add_mirror_modifier',
'add_shrinkwrap_modifier',
'add_weighted_normal_modifier',
'add_data_transfer_modifier',
'add_decimate_modifier',
'add_laplacian_smooth_modifier',
# Mesh Operations
'symmetrize_mesh',
'smooth_vertices',
'recalculate_normals',
'merge_by_distance',
'delete_loose',
'dissolve_edge_loops',
'dissolve_selected',
# Selection
'select_non_manifold',
'select_by_valence',
'select_triangles',
'select_ngons',
'select_edge_loop',
'select_by_criteria',
'get_selected_elements',
# Topology Cleanup
'tris_to_quads',
'align_vertex_to_loop',
'dissolve_edge_loop_by_selection',
'reduce_vertex_valence',
'fix_ngons',
# Shading Validation
'set_matcap_shading',
'toggle_wireframe_overlay',
'toggle_smooth_shading',
# Snapping
'set_snapping',
# Camera
'align_active_camera_to_view',
'set_camera_projection',
'set_active_camera',
# Baking
'bake_normals',
'bake_ambient_occlusion',
]