diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/libigl/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/libigl/igl/AABB.cpp (renamed from src/igl/AABB.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/AABB.h (renamed from src/igl/AABB.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ARAPEnergyType.h (renamed from src/igl/ARAPEnergyType.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/AtA_cached.cpp (renamed from src/igl/AtA_cached.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/AtA_cached.h (renamed from src/igl/AtA_cached.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/C_STR.h (renamed from src/igl/C_STR.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Camera.h (renamed from src/igl/Camera.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/EPS.cpp (renamed from src/igl/EPS.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/EPS.h (renamed from src/igl/EPS.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/HalfEdgeIterator.cpp (renamed from src/igl/HalfEdgeIterator.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/HalfEdgeIterator.h (renamed from src/igl/HalfEdgeIterator.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Hit.h (renamed from src/igl/Hit.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/IO (renamed from src/igl/IO) | 0 | ||||
-rw-r--r-- | src/libigl/igl/IndexComparison.h (renamed from src/igl/IndexComparison.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/LinSpaced.h (renamed from src/igl/LinSpaced.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/MeshBooleanType.h (renamed from src/igl/MeshBooleanType.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/NormalType.h (renamed from src/igl/NormalType.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ONE.h (renamed from src/igl/ONE.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/PI.h (renamed from src/igl/PI.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/REDRUM.h (renamed from src/igl/REDRUM.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/STR.h (renamed from src/igl/STR.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp (renamed from src/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp (renamed from src/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp (renamed from src/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp (renamed from src/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Singular_Value_Decomposition_Preamble.hpp (renamed from src/igl/Singular_Value_Decomposition_Preamble.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/SolverStatus.h (renamed from src/igl/SolverStatus.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/SortableRow.h (renamed from src/igl/SortableRow.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Timer.h (renamed from src/igl/Timer.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/Viewport.h (renamed from src/igl/Viewport.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/WindingNumberAABB.h (renamed from src/igl/WindingNumberAABB.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/WindingNumberMethod.h (renamed from src/igl/WindingNumberMethod.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/WindingNumberTree.h (renamed from src/igl/WindingNumberTree.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ZERO.h (renamed from src/igl/ZERO.h) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/active_set.cpp (renamed from src/igl/active_set.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/active_set.h (renamed from src/igl/active_set.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/adjacency_list.cpp (renamed from src/igl/adjacency_list.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/adjacency_list.h (renamed from src/igl/adjacency_list.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/adjacency_matrix.cpp (renamed from src/igl/adjacency_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/adjacency_matrix.h (renamed from src/igl/adjacency_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all.cpp (renamed from src/igl/all.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all.h (renamed from src/igl/all.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all_edges.cpp (renamed from src/igl/all_edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all_edges.h (renamed from src/igl/all_edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all_pairs_distances.cpp (renamed from src/igl/all_pairs_distances.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/all_pairs_distances.h (renamed from src/igl/all_pairs_distances.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ambient_occlusion.cpp (renamed from src/igl/ambient_occlusion.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ambient_occlusion.h (renamed from src/igl/ambient_occlusion.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/angular_distance.cpp (renamed from src/igl/angular_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/angular_distance.h (renamed from src/igl/angular_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/anttweakbar/ReAntTweakBar.cpp (renamed from src/igl/anttweakbar/ReAntTweakBar.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/anttweakbar/ReAntTweakBar.h (renamed from src/igl/anttweakbar/ReAntTweakBar.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp (renamed from src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h (renamed from src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/any.cpp (renamed from src/igl/any.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/any.h (renamed from src/igl/any.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/any_of.cpp (renamed from src/igl/any_of.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/any_of.h (renamed from src/igl/any_of.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap.cpp (renamed from src/igl/arap.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap.h (renamed from src/igl/arap.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_dof.cpp (renamed from src/igl/arap_dof.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_dof.h (renamed from src/igl/arap_dof.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_linear_block.cpp (renamed from src/igl/arap_linear_block.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_linear_block.h (renamed from src/igl/arap_linear_block.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_rhs.cpp (renamed from src/igl/arap_rhs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/arap_rhs.h (renamed from src/igl/arap_rhs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/average_onto_faces.cpp (renamed from src/igl/average_onto_faces.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/average_onto_faces.h (renamed from src/igl/average_onto_faces.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/average_onto_vertices.cpp (renamed from src/igl/average_onto_vertices.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/average_onto_vertices.h (renamed from src/igl/average_onto_vertices.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/avg_edge_length.cpp (renamed from src/igl/avg_edge_length.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/avg_edge_length.h (renamed from src/igl/avg_edge_length.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/axis_angle_to_quat.cpp (renamed from src/igl/axis_angle_to_quat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/axis_angle_to_quat.h (renamed from src/igl/axis_angle_to_quat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/barycenter.cpp (renamed from src/igl/barycenter.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/barycenter.h (renamed from src/igl/barycenter.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/barycentric_coordinates.cpp (renamed from src/igl/barycentric_coordinates.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/barycentric_coordinates.h (renamed from src/igl/barycentric_coordinates.h) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/barycentric_to_global.cpp (renamed from src/igl/barycentric_to_global.cpp) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/barycentric_to_global.h (renamed from src/igl/barycentric_to_global.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/basename.cpp (renamed from src/igl/basename.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/basename.h (renamed from src/igl/basename.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bbw.cpp (renamed from src/igl/bbw.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bbw.h (renamed from src/igl/bbw.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bfs.cpp (renamed from src/igl/bfs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bfs.h (renamed from src/igl/bfs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bfs_orient.cpp (renamed from src/igl/bfs_orient.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bfs_orient.h (renamed from src/igl/bfs_orient.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/biharmonic_coordinates.cpp (renamed from src/igl/biharmonic_coordinates.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/biharmonic_coordinates.h (renamed from src/igl/biharmonic_coordinates.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bijective_composite_harmonic_mapping.cpp (renamed from src/igl/bijective_composite_harmonic_mapping.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bijective_composite_harmonic_mapping.h (renamed from src/igl/bijective_composite_harmonic_mapping.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bone_parents.cpp (renamed from src/igl/bone_parents.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bone_parents.h (renamed from src/igl/bone_parents.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/boundary_conditions.cpp (renamed from src/igl/boundary_conditions.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/boundary_conditions.h (renamed from src/igl/boundary_conditions.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/boundary_facets.cpp (renamed from src/igl/boundary_facets.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/boundary_facets.h (renamed from src/igl/boundary_facets.h) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/boundary_loop.cpp (renamed from src/igl/boundary_loop.cpp) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/boundary_loop.h (renamed from src/igl/boundary_loop.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bounding_box.cpp (renamed from src/igl/bounding_box.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bounding_box.h (renamed from src/igl/bounding_box.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bounding_box_diagonal.cpp (renamed from src/igl/bounding_box_diagonal.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/bounding_box_diagonal.h (renamed from src/igl/bounding_box_diagonal.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/canonical_quaternions.cpp (renamed from src/igl/canonical_quaternions.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/canonical_quaternions.h (renamed from src/igl/canonical_quaternions.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cat.cpp (renamed from src/igl/cat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cat.h (renamed from src/igl/cat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ceil.cpp (renamed from src/igl/ceil.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ceil.h (renamed from src/igl/ceil.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/centroid.cpp (renamed from src/igl/centroid.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/centroid.h (renamed from src/igl/centroid.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/circulation.cpp (renamed from src/igl/circulation.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/circulation.h (renamed from src/igl/circulation.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/circumradius.cpp (renamed from src/igl/circumradius.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/circumradius.h (renamed from src/igl/circumradius.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/collapse_edge.cpp (renamed from src/igl/collapse_edge.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/collapse_edge.h (renamed from src/igl/collapse_edge.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/collapse_small_triangles.cpp (renamed from src/igl/collapse_small_triangles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/collapse_small_triangles.h (renamed from src/igl/collapse_small_triangles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/colon.cpp (renamed from src/igl/colon.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/colon.h (renamed from src/igl/colon.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/colormap.cpp (renamed from src/igl/colormap.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/colormap.h (renamed from src/igl/colormap.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/column_to_quats.cpp (renamed from src/igl/column_to_quats.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/column_to_quats.h (renamed from src/igl/column_to_quats.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/columnize.cpp (renamed from src/igl/columnize.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/columnize.h (renamed from src/igl/columnize.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_cross_field.cpp (renamed from src/igl/comb_cross_field.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_cross_field.h (renamed from src/igl/comb_cross_field.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_frame_field.cpp (renamed from src/igl/comb_frame_field.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_frame_field.h (renamed from src/igl/comb_frame_field.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_line_field.cpp (renamed from src/igl/comb_line_field.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/comb_line_field.h (renamed from src/igl/comb_line_field.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/combine.cpp (renamed from src/igl/combine.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/combine.h (renamed from src/igl/combine.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/components.cpp (renamed from src/igl/components.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/components.h (renamed from src/igl/components.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/compute_frame_field_bisectors.cpp (renamed from src/igl/compute_frame_field_bisectors.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/compute_frame_field_bisectors.h (renamed from src/igl/compute_frame_field_bisectors.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/connect_boundary_to_infinity.cpp (renamed from src/igl/connect_boundary_to_infinity.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/connect_boundary_to_infinity.h (renamed from src/igl/connect_boundary_to_infinity.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/README.md (renamed from src/igl/copyleft/README.md) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/BinaryWindingNumberOperations.h (renamed from src/igl/copyleft/cgal/BinaryWindingNumberOperations.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/CGAL_includes.hpp (renamed from src/igl/copyleft/cgal/CGAL_includes.hpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/CSGTree.h (renamed from src/igl/copyleft/cgal/CSGTree.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h (renamed from src/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/SelfIntersectMesh.h (renamed from src/igl/copyleft/cgal/SelfIntersectMesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/assign.cpp (renamed from src/igl/copyleft/cgal/assign.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/assign.h (renamed from src/igl/copyleft/cgal/assign.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/assign_scalar.cpp (renamed from src/igl/copyleft/cgal/assign_scalar.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/assign_scalar.h (renamed from src/igl/copyleft/cgal/assign_scalar.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/barycenter.cpp (renamed from src/igl/copyleft/cgal/barycenter.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/cell_adjacency.cpp (renamed from src/igl/copyleft/cgal/cell_adjacency.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/cell_adjacency.h (renamed from src/igl/copyleft/cgal/cell_adjacency.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/closest_facet.cpp (renamed from src/igl/copyleft/cgal/closest_facet.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/closest_facet.h (renamed from src/igl/copyleft/cgal/closest_facet.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/complex_to_mesh.cpp (renamed from src/igl/copyleft/cgal/complex_to_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/complex_to_mesh.h (renamed from src/igl/copyleft/cgal/complex_to_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/component_inside_component.cpp (renamed from src/igl/copyleft/cgal/component_inside_component.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/component_inside_component.h (renamed from src/igl/copyleft/cgal/component_inside_component.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/convex_hull.cpp (renamed from src/igl/copyleft/cgal/convex_hull.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/convex_hull.h (renamed from src/igl/copyleft/cgal/convex_hull.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/delaunay_triangulation.cpp (renamed from src/igl/copyleft/cgal/delaunay_triangulation.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/delaunay_triangulation.h (renamed from src/igl/copyleft/cgal/delaunay_triangulation.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/extract_cells.cpp (renamed from src/igl/copyleft/cgal/extract_cells.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/extract_cells.h (renamed from src/igl/copyleft/cgal/extract_cells.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/extract_feature.cpp (renamed from src/igl/copyleft/cgal/extract_feature.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/extract_feature.h (renamed from src/igl/copyleft/cgal/extract_feature.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/fast_winding_number.cpp (renamed from src/igl/copyleft/cgal/fast_winding_number.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/fast_winding_number.h (renamed from src/igl/copyleft/cgal/fast_winding_number.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/half_space_box.cpp (renamed from src/igl/copyleft/cgal/half_space_box.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/half_space_box.h (renamed from src/igl/copyleft/cgal/half_space_box.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/hausdorff.cpp (renamed from src/igl/copyleft/cgal/hausdorff.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/hausdorff.h (renamed from src/igl/copyleft/cgal/hausdorff.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/incircle.cpp (renamed from src/igl/copyleft/cgal/incircle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/incircle.h (renamed from src/igl/copyleft/cgal/incircle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/insert_into_cdt.cpp (renamed from src/igl/copyleft/cgal/insert_into_cdt.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/insert_into_cdt.h (renamed from src/igl/copyleft/cgal/insert_into_cdt.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/insphere.cpp (renamed from src/igl/copyleft/cgal/insphere.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/insphere.h (renamed from src/igl/copyleft/cgal/insphere.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/intersect_other.cpp (renamed from src/igl/copyleft/cgal/intersect_other.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/intersect_other.h (renamed from src/igl/copyleft/cgal/intersect_other.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/intersect_with_half_space.cpp (renamed from src/igl/copyleft/cgal/intersect_with_half_space.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/intersect_with_half_space.h (renamed from src/igl/copyleft/cgal/intersect_with_half_space.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/lexicographic_triangulation.cpp (renamed from src/igl/copyleft/cgal/lexicographic_triangulation.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/lexicographic_triangulation.h (renamed from src/igl/copyleft/cgal/lexicographic_triangulation.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/list_to_matrix.cpp (renamed from src/igl/copyleft/cgal/list_to_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_boolean.cpp (renamed from src/igl/copyleft/cgal/mesh_boolean.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_boolean.h (renamed from src/igl/copyleft/cgal/mesh_boolean.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp (renamed from src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h (renamed from src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp (renamed from src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h (renamed from src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.cpp (renamed from src/igl/copyleft/cgal/mesh_to_polyhedron.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.h (renamed from src/igl/copyleft/cgal/mesh_to_polyhedron.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/minkowski_sum.cpp (renamed from src/igl/copyleft/cgal/minkowski_sum.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/minkowski_sum.h (renamed from src/igl/copyleft/cgal/minkowski_sum.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/order_facets_around_edge.cpp (renamed from src/igl/copyleft/cgal/order_facets_around_edge.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/order_facets_around_edge.h (renamed from src/igl/copyleft/cgal/order_facets_around_edge.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/order_facets_around_edges.cpp (renamed from src/igl/copyleft/cgal/order_facets_around_edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/order_facets_around_edges.h (renamed from src/igl/copyleft/cgal/order_facets_around_edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/orient2D.cpp (renamed from src/igl/copyleft/cgal/orient2D.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/orient2D.h (renamed from src/igl/copyleft/cgal/orient2D.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/orient3D.cpp (renamed from src/igl/copyleft/cgal/orient3D.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/orient3D.h (renamed from src/igl/copyleft/cgal/orient3D.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_element.cpp (renamed from src/igl/copyleft/cgal/outer_element.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_element.h (renamed from src/igl/copyleft/cgal/outer_element.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_facet.cpp (renamed from src/igl/copyleft/cgal/outer_facet.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_facet.h (renamed from src/igl/copyleft/cgal/outer_facet.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_hull.cpp (renamed from src/igl/copyleft/cgal/outer_hull.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/outer_hull.h (renamed from src/igl/copyleft/cgal/outer_hull.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.cpp (renamed from src/igl/copyleft/cgal/peel_outer_hull_layers.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.h (renamed from src/igl/copyleft/cgal/peel_outer_hull_layers.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/peel_winding_number_layers.cpp (renamed from src/igl/copyleft/cgal/peel_winding_number_layers.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/peel_winding_number_layers.h (renamed from src/igl/copyleft/cgal/peel_winding_number_layers.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.cpp (renamed from src/igl/copyleft/cgal/piecewise_constant_winding_number.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.h (renamed from src/igl/copyleft/cgal/piecewise_constant_winding_number.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_areas.cpp (renamed from src/igl/copyleft/cgal/point_areas.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_areas.h (renamed from src/igl/copyleft/cgal/point_areas.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.cpp (renamed from src/igl/copyleft/cgal/point_mesh_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.h (renamed from src/igl/copyleft/cgal/point_mesh_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_segment_squared_distance.cpp (renamed from src/igl/copyleft/cgal/point_segment_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_segment_squared_distance.h (renamed from src/igl/copyleft/cgal/point_segment_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp (renamed from src/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.h (renamed from src/igl/copyleft/cgal/point_solid_signed_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.cpp (renamed from src/igl/copyleft/cgal/point_triangle_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.h (renamed from src/igl/copyleft/cgal/point_triangle_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/points_inside_component.cpp (renamed from src/igl/copyleft/cgal/points_inside_component.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/points_inside_component.h (renamed from src/igl/copyleft/cgal/points_inside_component.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.cpp (renamed from src/igl/copyleft/cgal/polyhedron_to_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.h (renamed from src/igl/copyleft/cgal/polyhedron_to_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/projected_cdt.cpp (renamed from src/igl/copyleft/cgal/projected_cdt.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/projected_cdt.h (renamed from src/igl/copyleft/cgal/projected_cdt.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/projected_delaunay.cpp (renamed from src/igl/copyleft/cgal/projected_delaunay.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/projected_delaunay.h (renamed from src/igl/copyleft/cgal/projected_delaunay.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/propagate_winding_numbers.cpp (renamed from src/igl/copyleft/cgal/propagate_winding_numbers.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/propagate_winding_numbers.h (renamed from src/igl/copyleft/cgal/propagate_winding_numbers.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/read_triangle_mesh.cpp (renamed from src/igl/copyleft/cgal/read_triangle_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/read_triangle_mesh.h (renamed from src/igl/copyleft/cgal/read_triangle_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.cpp (renamed from src/igl/copyleft/cgal/relabel_small_immersed_cells.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.h (renamed from src/igl/copyleft/cgal/relabel_small_immersed_cells.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/remesh_intersections.cpp (renamed from src/igl/copyleft/cgal/remesh_intersections.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/remesh_intersections.h (renamed from src/igl/copyleft/cgal/remesh_intersections.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/remesh_self_intersections.cpp (renamed from src/igl/copyleft/cgal/remesh_self_intersections.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/remesh_self_intersections.h (renamed from src/igl/copyleft/cgal/remesh_self_intersections.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/remove_unreferenced.cpp (renamed from src/igl/copyleft/cgal/remove_unreferenced.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/resolve_intersections.cpp (renamed from src/igl/copyleft/cgal/resolve_intersections.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/resolve_intersections.h (renamed from src/igl/copyleft/cgal/resolve_intersections.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/row_to_point.cpp (renamed from src/igl/copyleft/cgal/row_to_point.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/row_to_point.h (renamed from src/igl/copyleft/cgal/row_to_point.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.cpp (renamed from src/igl/copyleft/cgal/segment_segment_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.h (renamed from src/igl/copyleft/cgal/segment_segment_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/signed_distance_isosurface.cpp (renamed from src/igl/copyleft/cgal/signed_distance_isosurface.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/signed_distance_isosurface.h (renamed from src/igl/copyleft/cgal/signed_distance_isosurface.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/slice.cpp (renamed from src/igl/copyleft/cgal/slice.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/slice_mask.cpp (renamed from src/igl/copyleft/cgal/slice_mask.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/snap_rounding.cpp (renamed from src/igl/copyleft/cgal/snap_rounding.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/snap_rounding.h (renamed from src/igl/copyleft/cgal/snap_rounding.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp (renamed from src/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.h (renamed from src/igl/copyleft/cgal/string_to_mesh_boolean_type.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/subdivide_segments.cpp (renamed from src/igl/copyleft/cgal/subdivide_segments.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/subdivide_segments.h (renamed from src/igl/copyleft/cgal/subdivide_segments.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/submesh_aabb_tree.cpp (renamed from src/igl/copyleft/cgal/submesh_aabb_tree.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/submesh_aabb_tree.h (renamed from src/igl/copyleft/cgal/submesh_aabb_tree.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp (renamed from src/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.h (renamed from src/igl/copyleft/cgal/triangle_triangle_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/trim_with_solid.cpp (renamed from src/igl/copyleft/cgal/trim_with_solid.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/trim_with_solid.h (renamed from src/igl/copyleft/cgal/trim_with_solid.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/unique.cpp (renamed from src/igl/copyleft/cgal/unique.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/unique_rows.cpp (renamed from src/igl/copyleft/cgal/unique_rows.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/wire_mesh.cpp (renamed from src/igl/copyleft/cgal/wire_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cgal/wire_mesh.h (renamed from src/igl/copyleft/cgal/wire_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/frame_field.cpp (renamed from src/igl/copyleft/comiso/frame_field.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/frame_field.h (renamed from src/igl/copyleft/comiso/frame_field.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/miq.cpp (renamed from src/igl/copyleft/comiso/miq.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/miq.h (renamed from src/igl/copyleft/comiso/miq.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/nrosy.cpp (renamed from src/igl/copyleft/comiso/nrosy.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/comiso/nrosy.h (renamed from src/igl/copyleft/comiso/nrosy.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/from_cork_mesh.cpp (renamed from src/igl/copyleft/cork/from_cork_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/from_cork_mesh.h (renamed from src/igl/copyleft/cork/from_cork_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/mesh_boolean.cpp (renamed from src/igl/copyleft/cork/mesh_boolean.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/mesh_boolean.h (renamed from src/igl/copyleft/cork/mesh_boolean.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/to_cork_mesh.cpp (renamed from src/igl/copyleft/cork/to_cork_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/cork/to_cork_mesh.h (renamed from src/igl/copyleft/cork/to_cork_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/marching_cubes.cpp (renamed from src/igl/copyleft/marching_cubes.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/marching_cubes.h (renamed from src/igl/copyleft/marching_cubes.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/marching_cubes_tables.h (renamed from src/igl/copyleft/marching_cubes_tables.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/offset_surface.cpp (renamed from src/igl/copyleft/offset_surface.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/offset_surface.h (renamed from src/igl/copyleft/offset_surface.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/render_to_tga.cpp (renamed from src/igl/copyleft/opengl2/render_to_tga.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/render_to_tga.h (renamed from src/igl/copyleft/opengl2/render_to_tga.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/texture_from_tga.cpp (renamed from src/igl/copyleft/opengl2/texture_from_tga.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/texture_from_tga.h (renamed from src/igl/copyleft/opengl2/texture_from_tga.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/tga.cpp (renamed from src/igl/copyleft/opengl2/tga.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/opengl2/tga.h (renamed from src/igl/copyleft/opengl2/tga.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/progressive_hulls.cpp (renamed from src/igl/copyleft/progressive_hulls.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/progressive_hulls.h (renamed from src/igl/copyleft/progressive_hulls.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.cpp (renamed from src/igl/copyleft/progressive_hulls_cost_and_placement.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.h (renamed from src/igl/copyleft/progressive_hulls_cost_and_placement.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/quadprog.cpp (renamed from src/igl/copyleft/quadprog.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/quadprog.h (renamed from src/igl/copyleft/quadprog.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/swept_volume.cpp (renamed from src/igl/copyleft/swept_volume.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/swept_volume.h (renamed from src/igl/copyleft/swept_volume.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/README (renamed from src/igl/copyleft/tetgen/README) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/cdt.cpp (renamed from src/igl/copyleft/tetgen/cdt.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/cdt.h (renamed from src/igl/copyleft/tetgen/cdt.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.cpp (renamed from src/igl/copyleft/tetgen/mesh_to_tetgenio.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.h (renamed from src/igl/copyleft/tetgen/mesh_to_tetgenio.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.cpp (renamed from src/igl/copyleft/tetgen/mesh_with_skeleton.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.h (renamed from src/igl/copyleft/tetgen/mesh_with_skeleton.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/read_into_tetgenio.cpp (renamed from src/igl/copyleft/tetgen/read_into_tetgenio.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/read_into_tetgenio.h (renamed from src/igl/copyleft/tetgen/read_into_tetgenio.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp (renamed from src/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.h (renamed from src/igl/copyleft/tetgen/tetgenio_to_tetmesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/tetrahedralize.cpp (renamed from src/igl/copyleft/tetgen/tetrahedralize.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/copyleft/tetgen/tetrahedralize.h (renamed from src/igl/copyleft/tetgen/tetrahedralize.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cotmatrix.cpp (renamed from src/igl/cotmatrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cotmatrix.h (renamed from src/igl/cotmatrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cotmatrix_entries.cpp (renamed from src/igl/cotmatrix_entries.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cotmatrix_entries.h (renamed from src/igl/cotmatrix_entries.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/count.cpp (renamed from src/igl/count.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/count.h (renamed from src/igl/count.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/covariance_scatter_matrix.cpp (renamed from src/igl/covariance_scatter_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/covariance_scatter_matrix.h (renamed from src/igl/covariance_scatter_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cross.cpp (renamed from src/igl/cross.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cross.h (renamed from src/igl/cross.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cross_field_missmatch.cpp (renamed from src/igl/cross_field_missmatch.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cross_field_missmatch.h (renamed from src/igl/cross_field_missmatch.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/crouzeix_raviart_cotmatrix.cpp (renamed from src/igl/crouzeix_raviart_cotmatrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/crouzeix_raviart_cotmatrix.h (renamed from src/igl/crouzeix_raviart_cotmatrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/crouzeix_raviart_massmatrix.cpp (renamed from src/igl/crouzeix_raviart_massmatrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/crouzeix_raviart_massmatrix.h (renamed from src/igl/crouzeix_raviart_massmatrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cumsum.cpp (renamed from src/igl/cumsum.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cumsum.h (renamed from src/igl/cumsum.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cut_mesh.cpp (renamed from src/igl/cut_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cut_mesh.h (renamed from src/igl/cut_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cut_mesh_from_singularities.cpp (renamed from src/igl/cut_mesh_from_singularities.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cut_mesh_from_singularities.h (renamed from src/igl/cut_mesh_from_singularities.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cylinder.cpp (renamed from src/igl/cylinder.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/cylinder.h (renamed from src/igl/cylinder.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dated_copy.cpp (renamed from src/igl/dated_copy.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dated_copy.h (renamed from src/igl/dated_copy.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/decimate.cpp (renamed from src/igl/decimate.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/decimate.h (renamed from src/igl/decimate.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/deform_skeleton.cpp (renamed from src/igl/deform_skeleton.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/deform_skeleton.h (renamed from src/igl/deform_skeleton.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/delaunay_triangulation.cpp (renamed from src/igl/delaunay_triangulation.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/delaunay_triangulation.h (renamed from src/igl/delaunay_triangulation.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/deprecated.h (renamed from src/igl/deprecated.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dfs.cpp (renamed from src/igl/dfs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dfs.h (renamed from src/igl/dfs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/diag.cpp (renamed from src/igl/diag.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/diag.h (renamed from src/igl/diag.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dihedral_angles.cpp (renamed from src/igl/dihedral_angles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dihedral_angles.h (renamed from src/igl/dihedral_angles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dijkstra.cpp (renamed from src/igl/dijkstra.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dijkstra.h (renamed from src/igl/dijkstra.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/directed_edge_orientations.cpp (renamed from src/igl/directed_edge_orientations.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/directed_edge_orientations.h (renamed from src/igl/directed_edge_orientations.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/directed_edge_parents.cpp (renamed from src/igl/directed_edge_parents.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/directed_edge_parents.h (renamed from src/igl/directed_edge_parents.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dirname.cpp (renamed from src/igl/dirname.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dirname.h (renamed from src/igl/dirname.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dot.cpp (renamed from src/igl/dot.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dot.h (renamed from src/igl/dot.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dot_row.cpp (renamed from src/igl/dot_row.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dot_row.h (renamed from src/igl/dot_row.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/doublearea.cpp (renamed from src/igl/doublearea.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/doublearea.h (renamed from src/igl/doublearea.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dqs.cpp (renamed from src/igl/dqs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/dqs.h (renamed from src/igl/dqs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ears.cpp (renamed from src/igl/ears.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ears.h (renamed from src/igl/ears.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_collapse_is_valid.cpp (renamed from src/igl/edge_collapse_is_valid.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_collapse_is_valid.h (renamed from src/igl/edge_collapse_is_valid.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_flaps.cpp (renamed from src/igl/edge_flaps.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_flaps.h (renamed from src/igl/edge_flaps.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_lengths.cpp (renamed from src/igl/edge_lengths.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_lengths.h (renamed from src/igl/edge_lengths.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_topology.cpp (renamed from src/igl/edge_topology.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edge_topology.h (renamed from src/igl/edge_topology.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edges.cpp (renamed from src/igl/edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edges.h (renamed from src/igl/edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edges_to_path.cpp (renamed from src/igl/edges_to_path.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/edges_to_path.h (renamed from src/igl/edges_to_path.h) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/eigs.cpp (renamed from src/igl/eigs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/eigs.h (renamed from src/igl/eigs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/EmbreeIntersector.h (renamed from src/igl/embree/EmbreeIntersector.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/Embree_convenience.h (renamed from src/igl/embree/Embree_convenience.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/ambient_occlusion.cpp (renamed from src/igl/embree/ambient_occlusion.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/ambient_occlusion.h (renamed from src/igl/embree/ambient_occlusion.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/bone_heat.cpp (renamed from src/igl/embree/bone_heat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/bone_heat.h (renamed from src/igl/embree/bone_heat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/bone_visible.cpp (renamed from src/igl/embree/bone_visible.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/bone_visible.h (renamed from src/igl/embree/bone_visible.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore.h (renamed from src/igl/embree/embree2/rtcore.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore.isph (renamed from src/igl/embree/embree2/rtcore.isph) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_geometry.h (renamed from src/igl/embree/embree2/rtcore_geometry.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_geometry.isph (renamed from src/igl/embree/embree2/rtcore_geometry.isph) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_geometry_user.h (renamed from src/igl/embree/embree2/rtcore_geometry_user.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_geometry_user.isph (renamed from src/igl/embree/embree2/rtcore_geometry_user.isph) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_ray.h (renamed from src/igl/embree/embree2/rtcore_ray.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_ray.isph (renamed from src/igl/embree/embree2/rtcore_ray.isph) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_scene.h (renamed from src/igl/embree/embree2/rtcore_scene.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/embree2/rtcore_scene.isph (renamed from src/igl/embree/embree2/rtcore_scene.isph) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/line_mesh_intersection.cpp (renamed from src/igl/embree/line_mesh_intersection.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/line_mesh_intersection.h (renamed from src/igl/embree/line_mesh_intersection.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/reorient_facets_raycast.cpp (renamed from src/igl/embree/reorient_facets_raycast.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/reorient_facets_raycast.h (renamed from src/igl/embree/reorient_facets_raycast.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/shape_diameter_function.cpp (renamed from src/igl/embree/shape_diameter_function.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/shape_diameter_function.h (renamed from src/igl/embree/shape_diameter_function.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/unproject_in_mesh.cpp (renamed from src/igl/embree/unproject_in_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/unproject_in_mesh.h (renamed from src/igl/embree/unproject_in_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/unproject_onto_mesh.cpp (renamed from src/igl/embree/unproject_onto_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/embree/unproject_onto_mesh.h (renamed from src/igl/embree/unproject_onto_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/euler_characteristic.cpp (renamed from src/igl/euler_characteristic.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/euler_characteristic.h (renamed from src/igl/euler_characteristic.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/exact_geodesic.cpp (renamed from src/igl/exact_geodesic.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/exact_geodesic.h (renamed from src/igl/exact_geodesic.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/example_fun.cpp (renamed from src/igl/example_fun.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/example_fun.h (renamed from src/igl/example_fun.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/exterior_edges.cpp (renamed from src/igl/exterior_edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/exterior_edges.h (renamed from src/igl/exterior_edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/extract_manifold_patches.cpp (renamed from src/igl/extract_manifold_patches.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/extract_manifold_patches.h (renamed from src/igl/extract_manifold_patches.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/extract_non_manifold_edge_curves.cpp (renamed from src/igl/extract_non_manifold_edge_curves.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/extract_non_manifold_edge_curves.h (renamed from src/igl/extract_non_manifold_edge_curves.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/face_areas.cpp (renamed from src/igl/face_areas.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/face_areas.h (renamed from src/igl/face_areas.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/face_occurrences.cpp (renamed from src/igl/face_occurrences.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/face_occurrences.h (renamed from src/igl/face_occurrences.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/faces_first.cpp (renamed from src/igl/faces_first.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/faces_first.h (renamed from src/igl/faces_first.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/facet_components.cpp (renamed from src/igl/facet_components.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/facet_components.h (renamed from src/igl/facet_components.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/false_barycentric_subdivision.cpp (renamed from src/igl/false_barycentric_subdivision.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/false_barycentric_subdivision.h (renamed from src/igl/false_barycentric_subdivision.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fast_winding_number.cpp (renamed from src/igl/fast_winding_number.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fast_winding_number.h (renamed from src/igl/fast_winding_number.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_contents_as_string.cpp (renamed from src/igl/file_contents_as_string.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_contents_as_string.h (renamed from src/igl/file_contents_as_string.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_dialog_open.cpp (renamed from src/igl/file_dialog_open.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_dialog_open.h (renamed from src/igl/file_dialog_open.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_dialog_save.cpp (renamed from src/igl/file_dialog_save.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_dialog_save.h (renamed from src/igl/file_dialog_save.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_exists.cpp (renamed from src/igl/file_exists.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/file_exists.h (renamed from src/igl/file_exists.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find.cpp (renamed from src/igl/find.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find.h (renamed from src/igl/find.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find_cross_field_singularities.cpp (renamed from src/igl/find_cross_field_singularities.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find_cross_field_singularities.h (renamed from src/igl/find_cross_field_singularities.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find_zero.cpp (renamed from src/igl/find_zero.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/find_zero.h (renamed from src/igl/find_zero.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fit_plane.cpp (renamed from src/igl/fit_plane.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fit_plane.h (renamed from src/igl/fit_plane.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fit_rotations.cpp (renamed from src/igl/fit_rotations.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/fit_rotations.h (renamed from src/igl/fit_rotations.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flip_avoiding_line_search.cpp (renamed from src/igl/flip_avoiding_line_search.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flip_avoiding_line_search.h (renamed from src/igl/flip_avoiding_line_search.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flip_edge.cpp (renamed from src/igl/flip_edge.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flip_edge.h (renamed from src/igl/flip_edge.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flipped_triangles.cpp (renamed from src/igl/flipped_triangles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flipped_triangles.h (renamed from src/igl/flipped_triangles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flood_fill.cpp (renamed from src/igl/flood_fill.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/flood_fill.h (renamed from src/igl/flood_fill.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/floor.cpp (renamed from src/igl/floor.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/floor.h (renamed from src/igl/floor.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/for_each.h (renamed from src/igl/for_each.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/forward_kinematics.cpp (renamed from src/igl/forward_kinematics.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/forward_kinematics.h (renamed from src/igl/forward_kinematics.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frame_field_deformer.cpp (renamed from src/igl/frame_field_deformer.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frame_field_deformer.h (renamed from src/igl/frame_field_deformer.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frame_to_cross_field.cpp (renamed from src/igl/frame_to_cross_field.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frame_to_cross_field.h (renamed from src/igl/frame_to_cross_field.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frustum.cpp (renamed from src/igl/frustum.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/frustum.h (renamed from src/igl/frustum.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/gaussian_curvature.cpp (renamed from src/igl/gaussian_curvature.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/gaussian_curvature.h (renamed from src/igl/gaussian_curvature.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/get_seconds.cpp (renamed from src/igl/get_seconds.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/get_seconds.h (renamed from src/igl/get_seconds.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/get_seconds_hires.cpp (renamed from src/igl/get_seconds_hires.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/get_seconds_hires.h (renamed from src/igl/get_seconds_hires.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grad.cpp (renamed from src/igl/grad.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grad.h (renamed from src/igl/grad.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grid.cpp (renamed from src/igl/grid.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grid.h (renamed from src/igl/grid.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grid_search.cpp (renamed from src/igl/grid_search.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/grid_search.h (renamed from src/igl/grid_search.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/group_sum_matrix.cpp (renamed from src/igl/group_sum_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/group_sum_matrix.h (renamed from src/igl/group_sum_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/guess_extension.cpp (renamed from src/igl/guess_extension.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/guess_extension.h (renamed from src/igl/guess_extension.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/harmonic.cpp (renamed from src/igl/harmonic.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/harmonic.h (renamed from src/igl/harmonic.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/harwell_boeing.cpp (renamed from src/igl/harwell_boeing.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/harwell_boeing.h (renamed from src/igl/harwell_boeing.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hausdorff.cpp (renamed from src/igl/hausdorff.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hausdorff.h (renamed from src/igl/hausdorff.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hessian.cpp (renamed from src/igl/hessian.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hessian.h (renamed from src/igl/hessian.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hessian_energy.cpp (renamed from src/igl/hessian_energy.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hessian_energy.h (renamed from src/igl/hessian_energy.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/histc.cpp (renamed from src/igl/histc.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/histc.h (renamed from src/igl/histc.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hsv_to_rgb.cpp (renamed from src/igl/hsv_to_rgb.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/hsv_to_rgb.h (renamed from src/igl/hsv_to_rgb.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/igl_inline.h (renamed from src/igl/igl_inline.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/in_element.cpp (renamed from src/igl/in_element.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/in_element.h (renamed from src/igl/in_element.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/infinite_cost_stopping_condition.cpp (renamed from src/igl/infinite_cost_stopping_condition.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/infinite_cost_stopping_condition.h (renamed from src/igl/infinite_cost_stopping_condition.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/inradius.cpp (renamed from src/igl/inradius.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/inradius.h (renamed from src/igl/inradius.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/internal_angles.cpp (renamed from src/igl/internal_angles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/internal_angles.h (renamed from src/igl/internal_angles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/intersect.cpp (renamed from src/igl/intersect.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/intersect.h (renamed from src/igl/intersect.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/invert_diag.cpp (renamed from src/igl/invert_diag.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/invert_diag.h (renamed from src/igl/invert_diag.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_border_vertex.cpp (renamed from src/igl/is_border_vertex.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_border_vertex.h (renamed from src/igl/is_border_vertex.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_boundary_edge.cpp (renamed from src/igl/is_boundary_edge.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_boundary_edge.h (renamed from src/igl/is_boundary_edge.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_dir.cpp (renamed from src/igl/is_dir.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_dir.h (renamed from src/igl/is_dir.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_edge_manifold.cpp (renamed from src/igl/is_edge_manifold.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_edge_manifold.h (renamed from src/igl/is_edge_manifold.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_file.cpp (renamed from src/igl/is_file.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_file.h (renamed from src/igl/is_file.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_irregular_vertex.cpp (renamed from src/igl/is_irregular_vertex.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_irregular_vertex.h (renamed from src/igl/is_irregular_vertex.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_planar.cpp (renamed from src/igl/is_planar.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_planar.h (renamed from src/igl/is_planar.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_readable.cpp (renamed from src/igl/is_readable.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_readable.h (renamed from src/igl/is_readable.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_sparse.cpp (renamed from src/igl/is_sparse.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_sparse.h (renamed from src/igl/is_sparse.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_stl.cpp (renamed from src/igl/is_stl.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_stl.h (renamed from src/igl/is_stl.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_symmetric.cpp (renamed from src/igl/is_symmetric.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_symmetric.h (renamed from src/igl/is_symmetric.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_vertex_manifold.cpp (renamed from src/igl/is_vertex_manifold.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_vertex_manifold.h (renamed from src/igl/is_vertex_manifold.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_writable.cpp (renamed from src/igl/is_writable.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/is_writable.h (renamed from src/igl/is_writable.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/isdiag.cpp (renamed from src/igl/isdiag.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/isdiag.h (renamed from src/igl/isdiag.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ismember.cpp (renamed from src/igl/ismember.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ismember.h (renamed from src/igl/ismember.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/isolines.cpp (renamed from src/igl/isolines.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/isolines.h (renamed from src/igl/isolines.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/jet.cpp (renamed from src/igl/jet.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/jet.h (renamed from src/igl/jet.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/knn.cpp (renamed from src/igl/knn.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/knn.h (renamed from src/igl/knn.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/launch_medit.cpp (renamed from src/igl/launch_medit.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/launch_medit.h (renamed from src/igl/launch_medit.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lbs_matrix.cpp (renamed from src/igl/lbs_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lbs_matrix.h (renamed from src/igl/lbs_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lexicographic_triangulation.cpp (renamed from src/igl/lexicographic_triangulation.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lexicographic_triangulation.h (renamed from src/igl/lexicographic_triangulation.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lim/lim.cpp (renamed from src/igl/lim/lim.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lim/lim.h (renamed from src/igl/lim/lim.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/limit_faces.cpp (renamed from src/igl/limit_faces.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/limit_faces.h (renamed from src/igl/limit_faces.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_field_missmatch.cpp (renamed from src/igl/line_field_missmatch.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_field_missmatch.h (renamed from src/igl/line_field_missmatch.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_search.cpp (renamed from src/igl/line_search.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_search.h (renamed from src/igl/line_search.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_segment_in_rectangle.cpp (renamed from src/igl/line_segment_in_rectangle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/line_segment_in_rectangle.h (renamed from src/igl/line_segment_in_rectangle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/linprog.cpp (renamed from src/igl/linprog.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/linprog.h (renamed from src/igl/linprog.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/list_to_matrix.cpp (renamed from src/igl/list_to_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/list_to_matrix.h (renamed from src/igl/list_to_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/local_basis.cpp (renamed from src/igl/local_basis.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/local_basis.h (renamed from src/igl/local_basis.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/look_at.cpp (renamed from src/igl/look_at.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/look_at.h (renamed from src/igl/look_at.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/loop.cpp (renamed from src/igl/loop.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/loop.h (renamed from src/igl/loop.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lscm.cpp (renamed from src/igl/lscm.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/lscm.h (renamed from src/igl/lscm.h) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/map_vertices_to_circle.cpp (renamed from src/igl/map_vertices_to_circle.cpp) | 0 | ||||
-rwxr-xr-x | src/libigl/igl/map_vertices_to_circle.h (renamed from src/igl/map_vertices_to_circle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/massmatrix.cpp (renamed from src/igl/massmatrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/massmatrix.h (renamed from src/igl/massmatrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_max.cpp (renamed from src/igl/mat_max.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_max.h (renamed from src/igl/mat_max.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_min.cpp (renamed from src/igl/mat_min.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_min.h (renamed from src/igl/mat_min.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_to_quat.cpp (renamed from src/igl/mat_to_quat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mat_to_quat.h (renamed from src/igl/mat_to_quat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/material_colors.h (renamed from src/igl/material_colors.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/MatlabWorkspace.h (renamed from src/igl/matlab/MatlabWorkspace.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/MexStream.h (renamed from src/igl/matlab/MexStream.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/matlabinterface.cpp (renamed from src/igl/matlab/matlabinterface.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/matlabinterface.h (renamed from src/igl/matlab/matlabinterface.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/mexErrMsgTxt.cpp (renamed from src/igl/matlab/mexErrMsgTxt.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/mexErrMsgTxt.h (renamed from src/igl/matlab/mexErrMsgTxt.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/parse_rhs.cpp (renamed from src/igl/matlab/parse_rhs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/parse_rhs.h (renamed from src/igl/matlab/parse_rhs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/prepare_lhs.cpp (renamed from src/igl/matlab/prepare_lhs.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/prepare_lhs.h (renamed from src/igl/matlab/prepare_lhs.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/requires_arg.cpp (renamed from src/igl/matlab/requires_arg.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/requires_arg.h (renamed from src/igl/matlab/requires_arg.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/validate_arg.cpp (renamed from src/igl/matlab/validate_arg.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab/validate_arg.h (renamed from src/igl/matlab/validate_arg.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab_format.cpp (renamed from src/igl/matlab_format.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matlab_format.h (renamed from src/igl/matlab_format.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matrix_to_list.cpp (renamed from src/igl/matrix_to_list.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/matrix_to_list.h (renamed from src/igl/matrix_to_list.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max.cpp (renamed from src/igl/max.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max.h (renamed from src/igl/max.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max_faces_stopping_condition.cpp (renamed from src/igl/max_faces_stopping_condition.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max_faces_stopping_condition.h (renamed from src/igl/max_faces_stopping_condition.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max_size.cpp (renamed from src/igl/max_size.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/max_size.h (renamed from src/igl/max_size.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/median.cpp (renamed from src/igl/median.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/median.h (renamed from src/igl/median.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min.cpp (renamed from src/igl/min.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min.h (renamed from src/igl/min.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_quad_dense.cpp (renamed from src/igl/min_quad_dense.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_quad_dense.h (renamed from src/igl/min_quad_dense.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_quad_with_fixed.cpp (renamed from src/igl/min_quad_with_fixed.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_quad_with_fixed.h (renamed from src/igl/min_quad_with_fixed.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_size.cpp (renamed from src/igl/min_size.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/min_size.h (renamed from src/igl/min_size.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mod.cpp (renamed from src/igl/mod.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mod.h (renamed from src/igl/mod.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mode.cpp (renamed from src/igl/mode.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mode.h (renamed from src/igl/mode.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/bbw.cpp (renamed from src/igl/mosek/bbw.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/bbw.h (renamed from src/igl/mosek/bbw.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_guarded.cpp (renamed from src/igl/mosek/mosek_guarded.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_guarded.h (renamed from src/igl/mosek/mosek_guarded.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_linprog.cpp (renamed from src/igl/mosek/mosek_linprog.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_linprog.h (renamed from src/igl/mosek/mosek_linprog.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_quadprog.cpp (renamed from src/igl/mosek/mosek_quadprog.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mosek/mosek_quadprog.h (renamed from src/igl/mosek/mosek_quadprog.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mvc.cpp (renamed from src/igl/mvc.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/mvc.h (renamed from src/igl/mvc.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/nchoosek.cpp (renamed from src/igl/nchoosek.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/nchoosek.h (renamed from src/igl/nchoosek.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/next_filename.cpp (renamed from src/igl/next_filename.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/next_filename.h (renamed from src/igl/next_filename.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normal_derivative.cpp (renamed from src/igl/normal_derivative.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normal_derivative.h (renamed from src/igl/normal_derivative.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_quat.cpp (renamed from src/igl/normalize_quat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_quat.h (renamed from src/igl/normalize_quat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_row_lengths.cpp (renamed from src/igl/normalize_row_lengths.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_row_lengths.h (renamed from src/igl/normalize_row_lengths.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_row_sums.cpp (renamed from src/igl/normalize_row_sums.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/normalize_row_sums.h (renamed from src/igl/normalize_row_sums.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/null.cpp (renamed from src/igl/null.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/null.h (renamed from src/igl/null.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/octree.cpp (renamed from src/igl/octree.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/octree.h (renamed from src/igl/octree.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/on_boundary.cpp (renamed from src/igl/on_boundary.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/on_boundary.h (renamed from src/igl/on_boundary.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/MeshGL.cpp (renamed from src/igl/opengl/MeshGL.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/MeshGL.h (renamed from src/igl/opengl/MeshGL.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/ViewerCore.cpp (renamed from src/igl/opengl/ViewerCore.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/ViewerCore.h (renamed from src/igl/opengl/ViewerCore.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/ViewerData.cpp (renamed from src/igl/opengl/ViewerData.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/ViewerData.h (renamed from src/igl/opengl/ViewerData.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/bind_vertex_attrib_array.cpp (renamed from src/igl/opengl/bind_vertex_attrib_array.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/bind_vertex_attrib_array.h (renamed from src/igl/opengl/bind_vertex_attrib_array.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_index_vbo.cpp (renamed from src/igl/opengl/create_index_vbo.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_index_vbo.h (renamed from src/igl/opengl/create_index_vbo.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_mesh_vbo.cpp (renamed from src/igl/opengl/create_mesh_vbo.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_mesh_vbo.h (renamed from src/igl/opengl/create_mesh_vbo.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_shader_program.cpp (renamed from src/igl/opengl/create_shader_program.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_shader_program.h (renamed from src/igl/opengl/create_shader_program.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_vector_vbo.cpp (renamed from src/igl/opengl/create_vector_vbo.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/create_vector_vbo.h (renamed from src/igl/opengl/create_vector_vbo.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/destroy_shader_program.cpp (renamed from src/igl/opengl/destroy_shader_program.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/destroy_shader_program.h (renamed from src/igl/opengl/destroy_shader_program.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/gl.h (renamed from src/igl/opengl/gl.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/gl_type_size.cpp (renamed from src/igl/opengl/gl_type_size.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/gl_type_size.h (renamed from src/igl/opengl/gl_type_size.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/Viewer.cpp (renamed from src/igl/opengl/glfw/Viewer.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/Viewer.h (renamed from src/igl/opengl/glfw/Viewer.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/ViewerPlugin.h (renamed from src/igl/opengl/glfw/ViewerPlugin.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/background_window.cpp (renamed from src/igl/opengl/glfw/background_window.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/background_window.h (renamed from src/igl/opengl/glfw/background_window.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/imgui/ImGuiHelpers.h (renamed from src/igl/opengl/glfw/imgui/ImGuiHelpers.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.cpp (renamed from src/igl/opengl/glfw/imgui/ImGuiMenu.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.h (renamed from src/igl/opengl/glfw/imgui/ImGuiMenu.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/map_texture.cpp (renamed from src/igl/opengl/glfw/map_texture.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/glfw/map_texture.h (renamed from src/igl/opengl/glfw/map_texture.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/init_render_to_texture.cpp (renamed from src/igl/opengl/init_render_to_texture.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/init_render_to_texture.h (renamed from src/igl/opengl/init_render_to_texture.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/load_shader.cpp (renamed from src/igl/opengl/load_shader.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/load_shader.h (renamed from src/igl/opengl/load_shader.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/print_program_info_log.cpp (renamed from src/igl/opengl/print_program_info_log.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/print_program_info_log.h (renamed from src/igl/opengl/print_program_info_log.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/print_shader_info_log.cpp (renamed from src/igl/opengl/print_shader_info_log.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/print_shader_info_log.h (renamed from src/igl/opengl/print_shader_info_log.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/report_gl_error.cpp (renamed from src/igl/opengl/report_gl_error.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/report_gl_error.h (renamed from src/igl/opengl/report_gl_error.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/uniform_type_to_string.cpp (renamed from src/igl/opengl/uniform_type_to_string.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/uniform_type_to_string.h (renamed from src/igl/opengl/uniform_type_to_string.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/vertex_array.cpp (renamed from src/igl/opengl/vertex_array.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl/vertex_array.h (renamed from src/igl/opengl/vertex_array.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/MouseController.h (renamed from src/igl/opengl2/MouseController.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/RotateWidget.h (renamed from src/igl/opengl2/RotateWidget.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/TranslateWidget.h (renamed from src/igl/opengl2/TranslateWidget.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_beach_ball.cpp (renamed from src/igl/opengl2/draw_beach_ball.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_beach_ball.h (renamed from src/igl/opengl2/draw_beach_ball.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_floor.cpp (renamed from src/igl/opengl2/draw_floor.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_floor.h (renamed from src/igl/opengl2/draw_floor.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_mesh.cpp (renamed from src/igl/opengl2/draw_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_mesh.h (renamed from src/igl/opengl2/draw_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_point.cpp (renamed from src/igl/opengl2/draw_point.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_point.h (renamed from src/igl/opengl2/draw_point.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_rectangular_marquee.cpp (renamed from src/igl/opengl2/draw_rectangular_marquee.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_rectangular_marquee.h (renamed from src/igl/opengl2/draw_rectangular_marquee.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_skeleton_3d.cpp (renamed from src/igl/opengl2/draw_skeleton_3d.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_skeleton_3d.h (renamed from src/igl/opengl2/draw_skeleton_3d.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_skeleton_vector_graphics.cpp (renamed from src/igl/opengl2/draw_skeleton_vector_graphics.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/draw_skeleton_vector_graphics.h (renamed from src/igl/opengl2/draw_skeleton_vector_graphics.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/flare_textures.h (renamed from src/igl/opengl2/flare_textures.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/gl.h (renamed from src/igl/opengl2/gl.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/glext.h (renamed from src/igl/opengl2/glext.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/glu.h (renamed from src/igl/opengl2/glu.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/lens_flare.cpp (renamed from src/igl/opengl2/lens_flare.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/lens_flare.h (renamed from src/igl/opengl2/lens_flare.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/model_proj_viewport.cpp (renamed from src/igl/opengl2/model_proj_viewport.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/model_proj_viewport.h (renamed from src/igl/opengl2/model_proj_viewport.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/print_gl_get.cpp (renamed from src/igl/opengl2/print_gl_get.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/print_gl_get.h (renamed from src/igl/opengl2/print_gl_get.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/project.cpp (renamed from src/igl/opengl2/project.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/project.h (renamed from src/igl/opengl2/project.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/right_axis.cpp (renamed from src/igl/opengl2/right_axis.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/right_axis.h (renamed from src/igl/opengl2/right_axis.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/shine_textures.h (renamed from src/igl/opengl2/shine_textures.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/sort_triangles.cpp (renamed from src/igl/opengl2/sort_triangles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/sort_triangles.h (renamed from src/igl/opengl2/sort_triangles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/unproject.cpp (renamed from src/igl/opengl2/unproject.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/unproject.h (renamed from src/igl/opengl2/unproject.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/unproject_to_zero_plane.cpp (renamed from src/igl/opengl2/unproject_to_zero_plane.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/unproject_to_zero_plane.h (renamed from src/igl/opengl2/unproject_to_zero_plane.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/up_axis.cpp (renamed from src/igl/opengl2/up_axis.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/up_axis.h (renamed from src/igl/opengl2/up_axis.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/view_axis.cpp (renamed from src/igl/opengl2/view_axis.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/opengl2/view_axis.h (renamed from src/igl/opengl2/view_axis.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orient_outward.cpp (renamed from src/igl/orient_outward.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orient_outward.h (renamed from src/igl/orient_outward.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orientable_patches.cpp (renamed from src/igl/orientable_patches.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orientable_patches.h (renamed from src/igl/orientable_patches.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/oriented_facets.cpp (renamed from src/igl/oriented_facets.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/oriented_facets.h (renamed from src/igl/oriented_facets.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orth.cpp (renamed from src/igl/orth.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/orth.h (renamed from src/igl/orth.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ortho.cpp (renamed from src/igl/ortho.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ortho.h (renamed from src/igl/ortho.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/outer_element.cpp (renamed from src/igl/outer_element.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/outer_element.h (renamed from src/igl/outer_element.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/parallel_for.h (renamed from src/igl/parallel_for.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/parallel_transport_angles.cpp (renamed from src/igl/parallel_transport_angles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/parallel_transport_angles.h (renamed from src/igl/parallel_transport_angles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/partition.cpp (renamed from src/igl/partition.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/partition.h (renamed from src/igl/partition.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/parula.cpp (renamed from src/igl/parula.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/parula.h (renamed from src/igl/parula.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/path_to_executable.cpp (renamed from src/igl/path_to_executable.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/path_to_executable.h (renamed from src/igl/path_to_executable.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pathinfo.cpp (renamed from src/igl/pathinfo.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pathinfo.h (renamed from src/igl/pathinfo.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_corner_normals.cpp (renamed from src/igl/per_corner_normals.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_corner_normals.h (renamed from src/igl/per_corner_normals.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_edge_normals.cpp (renamed from src/igl/per_edge_normals.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_edge_normals.h (renamed from src/igl/per_edge_normals.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_face_normals.cpp (renamed from src/igl/per_face_normals.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_face_normals.h (renamed from src/igl/per_face_normals.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_attribute_smoothing.cpp (renamed from src/igl/per_vertex_attribute_smoothing.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_attribute_smoothing.h (renamed from src/igl/per_vertex_attribute_smoothing.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_normals.cpp (renamed from src/igl/per_vertex_normals.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_normals.h (renamed from src/igl/per_vertex_normals.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_point_to_plane_quadrics.cpp (renamed from src/igl/per_vertex_point_to_plane_quadrics.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/per_vertex_point_to_plane_quadrics.h (renamed from src/igl/per_vertex_point_to_plane_quadrics.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/piecewise_constant_winding_number.cpp (renamed from src/igl/piecewise_constant_winding_number.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/piecewise_constant_winding_number.h (renamed from src/igl/piecewise_constant_winding_number.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pinv.cpp (renamed from src/igl/pinv.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pinv.h (renamed from src/igl/pinv.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/planarize_quad_mesh.cpp (renamed from src/igl/planarize_quad_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/planarize_quad_mesh.h (renamed from src/igl/planarize_quad_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ply.h (renamed from src/igl/ply.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/readPNG.cpp (renamed from src/igl/png/readPNG.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/readPNG.h (renamed from src/igl/png/readPNG.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/render_to_png.cpp (renamed from src/igl/png/render_to_png.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/render_to_png.h (renamed from src/igl/png/render_to_png.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/render_to_png_async.cpp (renamed from src/igl/png/render_to_png_async.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/render_to_png_async.h (renamed from src/igl/png/render_to_png_async.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/texture_from_file.cpp (renamed from src/igl/png/texture_from_file.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/texture_from_file.h (renamed from src/igl/png/texture_from_file.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/texture_from_png.cpp (renamed from src/igl/png/texture_from_png.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/texture_from_png.h (renamed from src/igl/png/texture_from_png.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/writePNG.cpp (renamed from src/igl/png/writePNG.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/png/writePNG.h (renamed from src/igl/png/writePNG.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_in_circle.cpp (renamed from src/igl/point_in_circle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_in_circle.h (renamed from src/igl/point_in_circle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_in_poly.cpp (renamed from src/igl/point_in_poly.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_in_poly.h (renamed from src/igl/point_in_poly.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_mesh_squared_distance.cpp (renamed from src/igl/point_mesh_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_mesh_squared_distance.h (renamed from src/igl/point_mesh_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_simplex_squared_distance.cpp (renamed from src/igl/point_simplex_squared_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/point_simplex_squared_distance.h (renamed from src/igl/point_simplex_squared_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_dec.cpp (renamed from src/igl/polar_dec.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_dec.h (renamed from src/igl/polar_dec.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_svd.cpp (renamed from src/igl/polar_svd.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_svd.h (renamed from src/igl/polar_svd.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_svd3x3.cpp (renamed from src/igl/polar_svd3x3.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polar_svd3x3.h (renamed from src/igl/polar_svd3x3.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polygon_mesh_to_triangle_mesh.cpp (renamed from src/igl/polygon_mesh_to_triangle_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/polygon_mesh_to_triangle_mesh.h (renamed from src/igl/polygon_mesh_to_triangle_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/principal_curvature.cpp (renamed from src/igl/principal_curvature.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/principal_curvature.h (renamed from src/igl/principal_curvature.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/print_ijv.cpp (renamed from src/igl/print_ijv.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/print_ijv.h (renamed from src/igl/print_ijv.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/print_vector.cpp (renamed from src/igl/print_vector.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/print_vector.h (renamed from src/igl/print_vector.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/procrustes.cpp (renamed from src/igl/procrustes.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/procrustes.h (renamed from src/igl/procrustes.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project.cpp (renamed from src/igl/project.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project.h (renamed from src/igl/project.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_isometrically_to_plane.cpp (renamed from src/igl/project_isometrically_to_plane.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_isometrically_to_plane.h (renamed from src/igl/project_isometrically_to_plane.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_to_line.cpp (renamed from src/igl/project_to_line.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_to_line.h (renamed from src/igl/project_to_line.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_to_line_segment.cpp (renamed from src/igl/project_to_line_segment.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/project_to_line_segment.h (renamed from src/igl/project_to_line_segment.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pseudonormal_test.cpp (renamed from src/igl/pseudonormal_test.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pseudonormal_test.h (renamed from src/igl/pseudonormal_test.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pso.cpp (renamed from src/igl/pso.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/pso.h (renamed from src/igl/pso.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/qslim.cpp (renamed from src/igl/qslim.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/qslim.h (renamed from src/igl/qslim.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/qslim_optimal_collapse_edge_callbacks.cpp (renamed from src/igl/qslim_optimal_collapse_edge_callbacks.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/qslim_optimal_collapse_edge_callbacks.h (renamed from src/igl/qslim_optimal_collapse_edge_callbacks.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quad_planarity.cpp (renamed from src/igl/quad_planarity.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quad_planarity.h (renamed from src/igl/quad_planarity.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quadric_binary_plus_operator.cpp (renamed from src/igl/quadric_binary_plus_operator.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quadric_binary_plus_operator.h (renamed from src/igl/quadric_binary_plus_operator.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_conjugate.cpp (renamed from src/igl/quat_conjugate.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_conjugate.h (renamed from src/igl/quat_conjugate.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_mult.cpp (renamed from src/igl/quat_mult.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_mult.h (renamed from src/igl/quat_mult.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_to_axis_angle.cpp (renamed from src/igl/quat_to_axis_angle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_to_axis_angle.h (renamed from src/igl/quat_to_axis_angle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_to_mat.cpp (renamed from src/igl/quat_to_mat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quat_to_mat.h (renamed from src/igl/quat_to_mat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quats_to_column.cpp (renamed from src/igl/quats_to_column.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/quats_to_column.h (renamed from src/igl/quats_to_column.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ramer_douglas_peucker.cpp (renamed from src/igl/ramer_douglas_peucker.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ramer_douglas_peucker.h (renamed from src/igl/ramer_douglas_peucker.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_dir.cpp (renamed from src/igl/random_dir.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_dir.h (renamed from src/igl/random_dir.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_points_on_mesh.cpp (renamed from src/igl/random_points_on_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_points_on_mesh.h (renamed from src/igl/random_points_on_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_quaternion.cpp (renamed from src/igl/random_quaternion.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_quaternion.h (renamed from src/igl/random_quaternion.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_search.cpp (renamed from src/igl/random_search.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/random_search.h (renamed from src/igl/random_search.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/randperm.cpp (renamed from src/igl/randperm.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/randperm.h (renamed from src/igl/randperm.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_box_intersect.cpp (renamed from src/igl/ray_box_intersect.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_box_intersect.h (renamed from src/igl/ray_box_intersect.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_mesh_intersect.cpp (renamed from src/igl/ray_mesh_intersect.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_mesh_intersect.h (renamed from src/igl/ray_mesh_intersect.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_sphere_intersect.cpp (renamed from src/igl/ray_sphere_intersect.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/ray_sphere_intersect.h (renamed from src/igl/ray_sphere_intersect.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/raytri.c (renamed from src/igl/raytri.c) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readBF.cpp (renamed from src/igl/readBF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readBF.h (renamed from src/igl/readBF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readCSV.cpp (renamed from src/igl/readCSV.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readCSV.h (renamed from src/igl/readCSV.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readDMAT.cpp (renamed from src/igl/readDMAT.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readDMAT.h (renamed from src/igl/readDMAT.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readMESH.cpp (renamed from src/igl/readMESH.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readMESH.h (renamed from src/igl/readMESH.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readMSH.cpp (renamed from src/igl/readMSH.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readMSH.h (renamed from src/igl/readMSH.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readNODE.cpp (renamed from src/igl/readNODE.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readNODE.h (renamed from src/igl/readNODE.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readOBJ.cpp (renamed from src/igl/readOBJ.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readOBJ.h (renamed from src/igl/readOBJ.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readOFF.cpp (renamed from src/igl/readOFF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readOFF.h (renamed from src/igl/readOFF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readPLY.cpp (renamed from src/igl/readPLY.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readPLY.h (renamed from src/igl/readPLY.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readSTL.cpp (renamed from src/igl/readSTL.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readSTL.h (renamed from src/igl/readSTL.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readTGF.cpp (renamed from src/igl/readTGF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readTGF.h (renamed from src/igl/readTGF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readWRL.cpp (renamed from src/igl/readWRL.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/readWRL.h (renamed from src/igl/readWRL.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/read_triangle_mesh.cpp (renamed from src/igl/read_triangle_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/read_triangle_mesh.h (renamed from src/igl/read_triangle_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/redux.h (renamed from src/igl/redux.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remesh_along_isoline.cpp (renamed from src/igl/remesh_along_isoline.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remesh_along_isoline.h (renamed from src/igl/remesh_along_isoline.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_duplicate_vertices.cpp (renamed from src/igl/remove_duplicate_vertices.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_duplicate_vertices.h (renamed from src/igl/remove_duplicate_vertices.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_duplicates.cpp (renamed from src/igl/remove_duplicates.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_duplicates.h (renamed from src/igl/remove_duplicates.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_unreferenced.cpp (renamed from src/igl/remove_unreferenced.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/remove_unreferenced.h (renamed from src/igl/remove_unreferenced.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/reorder.cpp (renamed from src/igl/reorder.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/reorder.h (renamed from src/igl/reorder.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/repdiag.cpp (renamed from src/igl/repdiag.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/repdiag.h (renamed from src/igl/repdiag.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/repmat.cpp (renamed from src/igl/repmat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/repmat.h (renamed from src/igl/repmat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/resolve_duplicated_faces.cpp (renamed from src/igl/resolve_duplicated_faces.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/resolve_duplicated_faces.h (renamed from src/igl/resolve_duplicated_faces.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rgb_to_hsv.cpp (renamed from src/igl/rgb_to_hsv.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rgb_to_hsv.h (renamed from src/igl/rgb_to_hsv.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotate_by_quat.cpp (renamed from src/igl/rotate_by_quat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotate_by_quat.h (renamed from src/igl/rotate_by_quat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotate_vectors.cpp (renamed from src/igl/rotate_vectors.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotate_vectors.h (renamed from src/igl/rotate_vectors.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotation_matrix_from_directions.cpp (renamed from src/igl/rotation_matrix_from_directions.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rotation_matrix_from_directions.h (renamed from src/igl/rotation_matrix_from_directions.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/round.cpp (renamed from src/igl/round.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/round.h (renamed from src/igl/round.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rows_to_matrix.cpp (renamed from src/igl/rows_to_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/rows_to_matrix.h (renamed from src/igl/rows_to_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sample_edges.cpp (renamed from src/igl/sample_edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sample_edges.h (renamed from src/igl/sample_edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/seam_edges.cpp (renamed from src/igl/seam_edges.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/seam_edges.h (renamed from src/igl/seam_edges.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/segment_segment_intersect.cpp (renamed from src/igl/segment_segment_intersect.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/segment_segment_intersect.h (renamed from src/igl/segment_segment_intersect.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/serialize.h (renamed from src/igl/serialize.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setdiff.cpp (renamed from src/igl/setdiff.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setdiff.h (renamed from src/igl/setdiff.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setunion.cpp (renamed from src/igl/setunion.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setunion.h (renamed from src/igl/setunion.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setxor.cpp (renamed from src/igl/setxor.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/setxor.h (renamed from src/igl/setxor.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shape_diameter_function.cpp (renamed from src/igl/shape_diameter_function.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shape_diameter_function.h (renamed from src/igl/shape_diameter_function.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shapeup.cpp (renamed from src/igl/shapeup.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shapeup.h (renamed from src/igl/shapeup.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shortest_edge_and_midpoint.cpp (renamed from src/igl/shortest_edge_and_midpoint.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/shortest_edge_and_midpoint.h (renamed from src/igl/shortest_edge_and_midpoint.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/signed_angle.cpp (renamed from src/igl/signed_angle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/signed_angle.h (renamed from src/igl/signed_angle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/signed_distance.cpp (renamed from src/igl/signed_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/signed_distance.h (renamed from src/igl/signed_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/simplify_polyhedron.cpp (renamed from src/igl/simplify_polyhedron.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/simplify_polyhedron.h (renamed from src/igl/simplify_polyhedron.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice.cpp (renamed from src/igl/slice.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice.h (renamed from src/igl/slice.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_cached.cpp (renamed from src/igl/slice_cached.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_cached.h (renamed from src/igl/slice_cached.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_into.cpp (renamed from src/igl/slice_into.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_into.h (renamed from src/igl/slice_into.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_mask.cpp (renamed from src/igl/slice_mask.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_mask.h (renamed from src/igl/slice_mask.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_tets.cpp (renamed from src/igl/slice_tets.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slice_tets.h (renamed from src/igl/slice_tets.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slim.cpp (renamed from src/igl/slim.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/slim.h (renamed from src/igl/slim.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_points.cpp (renamed from src/igl/snap_points.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_points.h (renamed from src/igl/snap_points.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_to_canonical_view_quat.cpp (renamed from src/igl/snap_to_canonical_view_quat.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_to_canonical_view_quat.h (renamed from src/igl/snap_to_canonical_view_quat.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_to_fixed_up.cpp (renamed from src/igl/snap_to_fixed_up.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/snap_to_fixed_up.h (renamed from src/igl/snap_to_fixed_up.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/solid_angle.cpp (renamed from src/igl/solid_angle.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/solid_angle.h (renamed from src/igl/solid_angle.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort.cpp (renamed from src/igl/sort.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort.h (renamed from src/igl/sort.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_angles.cpp (renamed from src/igl/sort_angles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_angles.h (renamed from src/igl/sort_angles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_triangles.cpp (renamed from src/igl/sort_triangles.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_triangles.h (renamed from src/igl/sort_triangles.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_vectors_ccw.cpp (renamed from src/igl/sort_vectors_ccw.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sort_vectors_ccw.h (renamed from src/igl/sort_vectors_ccw.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sortrows.cpp (renamed from src/igl/sortrows.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sortrows.h (renamed from src/igl/sortrows.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sparse.cpp (renamed from src/igl/sparse.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sparse.h (renamed from src/igl/sparse.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sparse_cached.cpp (renamed from src/igl/sparse_cached.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sparse_cached.h (renamed from src/igl/sparse_cached.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/speye.cpp (renamed from src/igl/speye.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/speye.h (renamed from src/igl/speye.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/squared_edge_lengths.cpp (renamed from src/igl/squared_edge_lengths.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/squared_edge_lengths.h (renamed from src/igl/squared_edge_lengths.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/stdin_to_temp.cpp (renamed from src/igl/stdin_to_temp.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/stdin_to_temp.h (renamed from src/igl/stdin_to_temp.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/straighten_seams.cpp (renamed from src/igl/straighten_seams.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/straighten_seams.h (renamed from src/igl/straighten_seams.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sum.cpp (renamed from src/igl/sum.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/sum.h (renamed from src/igl/sum.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3.cpp (renamed from src/igl/svd3x3.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3.h (renamed from src/igl/svd3x3.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3_avx.cpp (renamed from src/igl/svd3x3_avx.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3_avx.h (renamed from src/igl/svd3x3_avx.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3_sse.cpp (renamed from src/igl/svd3x3_sse.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/svd3x3_sse.h (renamed from src/igl/svd3x3_sse.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/swept_volume_bounding_box.cpp (renamed from src/igl/swept_volume_bounding_box.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/swept_volume_bounding_box.h (renamed from src/igl/swept_volume_bounding_box.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/swept_volume_signed_distance.cpp (renamed from src/igl/swept_volume_signed_distance.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/swept_volume_signed_distance.h (renamed from src/igl/swept_volume_signed_distance.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/trackball.cpp (renamed from src/igl/trackball.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/trackball.h (renamed from src/igl/trackball.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/transpose_blocks.cpp (renamed from src/igl/transpose_blocks.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/transpose_blocks.h (renamed from src/igl/transpose_blocks.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle/cdt.cpp (renamed from src/igl/triangle/cdt.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle/cdt.h (renamed from src/igl/triangle/cdt.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle/triangulate.cpp (renamed from src/igl/triangle/triangulate.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle/triangulate.h (renamed from src/igl/triangle/triangulate.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle_fan.cpp (renamed from src/igl/triangle_fan.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle_fan.h (renamed from src/igl/triangle_fan.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle_triangle_adjacency.cpp (renamed from src/igl/triangle_triangle_adjacency.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangle_triangle_adjacency.h (renamed from src/igl/triangle_triangle_adjacency.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangles_from_strip.cpp (renamed from src/igl/triangles_from_strip.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/triangles_from_strip.h (renamed from src/igl/triangles_from_strip.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/two_axis_valuator_fixed_up.cpp (renamed from src/igl/two_axis_valuator_fixed_up.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/two_axis_valuator_fixed_up.h (renamed from src/igl/two_axis_valuator_fixed_up.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/uniformly_sample_two_manifold.cpp (renamed from src/igl/uniformly_sample_two_manifold.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/uniformly_sample_two_manifold.h (renamed from src/igl/uniformly_sample_two_manifold.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique.cpp (renamed from src/igl/unique.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique.h (renamed from src/igl/unique.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_edge_map.cpp (renamed from src/igl/unique_edge_map.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_edge_map.h (renamed from src/igl/unique_edge_map.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_rows.cpp (renamed from src/igl/unique_rows.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_rows.h (renamed from src/igl/unique_rows.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_simplices.cpp (renamed from src/igl/unique_simplices.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unique_simplices.h (renamed from src/igl/unique_simplices.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject.cpp (renamed from src/igl/unproject.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject.h (renamed from src/igl/unproject.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_in_mesh.cpp (renamed from src/igl/unproject_in_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_in_mesh.h (renamed from src/igl/unproject_in_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_onto_mesh.cpp (renamed from src/igl/unproject_onto_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_onto_mesh.h (renamed from src/igl/unproject_onto_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_ray.cpp (renamed from src/igl/unproject_ray.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unproject_ray.h (renamed from src/igl/unproject_ray.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unzip_corners.cpp (renamed from src/igl/unzip_corners.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/unzip_corners.h (renamed from src/igl/unzip_corners.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/upsample.cpp (renamed from src/igl/upsample.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/upsample.h (renamed from src/igl/upsample.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/vector_area_matrix.cpp (renamed from src/igl/vector_area_matrix.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/vector_area_matrix.h (renamed from src/igl/vector_area_matrix.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/verbose.h (renamed from src/igl/verbose.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/vertex_triangle_adjacency.cpp (renamed from src/igl/vertex_triangle_adjacency.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/vertex_triangle_adjacency.h (renamed from src/igl/vertex_triangle_adjacency.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/volume.cpp (renamed from src/igl/volume.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/volume.h (renamed from src/igl/volume.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/voxel_grid.cpp (renamed from src/igl/voxel_grid.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/voxel_grid.h (renamed from src/igl/voxel_grid.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/winding_number.cpp (renamed from src/igl/winding_number.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/winding_number.h (renamed from src/igl/winding_number.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeBF.cpp (renamed from src/igl/writeBF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeBF.h (renamed from src/igl/writeBF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeDMAT.cpp (renamed from src/igl/writeDMAT.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeDMAT.h (renamed from src/igl/writeDMAT.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeMESH.cpp (renamed from src/igl/writeMESH.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeMESH.h (renamed from src/igl/writeMESH.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeOBJ.cpp (renamed from src/igl/writeOBJ.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeOBJ.h (renamed from src/igl/writeOBJ.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeOFF.cpp (renamed from src/igl/writeOFF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeOFF.h (renamed from src/igl/writeOFF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writePLY.cpp (renamed from src/igl/writePLY.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writePLY.h (renamed from src/igl/writePLY.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeSTL.cpp (renamed from src/igl/writeSTL.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeSTL.h (renamed from src/igl/writeSTL.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeTGF.cpp (renamed from src/igl/writeTGF.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeTGF.h (renamed from src/igl/writeTGF.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeWRL.cpp (renamed from src/igl/writeWRL.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/writeWRL.h (renamed from src/igl/writeWRL.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/write_triangle_mesh.cpp (renamed from src/igl/write_triangle_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/write_triangle_mesh.h (renamed from src/igl/write_triangle_mesh.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/ReAntTweakBarXMLSerialization.h (renamed from src/igl/xml/ReAntTweakBarXMLSerialization.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/XMLSerializable.h (renamed from src/igl/xml/XMLSerializable.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/serialization_test.skip (renamed from src/igl/xml/serialization_test.skip) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/serialize_xml.cpp (renamed from src/igl/xml/serialize_xml.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/serialize_xml.h (renamed from src/igl/xml/serialize_xml.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/writeDAE.cpp (renamed from src/igl/xml/writeDAE.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/writeDAE.h (renamed from src/igl/xml/writeDAE.h) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/write_triangle_mesh.cpp (renamed from src/igl/xml/write_triangle_mesh.cpp) | 0 | ||||
-rw-r--r-- | src/libigl/igl/xml/write_triangle_mesh.h (renamed from src/igl/xml/write_triangle_mesh.h) | 0 | ||||
-rw-r--r-- | src/libslic3r/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/libslic3r/GCodeTimeEstimator.cpp | 4 | ||||
-rw-r--r-- | src/libslic3r/Geometry.cpp | 57 | ||||
-rw-r--r-- | src/libslic3r/Geometry.hpp | 5 | ||||
-rw-r--r-- | src/libslic3r/MTUtils.hpp | 207 | ||||
-rw-r--r-- | src/libslic3r/Model.cpp | 52 | ||||
-rw-r--r-- | src/libslic3r/ModelArrange.cpp | 31 | ||||
-rw-r--r-- | src/libslic3r/Technologies.hpp | 2 | ||||
-rw-r--r-- | src/slic3r/Config/Version.cpp | 1 | ||||
-rw-r--r-- | src/slic3r/Config/Version.hpp | 4 | ||||
-rw-r--r-- | src/slic3r/GUI/3DBed.cpp | 90 | ||||
-rw-r--r-- | src/slic3r/GUI/3DBed.hpp | 17 | ||||
-rw-r--r-- | src/slic3r/GUI/3DScene.cpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/3DScene.hpp | 1 | ||||
-rw-r--r-- | src/slic3r/GUI/AppConfig.cpp | 3 | ||||
-rw-r--r-- | src/slic3r/GUI/Camera.cpp | 339 | ||||
-rw-r--r-- | src/slic3r/GUI/Camera.hpp | 49 | ||||
-rw-r--r-- | src/slic3r/GUI/FirmwareDialog.cpp | 87 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.cpp | 333 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.hpp | 17 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3DManager.cpp | 144 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3DManager.hpp | 46 | ||||
-rw-r--r-- | src/slic3r/GUI/GLSelectionRectangle.cpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/GLTexture.cpp | 193 | ||||
-rw-r--r-- | src/slic3r/GUI/GLTexture.hpp | 56 | ||||
-rw-r--r-- | src/slic3r/GUI/GLToolbar.cpp | 23 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_App.cpp | 6 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_ObjectList.cpp | 62 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_ObjectManipulation.cpp | 6 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_Preview.cpp | 6 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_Preview.hpp | 1 | ||||
-rw-r--r-- | src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 15 | ||||
-rw-r--r-- | src/slic3r/GUI/ImGuiWrapper.cpp | 9 | ||||
-rw-r--r-- | src/slic3r/GUI/ImGuiWrapper.hpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/KBShortcutsDialog.cpp | 1 | ||||
-rw-r--r-- | src/slic3r/GUI/MainFrame.cpp | 4 | ||||
-rw-r--r-- | src/slic3r/GUI/Plater.cpp | 62 | ||||
-rw-r--r-- | src/slic3r/GUI/Plater.hpp | 5 | ||||
-rw-r--r-- | src/slic3r/GUI/ProgressStatusBar.hpp | 1 | ||||
-rw-r--r-- | src/slic3r/GUI/Selection.cpp | 80 | ||||
-rw-r--r-- | src/slic3r/GUI/Selection.hpp | 3 | ||||
-rw-r--r-- | src/slic3r/GUI/wxExtensions.cpp | 96 | ||||
-rw-r--r-- | src/slic3r/GUI/wxExtensions.hpp | 12 | ||||
-rw-r--r-- | src/slic3r/Utils/PresetUpdater.cpp | 86 | ||||
-rw-r--r-- | src/slic3r/Utils/Semver.hpp | 5 | ||||
-rw-r--r-- | src/slic3r/Utils/Serial.hpp | 3 | ||||
-rw-r--r-- | src/stb_dxt/stb_dxt.h | 1049 |
1136 files changed, 2638 insertions, 657 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 724063466..61faa0571 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,6 +12,7 @@ add_subdirectory(poly2tri) add_subdirectory(qhull) add_subdirectory(Shiny) add_subdirectory(semver) +add_subdirectory(libigl) # Adding libnest2d project for bin packing... set(LIBNEST2D_UNITTESTS ON CACHE BOOL "Force generating unittests for libnest2d") diff --git a/src/libigl/CMakeLists.txt b/src/libigl/CMakeLists.txt new file mode 100644 index 000000000..0852fad72 --- /dev/null +++ b/src/libigl/CMakeLists.txt @@ -0,0 +1,14 @@ +project(libigl) +cmake_minimum_required(VERSION 3.0) + +add_library(libigl INTERFACE) + +find_package(libigl QUIET) + +if(libigl_FOUND) + message(STATUS "IGL found, using system version...") + target_link_libraries(libigl INTERFACE igl::core) +else() + message(STATUS "IGL NOT found, using bundled version...") + target_include_directories(libigl INTERFACE SYSTEM ${LIBDIR}/libigl) +endif() diff --git a/src/igl/AABB.cpp b/src/libigl/igl/AABB.cpp index 1b88e9faa..1b88e9faa 100644 --- a/src/igl/AABB.cpp +++ b/src/libigl/igl/AABB.cpp diff --git a/src/igl/AABB.h b/src/libigl/igl/AABB.h index 69bc60c2e..69bc60c2e 100644 --- a/src/igl/AABB.h +++ b/src/libigl/igl/AABB.h diff --git a/src/igl/ARAPEnergyType.h b/src/libigl/igl/ARAPEnergyType.h index 68be24f5d..68be24f5d 100644 --- a/src/igl/ARAPEnergyType.h +++ b/src/libigl/igl/ARAPEnergyType.h diff --git a/src/igl/AtA_cached.cpp b/src/libigl/igl/AtA_cached.cpp index af7d0ad86..af7d0ad86 100644 --- a/src/igl/AtA_cached.cpp +++ b/src/libigl/igl/AtA_cached.cpp diff --git a/src/igl/AtA_cached.h b/src/libigl/igl/AtA_cached.h index 776825411..776825411 100644 --- a/src/igl/AtA_cached.h +++ b/src/libigl/igl/AtA_cached.h diff --git a/src/igl/C_STR.h b/src/libigl/igl/C_STR.h index 9844b35a5..9844b35a5 100644 --- a/src/igl/C_STR.h +++ b/src/libigl/igl/C_STR.h diff --git a/src/igl/Camera.h b/src/libigl/igl/Camera.h index 79ebf603e..79ebf603e 100644 --- a/src/igl/Camera.h +++ b/src/libigl/igl/Camera.h diff --git a/src/igl/EPS.cpp b/src/libigl/igl/EPS.cpp index fc592cc2a..fc592cc2a 100644 --- a/src/igl/EPS.cpp +++ b/src/libigl/igl/EPS.cpp diff --git a/src/igl/EPS.h b/src/libigl/igl/EPS.h index d65007a64..d65007a64 100644 --- a/src/igl/EPS.h +++ b/src/libigl/igl/EPS.h diff --git a/src/igl/HalfEdgeIterator.cpp b/src/libigl/igl/HalfEdgeIterator.cpp index 7c3b9a886..7c3b9a886 100644 --- a/src/igl/HalfEdgeIterator.cpp +++ b/src/libigl/igl/HalfEdgeIterator.cpp diff --git a/src/igl/HalfEdgeIterator.h b/src/libigl/igl/HalfEdgeIterator.h index 3c429e1d1..3c429e1d1 100644 --- a/src/igl/HalfEdgeIterator.h +++ b/src/libigl/igl/HalfEdgeIterator.h diff --git a/src/igl/Hit.h b/src/libigl/igl/Hit.h index 8bffcc843..8bffcc843 100644 --- a/src/igl/Hit.h +++ b/src/libigl/igl/Hit.h diff --git a/src/igl/IO b/src/libigl/igl/IO index f054d8c99..f054d8c99 100644 --- a/src/igl/IO +++ b/src/libigl/igl/IO diff --git a/src/igl/IndexComparison.h b/src/libigl/igl/IndexComparison.h index 44515df51..44515df51 100644 --- a/src/igl/IndexComparison.h +++ b/src/libigl/igl/IndexComparison.h diff --git a/src/igl/LinSpaced.h b/src/libigl/igl/LinSpaced.h index d40db33d3..d40db33d3 100644 --- a/src/igl/LinSpaced.h +++ b/src/libigl/igl/LinSpaced.h diff --git a/src/igl/MeshBooleanType.h b/src/libigl/igl/MeshBooleanType.h index 2eb293624..2eb293624 100644 --- a/src/igl/MeshBooleanType.h +++ b/src/libigl/igl/MeshBooleanType.h diff --git a/src/igl/NormalType.h b/src/libigl/igl/NormalType.h index b74b57b6a..b74b57b6a 100644 --- a/src/igl/NormalType.h +++ b/src/libigl/igl/NormalType.h diff --git a/src/igl/ONE.h b/src/libigl/igl/ONE.h index 93c509d4e..93c509d4e 100644 --- a/src/igl/ONE.h +++ b/src/libigl/igl/ONE.h diff --git a/src/igl/PI.h b/src/libigl/igl/PI.h index f1ef4359d..f1ef4359d 100644 --- a/src/igl/PI.h +++ b/src/libigl/igl/PI.h diff --git a/src/igl/REDRUM.h b/src/libigl/igl/REDRUM.h index 79ab72ffd..79ab72ffd 100644 --- a/src/igl/REDRUM.h +++ b/src/libigl/igl/REDRUM.h diff --git a/src/igl/STR.h b/src/libigl/igl/STR.h index 0e937167b..0e937167b 100644 --- a/src/igl/STR.h +++ b/src/libigl/igl/STR.h diff --git a/src/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp b/src/libigl/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp index 2207285aa..2207285aa 100644 --- a/src/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp +++ b/src/libigl/igl/Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp diff --git a/src/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp b/src/libigl/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp index 70b437131..70b437131 100644 --- a/src/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp +++ b/src/libigl/igl/Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp diff --git a/src/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp b/src/libigl/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp index 0c3b3ff87..0c3b3ff87 100644 --- a/src/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp +++ b/src/libigl/igl/Singular_Value_Decomposition_Kernel_Declarations.hpp diff --git a/src/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp b/src/libigl/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp index e8898a8aa..e8898a8aa 100644 --- a/src/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp +++ b/src/libigl/igl/Singular_Value_Decomposition_Main_Kernel_Body.hpp diff --git a/src/igl/Singular_Value_Decomposition_Preamble.hpp b/src/libigl/igl/Singular_Value_Decomposition_Preamble.hpp index d55fa86cf..d55fa86cf 100644 --- a/src/igl/Singular_Value_Decomposition_Preamble.hpp +++ b/src/libigl/igl/Singular_Value_Decomposition_Preamble.hpp diff --git a/src/igl/SolverStatus.h b/src/libigl/igl/SolverStatus.h index d9151f5c0..d9151f5c0 100644 --- a/src/igl/SolverStatus.h +++ b/src/libigl/igl/SolverStatus.h diff --git a/src/igl/SortableRow.h b/src/libigl/igl/SortableRow.h index 5f172987b..5f172987b 100644 --- a/src/igl/SortableRow.h +++ b/src/libigl/igl/SortableRow.h diff --git a/src/igl/Timer.h b/src/libigl/igl/Timer.h index ac9e55e6b..ac9e55e6b 100644 --- a/src/igl/Timer.h +++ b/src/libigl/igl/Timer.h diff --git a/src/igl/Viewport.h b/src/libigl/igl/Viewport.h index 717d3f97b..717d3f97b 100644 --- a/src/igl/Viewport.h +++ b/src/libigl/igl/Viewport.h diff --git a/src/igl/WindingNumberAABB.h b/src/libigl/igl/WindingNumberAABB.h index 478026989..478026989 100644 --- a/src/igl/WindingNumberAABB.h +++ b/src/libigl/igl/WindingNumberAABB.h diff --git a/src/igl/WindingNumberMethod.h b/src/libigl/igl/WindingNumberMethod.h index 3bb9062b1..3bb9062b1 100644 --- a/src/igl/WindingNumberMethod.h +++ b/src/libigl/igl/WindingNumberMethod.h diff --git a/src/igl/WindingNumberTree.h b/src/libigl/igl/WindingNumberTree.h index 317ad9442..317ad9442 100644 --- a/src/igl/WindingNumberTree.h +++ b/src/libigl/igl/WindingNumberTree.h diff --git a/src/igl/ZERO.h b/src/libigl/igl/ZERO.h index bd2829905..bd2829905 100644 --- a/src/igl/ZERO.h +++ b/src/libigl/igl/ZERO.h diff --git a/src/igl/active_set.cpp b/src/libigl/igl/active_set.cpp index fd5dfba88..fd5dfba88 100755 --- a/src/igl/active_set.cpp +++ b/src/libigl/igl/active_set.cpp diff --git a/src/igl/active_set.h b/src/libigl/igl/active_set.h index b82d0e52b..b82d0e52b 100644 --- a/src/igl/active_set.h +++ b/src/libigl/igl/active_set.h diff --git a/src/igl/adjacency_list.cpp b/src/libigl/igl/adjacency_list.cpp index 1fb61ebf1..1fb61ebf1 100644 --- a/src/igl/adjacency_list.cpp +++ b/src/libigl/igl/adjacency_list.cpp diff --git a/src/igl/adjacency_list.h b/src/libigl/igl/adjacency_list.h index 7438cde42..7438cde42 100644 --- a/src/igl/adjacency_list.h +++ b/src/libigl/igl/adjacency_list.h diff --git a/src/igl/adjacency_matrix.cpp b/src/libigl/igl/adjacency_matrix.cpp index f6db955c2..f6db955c2 100644 --- a/src/igl/adjacency_matrix.cpp +++ b/src/libigl/igl/adjacency_matrix.cpp diff --git a/src/igl/adjacency_matrix.h b/src/libigl/igl/adjacency_matrix.h index b117bccf7..b117bccf7 100644 --- a/src/igl/adjacency_matrix.h +++ b/src/libigl/igl/adjacency_matrix.h diff --git a/src/igl/all.cpp b/src/libigl/igl/all.cpp index 35245eacb..35245eacb 100644 --- a/src/igl/all.cpp +++ b/src/libigl/igl/all.cpp diff --git a/src/igl/all.h b/src/libigl/igl/all.h index 6e84fdd52..6e84fdd52 100644 --- a/src/igl/all.h +++ b/src/libigl/igl/all.h diff --git a/src/igl/all_edges.cpp b/src/libigl/igl/all_edges.cpp index eabad3038..eabad3038 100644 --- a/src/igl/all_edges.cpp +++ b/src/libigl/igl/all_edges.cpp diff --git a/src/igl/all_edges.h b/src/libigl/igl/all_edges.h index d5fe13a9a..d5fe13a9a 100644 --- a/src/igl/all_edges.h +++ b/src/libigl/igl/all_edges.h diff --git a/src/igl/all_pairs_distances.cpp b/src/libigl/igl/all_pairs_distances.cpp index 608cf9b85..608cf9b85 100644 --- a/src/igl/all_pairs_distances.cpp +++ b/src/libigl/igl/all_pairs_distances.cpp diff --git a/src/igl/all_pairs_distances.h b/src/libigl/igl/all_pairs_distances.h index 9acc1b730..9acc1b730 100644 --- a/src/igl/all_pairs_distances.h +++ b/src/libigl/igl/all_pairs_distances.h diff --git a/src/igl/ambient_occlusion.cpp b/src/libigl/igl/ambient_occlusion.cpp index 343f8ae8a..343f8ae8a 100644 --- a/src/igl/ambient_occlusion.cpp +++ b/src/libigl/igl/ambient_occlusion.cpp diff --git a/src/igl/ambient_occlusion.h b/src/libigl/igl/ambient_occlusion.h index 1c173121e..1c173121e 100644 --- a/src/igl/ambient_occlusion.h +++ b/src/libigl/igl/ambient_occlusion.h diff --git a/src/igl/angular_distance.cpp b/src/libigl/igl/angular_distance.cpp index 803c290c9..803c290c9 100644 --- a/src/igl/angular_distance.cpp +++ b/src/libigl/igl/angular_distance.cpp diff --git a/src/igl/angular_distance.h b/src/libigl/igl/angular_distance.h index 35b100ace..35b100ace 100644 --- a/src/igl/angular_distance.h +++ b/src/libigl/igl/angular_distance.h diff --git a/src/igl/anttweakbar/ReAntTweakBar.cpp b/src/libigl/igl/anttweakbar/ReAntTweakBar.cpp index 3664c6bce..3664c6bce 100644 --- a/src/igl/anttweakbar/ReAntTweakBar.cpp +++ b/src/libigl/igl/anttweakbar/ReAntTweakBar.cpp diff --git a/src/igl/anttweakbar/ReAntTweakBar.h b/src/libigl/igl/anttweakbar/ReAntTweakBar.h index d1dede927..d1dede927 100644 --- a/src/igl/anttweakbar/ReAntTweakBar.h +++ b/src/libigl/igl/anttweakbar/ReAntTweakBar.h diff --git a/src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp b/src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp index bcd6e2be5..bcd6e2be5 100644 --- a/src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp +++ b/src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.cpp diff --git a/src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h b/src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h index fdf3d3bea..fdf3d3bea 100644 --- a/src/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h +++ b/src/libigl/igl/anttweakbar/cocoa_key_to_anttweakbar_key.h diff --git a/src/igl/any.cpp b/src/libigl/igl/any.cpp index 0488c8ffb..0488c8ffb 100644 --- a/src/igl/any.cpp +++ b/src/libigl/igl/any.cpp diff --git a/src/igl/any.h b/src/libigl/igl/any.h index 08a80e4cb..08a80e4cb 100644 --- a/src/igl/any.h +++ b/src/libigl/igl/any.h diff --git a/src/igl/any_of.cpp b/src/libigl/igl/any_of.cpp index 9defd0339..9defd0339 100644 --- a/src/igl/any_of.cpp +++ b/src/libigl/igl/any_of.cpp diff --git a/src/igl/any_of.h b/src/libigl/igl/any_of.h index 95ec1d373..95ec1d373 100644 --- a/src/igl/any_of.h +++ b/src/libigl/igl/any_of.h diff --git a/src/igl/arap.cpp b/src/libigl/igl/arap.cpp index dc5af4cf6..dc5af4cf6 100644 --- a/src/igl/arap.cpp +++ b/src/libigl/igl/arap.cpp diff --git a/src/igl/arap.h b/src/libigl/igl/arap.h index b2210e64f..b2210e64f 100644 --- a/src/igl/arap.h +++ b/src/libigl/igl/arap.h diff --git a/src/igl/arap_dof.cpp b/src/libigl/igl/arap_dof.cpp index 033d1deb3..033d1deb3 100644 --- a/src/igl/arap_dof.cpp +++ b/src/libigl/igl/arap_dof.cpp diff --git a/src/igl/arap_dof.h b/src/libigl/igl/arap_dof.h index f3647a3a1..f3647a3a1 100644 --- a/src/igl/arap_dof.h +++ b/src/libigl/igl/arap_dof.h diff --git a/src/igl/arap_linear_block.cpp b/src/libigl/igl/arap_linear_block.cpp index 14886b2bc..14886b2bc 100644 --- a/src/igl/arap_linear_block.cpp +++ b/src/libigl/igl/arap_linear_block.cpp diff --git a/src/igl/arap_linear_block.h b/src/libigl/igl/arap_linear_block.h index 8dfb744f6..8dfb744f6 100644 --- a/src/igl/arap_linear_block.h +++ b/src/libigl/igl/arap_linear_block.h diff --git a/src/igl/arap_rhs.cpp b/src/libigl/igl/arap_rhs.cpp index b46462168..b46462168 100644 --- a/src/igl/arap_rhs.cpp +++ b/src/libigl/igl/arap_rhs.cpp diff --git a/src/igl/arap_rhs.h b/src/libigl/igl/arap_rhs.h index 5a1c370c1..5a1c370c1 100644 --- a/src/igl/arap_rhs.h +++ b/src/libigl/igl/arap_rhs.h diff --git a/src/igl/average_onto_faces.cpp b/src/libigl/igl/average_onto_faces.cpp index b5cec91ad..b5cec91ad 100644 --- a/src/igl/average_onto_faces.cpp +++ b/src/libigl/igl/average_onto_faces.cpp diff --git a/src/igl/average_onto_faces.h b/src/libigl/igl/average_onto_faces.h index 1afa919e9..1afa919e9 100644 --- a/src/igl/average_onto_faces.h +++ b/src/libigl/igl/average_onto_faces.h diff --git a/src/igl/average_onto_vertices.cpp b/src/libigl/igl/average_onto_vertices.cpp index a30854edb..a30854edb 100644 --- a/src/igl/average_onto_vertices.cpp +++ b/src/libigl/igl/average_onto_vertices.cpp diff --git a/src/igl/average_onto_vertices.h b/src/libigl/igl/average_onto_vertices.h index e7fca6238..e7fca6238 100644 --- a/src/igl/average_onto_vertices.h +++ b/src/libigl/igl/average_onto_vertices.h diff --git a/src/igl/avg_edge_length.cpp b/src/libigl/igl/avg_edge_length.cpp index b813d484a..b813d484a 100644 --- a/src/igl/avg_edge_length.cpp +++ b/src/libigl/igl/avg_edge_length.cpp diff --git a/src/igl/avg_edge_length.h b/src/libigl/igl/avg_edge_length.h index 613f8f5da..613f8f5da 100644 --- a/src/igl/avg_edge_length.h +++ b/src/libigl/igl/avg_edge_length.h diff --git a/src/igl/axis_angle_to_quat.cpp b/src/libigl/igl/axis_angle_to_quat.cpp index 009d0522c..009d0522c 100644 --- a/src/igl/axis_angle_to_quat.cpp +++ b/src/libigl/igl/axis_angle_to_quat.cpp diff --git a/src/igl/axis_angle_to_quat.h b/src/libigl/igl/axis_angle_to_quat.h index 6533b1bec..6533b1bec 100644 --- a/src/igl/axis_angle_to_quat.h +++ b/src/libigl/igl/axis_angle_to_quat.h diff --git a/src/igl/barycenter.cpp b/src/libigl/igl/barycenter.cpp index 065f82aab..065f82aab 100644 --- a/src/igl/barycenter.cpp +++ b/src/libigl/igl/barycenter.cpp diff --git a/src/igl/barycenter.h b/src/libigl/igl/barycenter.h index ef78e94a6..ef78e94a6 100644 --- a/src/igl/barycenter.h +++ b/src/libigl/igl/barycenter.h diff --git a/src/igl/barycentric_coordinates.cpp b/src/libigl/igl/barycentric_coordinates.cpp index 998a737bf..998a737bf 100644 --- a/src/igl/barycentric_coordinates.cpp +++ b/src/libigl/igl/barycentric_coordinates.cpp diff --git a/src/igl/barycentric_coordinates.h b/src/libigl/igl/barycentric_coordinates.h index ec08669f2..ec08669f2 100644 --- a/src/igl/barycentric_coordinates.h +++ b/src/libigl/igl/barycentric_coordinates.h diff --git a/src/igl/barycentric_to_global.cpp b/src/libigl/igl/barycentric_to_global.cpp index e2656ad70..e2656ad70 100755 --- a/src/igl/barycentric_to_global.cpp +++ b/src/libigl/igl/barycentric_to_global.cpp diff --git a/src/igl/barycentric_to_global.h b/src/libigl/igl/barycentric_to_global.h index 466187173..466187173 100755 --- a/src/igl/barycentric_to_global.h +++ b/src/libigl/igl/barycentric_to_global.h diff --git a/src/igl/basename.cpp b/src/libigl/igl/basename.cpp index ae4fb118e..ae4fb118e 100644 --- a/src/igl/basename.cpp +++ b/src/libigl/igl/basename.cpp diff --git a/src/igl/basename.h b/src/libigl/igl/basename.h index fb333b5c4..fb333b5c4 100644 --- a/src/igl/basename.h +++ b/src/libigl/igl/basename.h diff --git a/src/igl/bbw.cpp b/src/libigl/igl/bbw.cpp index c7df7dd3b..c7df7dd3b 100644 --- a/src/igl/bbw.cpp +++ b/src/libigl/igl/bbw.cpp diff --git a/src/igl/bbw.h b/src/libigl/igl/bbw.h index bec20bb98..bec20bb98 100644 --- a/src/igl/bbw.h +++ b/src/libigl/igl/bbw.h diff --git a/src/igl/bfs.cpp b/src/libigl/igl/bfs.cpp index 8ff51c050..8ff51c050 100644 --- a/src/igl/bfs.cpp +++ b/src/libigl/igl/bfs.cpp diff --git a/src/igl/bfs.h b/src/libigl/igl/bfs.h index 6f49e93eb..6f49e93eb 100644 --- a/src/igl/bfs.h +++ b/src/libigl/igl/bfs.h diff --git a/src/igl/bfs_orient.cpp b/src/libigl/igl/bfs_orient.cpp index 23dd93a49..23dd93a49 100644 --- a/src/igl/bfs_orient.cpp +++ b/src/libigl/igl/bfs_orient.cpp diff --git a/src/igl/bfs_orient.h b/src/libigl/igl/bfs_orient.h index b37f397d8..b37f397d8 100644 --- a/src/igl/bfs_orient.h +++ b/src/libigl/igl/bfs_orient.h diff --git a/src/igl/biharmonic_coordinates.cpp b/src/libigl/igl/biharmonic_coordinates.cpp index 686ecd5e4..686ecd5e4 100644 --- a/src/igl/biharmonic_coordinates.cpp +++ b/src/libigl/igl/biharmonic_coordinates.cpp diff --git a/src/igl/biharmonic_coordinates.h b/src/libigl/igl/biharmonic_coordinates.h index 26f67329a..26f67329a 100644 --- a/src/igl/biharmonic_coordinates.h +++ b/src/libigl/igl/biharmonic_coordinates.h diff --git a/src/igl/bijective_composite_harmonic_mapping.cpp b/src/libigl/igl/bijective_composite_harmonic_mapping.cpp index 517109c04..517109c04 100644 --- a/src/igl/bijective_composite_harmonic_mapping.cpp +++ b/src/libigl/igl/bijective_composite_harmonic_mapping.cpp diff --git a/src/igl/bijective_composite_harmonic_mapping.h b/src/libigl/igl/bijective_composite_harmonic_mapping.h index f055e5293..f055e5293 100644 --- a/src/igl/bijective_composite_harmonic_mapping.h +++ b/src/libigl/igl/bijective_composite_harmonic_mapping.h diff --git a/src/igl/bone_parents.cpp b/src/libigl/igl/bone_parents.cpp index d5cd6ddfa..d5cd6ddfa 100644 --- a/src/igl/bone_parents.cpp +++ b/src/libigl/igl/bone_parents.cpp diff --git a/src/igl/bone_parents.h b/src/libigl/igl/bone_parents.h index e0091cdfc..e0091cdfc 100644 --- a/src/igl/bone_parents.h +++ b/src/libigl/igl/bone_parents.h diff --git a/src/igl/boundary_conditions.cpp b/src/libigl/igl/boundary_conditions.cpp index f7146cd70..f7146cd70 100644 --- a/src/igl/boundary_conditions.cpp +++ b/src/libigl/igl/boundary_conditions.cpp diff --git a/src/igl/boundary_conditions.h b/src/libigl/igl/boundary_conditions.h index 643dbe7c1..643dbe7c1 100644 --- a/src/igl/boundary_conditions.h +++ b/src/libigl/igl/boundary_conditions.h diff --git a/src/igl/boundary_facets.cpp b/src/libigl/igl/boundary_facets.cpp index 67e74db4f..67e74db4f 100644 --- a/src/igl/boundary_facets.cpp +++ b/src/libigl/igl/boundary_facets.cpp diff --git a/src/igl/boundary_facets.h b/src/libigl/igl/boundary_facets.h index 74ac032a1..74ac032a1 100644 --- a/src/igl/boundary_facets.h +++ b/src/libigl/igl/boundary_facets.h diff --git a/src/igl/boundary_loop.cpp b/src/libigl/igl/boundary_loop.cpp index 9a3ec625e..9a3ec625e 100755 --- a/src/igl/boundary_loop.cpp +++ b/src/libigl/igl/boundary_loop.cpp diff --git a/src/igl/boundary_loop.h b/src/libigl/igl/boundary_loop.h index ebb5072a5..ebb5072a5 100755 --- a/src/igl/boundary_loop.h +++ b/src/libigl/igl/boundary_loop.h diff --git a/src/igl/bounding_box.cpp b/src/libigl/igl/bounding_box.cpp index e740b058f..e740b058f 100644 --- a/src/igl/bounding_box.cpp +++ b/src/libigl/igl/bounding_box.cpp diff --git a/src/igl/bounding_box.h b/src/libigl/igl/bounding_box.h index 7e053d2cc..7e053d2cc 100644 --- a/src/igl/bounding_box.h +++ b/src/libigl/igl/bounding_box.h diff --git a/src/igl/bounding_box_diagonal.cpp b/src/libigl/igl/bounding_box_diagonal.cpp index 1023abb50..1023abb50 100644 --- a/src/igl/bounding_box_diagonal.cpp +++ b/src/libigl/igl/bounding_box_diagonal.cpp diff --git a/src/igl/bounding_box_diagonal.h b/src/libigl/igl/bounding_box_diagonal.h index d89025bd5..d89025bd5 100644 --- a/src/igl/bounding_box_diagonal.h +++ b/src/libigl/igl/bounding_box_diagonal.h diff --git a/src/igl/canonical_quaternions.cpp b/src/libigl/igl/canonical_quaternions.cpp index 55d68da86..55d68da86 100644 --- a/src/igl/canonical_quaternions.cpp +++ b/src/libigl/igl/canonical_quaternions.cpp diff --git a/src/igl/canonical_quaternions.h b/src/libigl/igl/canonical_quaternions.h index 86d90112d..86d90112d 100644 --- a/src/igl/canonical_quaternions.h +++ b/src/libigl/igl/canonical_quaternions.h diff --git a/src/igl/cat.cpp b/src/libigl/igl/cat.cpp index f297fc135..f297fc135 100644 --- a/src/igl/cat.cpp +++ b/src/libigl/igl/cat.cpp diff --git a/src/igl/cat.h b/src/libigl/igl/cat.h index 615bda130..615bda130 100644 --- a/src/igl/cat.h +++ b/src/libigl/igl/cat.h diff --git a/src/igl/ceil.cpp b/src/libigl/igl/ceil.cpp index 278269ab2..278269ab2 100644 --- a/src/igl/ceil.cpp +++ b/src/libigl/igl/ceil.cpp diff --git a/src/igl/ceil.h b/src/libigl/igl/ceil.h index b6acee904..b6acee904 100644 --- a/src/igl/ceil.h +++ b/src/libigl/igl/ceil.h diff --git a/src/igl/centroid.cpp b/src/libigl/igl/centroid.cpp index a9ed25df2..a9ed25df2 100644 --- a/src/igl/centroid.cpp +++ b/src/libigl/igl/centroid.cpp diff --git a/src/igl/centroid.h b/src/libigl/igl/centroid.h index 31fa7ae6b..31fa7ae6b 100644 --- a/src/igl/centroid.h +++ b/src/libigl/igl/centroid.h diff --git a/src/igl/circulation.cpp b/src/libigl/igl/circulation.cpp index 6f711b946..6f711b946 100644 --- a/src/igl/circulation.cpp +++ b/src/libigl/igl/circulation.cpp diff --git a/src/igl/circulation.h b/src/libigl/igl/circulation.h index d8d14c7ed..d8d14c7ed 100644 --- a/src/igl/circulation.h +++ b/src/libigl/igl/circulation.h diff --git a/src/igl/circumradius.cpp b/src/libigl/igl/circumradius.cpp index 34424eae2..34424eae2 100644 --- a/src/igl/circumradius.cpp +++ b/src/libigl/igl/circumradius.cpp diff --git a/src/igl/circumradius.h b/src/libigl/igl/circumradius.h index 12592ee3f..12592ee3f 100644 --- a/src/igl/circumradius.h +++ b/src/libigl/igl/circumradius.h diff --git a/src/igl/collapse_edge.cpp b/src/libigl/igl/collapse_edge.cpp index 9f00b4323..9f00b4323 100644 --- a/src/igl/collapse_edge.cpp +++ b/src/libigl/igl/collapse_edge.cpp diff --git a/src/igl/collapse_edge.h b/src/libigl/igl/collapse_edge.h index 90e562556..90e562556 100644 --- a/src/igl/collapse_edge.h +++ b/src/libigl/igl/collapse_edge.h diff --git a/src/igl/collapse_small_triangles.cpp b/src/libigl/igl/collapse_small_triangles.cpp index 5177c584f..5177c584f 100644 --- a/src/igl/collapse_small_triangles.cpp +++ b/src/libigl/igl/collapse_small_triangles.cpp diff --git a/src/igl/collapse_small_triangles.h b/src/libigl/igl/collapse_small_triangles.h index dacf86953..dacf86953 100644 --- a/src/igl/collapse_small_triangles.h +++ b/src/libigl/igl/collapse_small_triangles.h diff --git a/src/igl/colon.cpp b/src/libigl/igl/colon.cpp index a10c2982e..a10c2982e 100644 --- a/src/igl/colon.cpp +++ b/src/libigl/igl/colon.cpp diff --git a/src/igl/colon.h b/src/libigl/igl/colon.h index 1f2b9bf6f..1f2b9bf6f 100644 --- a/src/igl/colon.h +++ b/src/libigl/igl/colon.h diff --git a/src/igl/colormap.cpp b/src/libigl/igl/colormap.cpp index 560cbe6c0..560cbe6c0 100644 --- a/src/igl/colormap.cpp +++ b/src/libigl/igl/colormap.cpp diff --git a/src/igl/colormap.h b/src/libigl/igl/colormap.h index 1d93d73b1..1d93d73b1 100644 --- a/src/igl/colormap.h +++ b/src/libigl/igl/colormap.h diff --git a/src/igl/column_to_quats.cpp b/src/libigl/igl/column_to_quats.cpp index f87adab06..f87adab06 100644 --- a/src/igl/column_to_quats.cpp +++ b/src/libigl/igl/column_to_quats.cpp diff --git a/src/igl/column_to_quats.h b/src/libigl/igl/column_to_quats.h index 0be12c250..0be12c250 100644 --- a/src/igl/column_to_quats.h +++ b/src/libigl/igl/column_to_quats.h diff --git a/src/igl/columnize.cpp b/src/libigl/igl/columnize.cpp index 29e91c669..29e91c669 100644 --- a/src/igl/columnize.cpp +++ b/src/libigl/igl/columnize.cpp diff --git a/src/igl/columnize.h b/src/libigl/igl/columnize.h index 1bb453af1..1bb453af1 100644 --- a/src/igl/columnize.h +++ b/src/libigl/igl/columnize.h diff --git a/src/igl/comb_cross_field.cpp b/src/libigl/igl/comb_cross_field.cpp index c277b056d..c277b056d 100644 --- a/src/igl/comb_cross_field.cpp +++ b/src/libigl/igl/comb_cross_field.cpp diff --git a/src/igl/comb_cross_field.h b/src/libigl/igl/comb_cross_field.h index fa3b57648..fa3b57648 100644 --- a/src/igl/comb_cross_field.h +++ b/src/libigl/igl/comb_cross_field.h diff --git a/src/igl/comb_frame_field.cpp b/src/libigl/igl/comb_frame_field.cpp index f8afe56e9..f8afe56e9 100644 --- a/src/igl/comb_frame_field.cpp +++ b/src/libigl/igl/comb_frame_field.cpp diff --git a/src/igl/comb_frame_field.h b/src/libigl/igl/comb_frame_field.h index 4691dc19d..4691dc19d 100644 --- a/src/igl/comb_frame_field.h +++ b/src/libigl/igl/comb_frame_field.h diff --git a/src/igl/comb_line_field.cpp b/src/libigl/igl/comb_line_field.cpp index 66899319a..66899319a 100644 --- a/src/igl/comb_line_field.cpp +++ b/src/libigl/igl/comb_line_field.cpp diff --git a/src/igl/comb_line_field.h b/src/libigl/igl/comb_line_field.h index e2f22b37f..e2f22b37f 100644 --- a/src/igl/comb_line_field.h +++ b/src/libigl/igl/comb_line_field.h diff --git a/src/igl/combine.cpp b/src/libigl/igl/combine.cpp index 7e0af151a..7e0af151a 100644 --- a/src/igl/combine.cpp +++ b/src/libigl/igl/combine.cpp diff --git a/src/igl/combine.h b/src/libigl/igl/combine.h index ff5e1ae34..ff5e1ae34 100644 --- a/src/igl/combine.h +++ b/src/libigl/igl/combine.h diff --git a/src/igl/components.cpp b/src/libigl/igl/components.cpp index 253186889..253186889 100644 --- a/src/igl/components.cpp +++ b/src/libigl/igl/components.cpp diff --git a/src/igl/components.h b/src/libigl/igl/components.h index d43a64c89..d43a64c89 100644 --- a/src/igl/components.h +++ b/src/libigl/igl/components.h diff --git a/src/igl/compute_frame_field_bisectors.cpp b/src/libigl/igl/compute_frame_field_bisectors.cpp index e3c47c608..e3c47c608 100644 --- a/src/igl/compute_frame_field_bisectors.cpp +++ b/src/libigl/igl/compute_frame_field_bisectors.cpp diff --git a/src/igl/compute_frame_field_bisectors.h b/src/libigl/igl/compute_frame_field_bisectors.h index 4c853febf..4c853febf 100644 --- a/src/igl/compute_frame_field_bisectors.h +++ b/src/libigl/igl/compute_frame_field_bisectors.h diff --git a/src/igl/connect_boundary_to_infinity.cpp b/src/libigl/igl/connect_boundary_to_infinity.cpp index 627b0b9b6..627b0b9b6 100644 --- a/src/igl/connect_boundary_to_infinity.cpp +++ b/src/libigl/igl/connect_boundary_to_infinity.cpp diff --git a/src/igl/connect_boundary_to_infinity.h b/src/libigl/igl/connect_boundary_to_infinity.h index 2fa2783d6..2fa2783d6 100644 --- a/src/igl/connect_boundary_to_infinity.h +++ b/src/libigl/igl/connect_boundary_to_infinity.h diff --git a/src/igl/copyleft/README.md b/src/libigl/igl/copyleft/README.md index 78454affc..78454affc 100644 --- a/src/igl/copyleft/README.md +++ b/src/libigl/igl/copyleft/README.md diff --git a/src/igl/copyleft/cgal/BinaryWindingNumberOperations.h b/src/libigl/igl/copyleft/cgal/BinaryWindingNumberOperations.h index 9bae0b7bb..9bae0b7bb 100644 --- a/src/igl/copyleft/cgal/BinaryWindingNumberOperations.h +++ b/src/libigl/igl/copyleft/cgal/BinaryWindingNumberOperations.h diff --git a/src/igl/copyleft/cgal/CGAL_includes.hpp b/src/libigl/igl/copyleft/cgal/CGAL_includes.hpp index 38d2fc749..38d2fc749 100644 --- a/src/igl/copyleft/cgal/CGAL_includes.hpp +++ b/src/libigl/igl/copyleft/cgal/CGAL_includes.hpp diff --git a/src/igl/copyleft/cgal/CSGTree.h b/src/libigl/igl/copyleft/cgal/CSGTree.h index 599572d3f..599572d3f 100644 --- a/src/igl/copyleft/cgal/CSGTree.h +++ b/src/libigl/igl/copyleft/cgal/CSGTree.h diff --git a/src/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h b/src/libigl/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h index b2621224c..b2621224c 100644 --- a/src/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h +++ b/src/libigl/igl/copyleft/cgal/RemeshSelfIntersectionsParam.h diff --git a/src/igl/copyleft/cgal/SelfIntersectMesh.h b/src/libigl/igl/copyleft/cgal/SelfIntersectMesh.h index 5a70fc39e..5a70fc39e 100644 --- a/src/igl/copyleft/cgal/SelfIntersectMesh.h +++ b/src/libigl/igl/copyleft/cgal/SelfIntersectMesh.h diff --git a/src/igl/copyleft/cgal/assign.cpp b/src/libigl/igl/copyleft/cgal/assign.cpp index 0631b58a7..0631b58a7 100644 --- a/src/igl/copyleft/cgal/assign.cpp +++ b/src/libigl/igl/copyleft/cgal/assign.cpp diff --git a/src/igl/copyleft/cgal/assign.h b/src/libigl/igl/copyleft/cgal/assign.h index db9081f23..db9081f23 100644 --- a/src/igl/copyleft/cgal/assign.h +++ b/src/libigl/igl/copyleft/cgal/assign.h diff --git a/src/igl/copyleft/cgal/assign_scalar.cpp b/src/libigl/igl/copyleft/cgal/assign_scalar.cpp index c38ee03a1..c38ee03a1 100644 --- a/src/igl/copyleft/cgal/assign_scalar.cpp +++ b/src/libigl/igl/copyleft/cgal/assign_scalar.cpp diff --git a/src/igl/copyleft/cgal/assign_scalar.h b/src/libigl/igl/copyleft/cgal/assign_scalar.h index feec928d5..feec928d5 100644 --- a/src/igl/copyleft/cgal/assign_scalar.h +++ b/src/libigl/igl/copyleft/cgal/assign_scalar.h diff --git a/src/igl/copyleft/cgal/barycenter.cpp b/src/libigl/igl/copyleft/cgal/barycenter.cpp index b3ed8aeaf..b3ed8aeaf 100644 --- a/src/igl/copyleft/cgal/barycenter.cpp +++ b/src/libigl/igl/copyleft/cgal/barycenter.cpp diff --git a/src/igl/copyleft/cgal/cell_adjacency.cpp b/src/libigl/igl/copyleft/cgal/cell_adjacency.cpp index 1824a37c8..1824a37c8 100644 --- a/src/igl/copyleft/cgal/cell_adjacency.cpp +++ b/src/libigl/igl/copyleft/cgal/cell_adjacency.cpp diff --git a/src/igl/copyleft/cgal/cell_adjacency.h b/src/libigl/igl/copyleft/cgal/cell_adjacency.h index 2244d3c4a..2244d3c4a 100644 --- a/src/igl/copyleft/cgal/cell_adjacency.h +++ b/src/libigl/igl/copyleft/cgal/cell_adjacency.h diff --git a/src/igl/copyleft/cgal/closest_facet.cpp b/src/libigl/igl/copyleft/cgal/closest_facet.cpp index 0b08dd4bc..0b08dd4bc 100644 --- a/src/igl/copyleft/cgal/closest_facet.cpp +++ b/src/libigl/igl/copyleft/cgal/closest_facet.cpp diff --git a/src/igl/copyleft/cgal/closest_facet.h b/src/libigl/igl/copyleft/cgal/closest_facet.h index 737ca2e22..737ca2e22 100644 --- a/src/igl/copyleft/cgal/closest_facet.h +++ b/src/libigl/igl/copyleft/cgal/closest_facet.h diff --git a/src/igl/copyleft/cgal/complex_to_mesh.cpp b/src/libigl/igl/copyleft/cgal/complex_to_mesh.cpp index 74bf085ab..74bf085ab 100644 --- a/src/igl/copyleft/cgal/complex_to_mesh.cpp +++ b/src/libigl/igl/copyleft/cgal/complex_to_mesh.cpp diff --git a/src/igl/copyleft/cgal/complex_to_mesh.h b/src/libigl/igl/copyleft/cgal/complex_to_mesh.h index ed66064b7..ed66064b7 100644 --- a/src/igl/copyleft/cgal/complex_to_mesh.h +++ b/src/libigl/igl/copyleft/cgal/complex_to_mesh.h diff --git a/src/igl/copyleft/cgal/component_inside_component.cpp b/src/libigl/igl/copyleft/cgal/component_inside_component.cpp index 251e91949..251e91949 100644 --- a/src/igl/copyleft/cgal/component_inside_component.cpp +++ b/src/libigl/igl/copyleft/cgal/component_inside_component.cpp diff --git a/src/igl/copyleft/cgal/component_inside_component.h b/src/libigl/igl/copyleft/cgal/component_inside_component.h index 17fdd6255..17fdd6255 100644 --- a/src/igl/copyleft/cgal/component_inside_component.h +++ b/src/libigl/igl/copyleft/cgal/component_inside_component.h diff --git a/src/igl/copyleft/cgal/convex_hull.cpp b/src/libigl/igl/copyleft/cgal/convex_hull.cpp index 8f89d5593..8f89d5593 100644 --- a/src/igl/copyleft/cgal/convex_hull.cpp +++ b/src/libigl/igl/copyleft/cgal/convex_hull.cpp diff --git a/src/igl/copyleft/cgal/convex_hull.h b/src/libigl/igl/copyleft/cgal/convex_hull.h index ba04dd7cc..ba04dd7cc 100644 --- a/src/igl/copyleft/cgal/convex_hull.h +++ b/src/libigl/igl/copyleft/cgal/convex_hull.h diff --git a/src/igl/copyleft/cgal/delaunay_triangulation.cpp b/src/libigl/igl/copyleft/cgal/delaunay_triangulation.cpp index 787f79f9e..787f79f9e 100644 --- a/src/igl/copyleft/cgal/delaunay_triangulation.cpp +++ b/src/libigl/igl/copyleft/cgal/delaunay_triangulation.cpp diff --git a/src/igl/copyleft/cgal/delaunay_triangulation.h b/src/libigl/igl/copyleft/cgal/delaunay_triangulation.h index 88cbf9fe0..88cbf9fe0 100644 --- a/src/igl/copyleft/cgal/delaunay_triangulation.h +++ b/src/libigl/igl/copyleft/cgal/delaunay_triangulation.h diff --git a/src/igl/copyleft/cgal/extract_cells.cpp b/src/libigl/igl/copyleft/cgal/extract_cells.cpp index a314edfae..a314edfae 100644 --- a/src/igl/copyleft/cgal/extract_cells.cpp +++ b/src/libigl/igl/copyleft/cgal/extract_cells.cpp diff --git a/src/igl/copyleft/cgal/extract_cells.h b/src/libigl/igl/copyleft/cgal/extract_cells.h index 9575ffbae..9575ffbae 100644 --- a/src/igl/copyleft/cgal/extract_cells.h +++ b/src/libigl/igl/copyleft/cgal/extract_cells.h diff --git a/src/igl/copyleft/cgal/extract_feature.cpp b/src/libigl/igl/copyleft/cgal/extract_feature.cpp index ff8205d35..ff8205d35 100644 --- a/src/igl/copyleft/cgal/extract_feature.cpp +++ b/src/libigl/igl/copyleft/cgal/extract_feature.cpp diff --git a/src/igl/copyleft/cgal/extract_feature.h b/src/libigl/igl/copyleft/cgal/extract_feature.h index 90d469377..90d469377 100644 --- a/src/igl/copyleft/cgal/extract_feature.h +++ b/src/libigl/igl/copyleft/cgal/extract_feature.h diff --git a/src/igl/copyleft/cgal/fast_winding_number.cpp b/src/libigl/igl/copyleft/cgal/fast_winding_number.cpp index 682754a86..682754a86 100644 --- a/src/igl/copyleft/cgal/fast_winding_number.cpp +++ b/src/libigl/igl/copyleft/cgal/fast_winding_number.cpp diff --git a/src/igl/copyleft/cgal/fast_winding_number.h b/src/libigl/igl/copyleft/cgal/fast_winding_number.h index a4ab15316..a4ab15316 100644 --- a/src/igl/copyleft/cgal/fast_winding_number.h +++ b/src/libigl/igl/copyleft/cgal/fast_winding_number.h diff --git a/src/igl/copyleft/cgal/half_space_box.cpp b/src/libigl/igl/copyleft/cgal/half_space_box.cpp index 1bfa8ea52..1bfa8ea52 100644 --- a/src/igl/copyleft/cgal/half_space_box.cpp +++ b/src/libigl/igl/copyleft/cgal/half_space_box.cpp diff --git a/src/igl/copyleft/cgal/half_space_box.h b/src/libigl/igl/copyleft/cgal/half_space_box.h index 275502235..275502235 100644 --- a/src/igl/copyleft/cgal/half_space_box.h +++ b/src/libigl/igl/copyleft/cgal/half_space_box.h diff --git a/src/igl/copyleft/cgal/hausdorff.cpp b/src/libigl/igl/copyleft/cgal/hausdorff.cpp index 382e9b476..382e9b476 100644 --- a/src/igl/copyleft/cgal/hausdorff.cpp +++ b/src/libigl/igl/copyleft/cgal/hausdorff.cpp diff --git a/src/igl/copyleft/cgal/hausdorff.h b/src/libigl/igl/copyleft/cgal/hausdorff.h index c377d4576..c377d4576 100644 --- a/src/igl/copyleft/cgal/hausdorff.h +++ b/src/libigl/igl/copyleft/cgal/hausdorff.h diff --git a/src/igl/copyleft/cgal/incircle.cpp b/src/libigl/igl/copyleft/cgal/incircle.cpp index d129d3b14..d129d3b14 100644 --- a/src/igl/copyleft/cgal/incircle.cpp +++ b/src/libigl/igl/copyleft/cgal/incircle.cpp diff --git a/src/igl/copyleft/cgal/incircle.h b/src/libigl/igl/copyleft/cgal/incircle.h index 4088dc9b5..4088dc9b5 100644 --- a/src/igl/copyleft/cgal/incircle.h +++ b/src/libigl/igl/copyleft/cgal/incircle.h diff --git a/src/igl/copyleft/cgal/insert_into_cdt.cpp b/src/libigl/igl/copyleft/cgal/insert_into_cdt.cpp index 2ea4e6de1..2ea4e6de1 100644 --- a/src/igl/copyleft/cgal/insert_into_cdt.cpp +++ b/src/libigl/igl/copyleft/cgal/insert_into_cdt.cpp diff --git a/src/igl/copyleft/cgal/insert_into_cdt.h b/src/libigl/igl/copyleft/cgal/insert_into_cdt.h index afca0233f..afca0233f 100644 --- a/src/igl/copyleft/cgal/insert_into_cdt.h +++ b/src/libigl/igl/copyleft/cgal/insert_into_cdt.h diff --git a/src/igl/copyleft/cgal/insphere.cpp b/src/libigl/igl/copyleft/cgal/insphere.cpp index db12fea33..db12fea33 100644 --- a/src/igl/copyleft/cgal/insphere.cpp +++ b/src/libigl/igl/copyleft/cgal/insphere.cpp diff --git a/src/igl/copyleft/cgal/insphere.h b/src/libigl/igl/copyleft/cgal/insphere.h index 88a926668..88a926668 100644 --- a/src/igl/copyleft/cgal/insphere.h +++ b/src/libigl/igl/copyleft/cgal/insphere.h diff --git a/src/igl/copyleft/cgal/intersect_other.cpp b/src/libigl/igl/copyleft/cgal/intersect_other.cpp index 9f984f956..9f984f956 100644 --- a/src/igl/copyleft/cgal/intersect_other.cpp +++ b/src/libigl/igl/copyleft/cgal/intersect_other.cpp diff --git a/src/igl/copyleft/cgal/intersect_other.h b/src/libigl/igl/copyleft/cgal/intersect_other.h index c1afdf87d..c1afdf87d 100644 --- a/src/igl/copyleft/cgal/intersect_other.h +++ b/src/libigl/igl/copyleft/cgal/intersect_other.h diff --git a/src/igl/copyleft/cgal/intersect_with_half_space.cpp b/src/libigl/igl/copyleft/cgal/intersect_with_half_space.cpp index c4ba4dbb8..c4ba4dbb8 100644 --- a/src/igl/copyleft/cgal/intersect_with_half_space.cpp +++ b/src/libigl/igl/copyleft/cgal/intersect_with_half_space.cpp diff --git a/src/igl/copyleft/cgal/intersect_with_half_space.h b/src/libigl/igl/copyleft/cgal/intersect_with_half_space.h index 9fdf9ae2b..9fdf9ae2b 100644 --- a/src/igl/copyleft/cgal/intersect_with_half_space.h +++ b/src/libigl/igl/copyleft/cgal/intersect_with_half_space.h diff --git a/src/igl/copyleft/cgal/lexicographic_triangulation.cpp b/src/libigl/igl/copyleft/cgal/lexicographic_triangulation.cpp index 719b50dbf..719b50dbf 100644 --- a/src/igl/copyleft/cgal/lexicographic_triangulation.cpp +++ b/src/libigl/igl/copyleft/cgal/lexicographic_triangulation.cpp diff --git a/src/igl/copyleft/cgal/lexicographic_triangulation.h b/src/libigl/igl/copyleft/cgal/lexicographic_triangulation.h index 5773a3942..5773a3942 100644 --- a/src/igl/copyleft/cgal/lexicographic_triangulation.h +++ b/src/libigl/igl/copyleft/cgal/lexicographic_triangulation.h diff --git a/src/igl/copyleft/cgal/list_to_matrix.cpp b/src/libigl/igl/copyleft/cgal/list_to_matrix.cpp index e94dde6b8..e94dde6b8 100644 --- a/src/igl/copyleft/cgal/list_to_matrix.cpp +++ b/src/libigl/igl/copyleft/cgal/list_to_matrix.cpp diff --git a/src/igl/copyleft/cgal/mesh_boolean.cpp b/src/libigl/igl/copyleft/cgal/mesh_boolean.cpp index 5d289f6c3..5d289f6c3 100644 --- a/src/igl/copyleft/cgal/mesh_boolean.cpp +++ b/src/libigl/igl/copyleft/cgal/mesh_boolean.cpp diff --git a/src/igl/copyleft/cgal/mesh_boolean.h b/src/libigl/igl/copyleft/cgal/mesh_boolean.h index 24c99ed41..24c99ed41 100644 --- a/src/igl/copyleft/cgal/mesh_boolean.h +++ b/src/libigl/igl/copyleft/cgal/mesh_boolean.h diff --git a/src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp b/src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp index 41b67c1b7..41b67c1b7 100644 --- a/src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp +++ b/src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.cpp diff --git a/src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h b/src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h index 2a269d770..2a269d770 100644 --- a/src/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h +++ b/src/libigl/igl/copyleft/cgal/mesh_boolean_type_to_funcs.h diff --git a/src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp b/src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp index 7f3af539d..7f3af539d 100644 --- a/src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp +++ b/src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.cpp diff --git a/src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h b/src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h index 492215bd5..492215bd5 100644 --- a/src/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h +++ b/src/libigl/igl/copyleft/cgal/mesh_to_cgal_triangle_list.h diff --git a/src/igl/copyleft/cgal/mesh_to_polyhedron.cpp b/src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.cpp index b0bfe7079..b0bfe7079 100644 --- a/src/igl/copyleft/cgal/mesh_to_polyhedron.cpp +++ b/src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.cpp diff --git a/src/igl/copyleft/cgal/mesh_to_polyhedron.h b/src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.h index de17d8aa2..de17d8aa2 100644 --- a/src/igl/copyleft/cgal/mesh_to_polyhedron.h +++ b/src/libigl/igl/copyleft/cgal/mesh_to_polyhedron.h diff --git a/src/igl/copyleft/cgal/minkowski_sum.cpp b/src/libigl/igl/copyleft/cgal/minkowski_sum.cpp index c9045a4c7..c9045a4c7 100644 --- a/src/igl/copyleft/cgal/minkowski_sum.cpp +++ b/src/libigl/igl/copyleft/cgal/minkowski_sum.cpp diff --git a/src/igl/copyleft/cgal/minkowski_sum.h b/src/libigl/igl/copyleft/cgal/minkowski_sum.h index 1631f0766..1631f0766 100644 --- a/src/igl/copyleft/cgal/minkowski_sum.h +++ b/src/libigl/igl/copyleft/cgal/minkowski_sum.h diff --git a/src/igl/copyleft/cgal/order_facets_around_edge.cpp b/src/libigl/igl/copyleft/cgal/order_facets_around_edge.cpp index 13b585b50..13b585b50 100644 --- a/src/igl/copyleft/cgal/order_facets_around_edge.cpp +++ b/src/libigl/igl/copyleft/cgal/order_facets_around_edge.cpp diff --git a/src/igl/copyleft/cgal/order_facets_around_edge.h b/src/libigl/igl/copyleft/cgal/order_facets_around_edge.h index 6e09129ac..6e09129ac 100644 --- a/src/igl/copyleft/cgal/order_facets_around_edge.h +++ b/src/libigl/igl/copyleft/cgal/order_facets_around_edge.h diff --git a/src/igl/copyleft/cgal/order_facets_around_edges.cpp b/src/libigl/igl/copyleft/cgal/order_facets_around_edges.cpp index 767d3e899..767d3e899 100644 --- a/src/igl/copyleft/cgal/order_facets_around_edges.cpp +++ b/src/libigl/igl/copyleft/cgal/order_facets_around_edges.cpp diff --git a/src/igl/copyleft/cgal/order_facets_around_edges.h b/src/libigl/igl/copyleft/cgal/order_facets_around_edges.h index 89ac2918e..89ac2918e 100644 --- a/src/igl/copyleft/cgal/order_facets_around_edges.h +++ b/src/libigl/igl/copyleft/cgal/order_facets_around_edges.h diff --git a/src/igl/copyleft/cgal/orient2D.cpp b/src/libigl/igl/copyleft/cgal/orient2D.cpp index ee5933bb4..ee5933bb4 100644 --- a/src/igl/copyleft/cgal/orient2D.cpp +++ b/src/libigl/igl/copyleft/cgal/orient2D.cpp diff --git a/src/igl/copyleft/cgal/orient2D.h b/src/libigl/igl/copyleft/cgal/orient2D.h index 0f2483dfd..0f2483dfd 100644 --- a/src/igl/copyleft/cgal/orient2D.h +++ b/src/libigl/igl/copyleft/cgal/orient2D.h diff --git a/src/igl/copyleft/cgal/orient3D.cpp b/src/libigl/igl/copyleft/cgal/orient3D.cpp index 3bdbfb80e..3bdbfb80e 100644 --- a/src/igl/copyleft/cgal/orient3D.cpp +++ b/src/libigl/igl/copyleft/cgal/orient3D.cpp diff --git a/src/igl/copyleft/cgal/orient3D.h b/src/libigl/igl/copyleft/cgal/orient3D.h index 029e208b1..029e208b1 100644 --- a/src/igl/copyleft/cgal/orient3D.h +++ b/src/libigl/igl/copyleft/cgal/orient3D.h diff --git a/src/igl/copyleft/cgal/outer_element.cpp b/src/libigl/igl/copyleft/cgal/outer_element.cpp index 2bef8cae1..2bef8cae1 100644 --- a/src/igl/copyleft/cgal/outer_element.cpp +++ b/src/libigl/igl/copyleft/cgal/outer_element.cpp diff --git a/src/igl/copyleft/cgal/outer_element.h b/src/libigl/igl/copyleft/cgal/outer_element.h index adaef3464..adaef3464 100644 --- a/src/igl/copyleft/cgal/outer_element.h +++ b/src/libigl/igl/copyleft/cgal/outer_element.h diff --git a/src/igl/copyleft/cgal/outer_facet.cpp b/src/libigl/igl/copyleft/cgal/outer_facet.cpp index 4525dd856..4525dd856 100644 --- a/src/igl/copyleft/cgal/outer_facet.cpp +++ b/src/libigl/igl/copyleft/cgal/outer_facet.cpp diff --git a/src/igl/copyleft/cgal/outer_facet.h b/src/libigl/igl/copyleft/cgal/outer_facet.h index b025a94ab..b025a94ab 100644 --- a/src/igl/copyleft/cgal/outer_facet.h +++ b/src/libigl/igl/copyleft/cgal/outer_facet.h diff --git a/src/igl/copyleft/cgal/outer_hull.cpp b/src/libigl/igl/copyleft/cgal/outer_hull.cpp index 71586f707..71586f707 100644 --- a/src/igl/copyleft/cgal/outer_hull.cpp +++ b/src/libigl/igl/copyleft/cgal/outer_hull.cpp diff --git a/src/igl/copyleft/cgal/outer_hull.h b/src/libigl/igl/copyleft/cgal/outer_hull.h index 191a8d492..191a8d492 100644 --- a/src/igl/copyleft/cgal/outer_hull.h +++ b/src/libigl/igl/copyleft/cgal/outer_hull.h diff --git a/src/igl/copyleft/cgal/peel_outer_hull_layers.cpp b/src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.cpp index 73ae07eea..73ae07eea 100644 --- a/src/igl/copyleft/cgal/peel_outer_hull_layers.cpp +++ b/src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.cpp diff --git a/src/igl/copyleft/cgal/peel_outer_hull_layers.h b/src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.h index ee2752b29..ee2752b29 100644 --- a/src/igl/copyleft/cgal/peel_outer_hull_layers.h +++ b/src/libigl/igl/copyleft/cgal/peel_outer_hull_layers.h diff --git a/src/igl/copyleft/cgal/peel_winding_number_layers.cpp b/src/libigl/igl/copyleft/cgal/peel_winding_number_layers.cpp index 2bb71a780..2bb71a780 100644 --- a/src/igl/copyleft/cgal/peel_winding_number_layers.cpp +++ b/src/libigl/igl/copyleft/cgal/peel_winding_number_layers.cpp diff --git a/src/igl/copyleft/cgal/peel_winding_number_layers.h b/src/libigl/igl/copyleft/cgal/peel_winding_number_layers.h index 644c361e3..644c361e3 100644 --- a/src/igl/copyleft/cgal/peel_winding_number_layers.h +++ b/src/libigl/igl/copyleft/cgal/peel_winding_number_layers.h diff --git a/src/igl/copyleft/cgal/piecewise_constant_winding_number.cpp b/src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.cpp index 0156edbe2..0156edbe2 100644 --- a/src/igl/copyleft/cgal/piecewise_constant_winding_number.cpp +++ b/src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.cpp diff --git a/src/igl/copyleft/cgal/piecewise_constant_winding_number.h b/src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.h index 2b93913b3..2b93913b3 100644 --- a/src/igl/copyleft/cgal/piecewise_constant_winding_number.h +++ b/src/libigl/igl/copyleft/cgal/piecewise_constant_winding_number.h diff --git a/src/igl/copyleft/cgal/point_areas.cpp b/src/libigl/igl/copyleft/cgal/point_areas.cpp index bb98bac3c..bb98bac3c 100644 --- a/src/igl/copyleft/cgal/point_areas.cpp +++ b/src/libigl/igl/copyleft/cgal/point_areas.cpp diff --git a/src/igl/copyleft/cgal/point_areas.h b/src/libigl/igl/copyleft/cgal/point_areas.h index ec0366488..ec0366488 100644 --- a/src/igl/copyleft/cgal/point_areas.h +++ b/src/libigl/igl/copyleft/cgal/point_areas.h diff --git a/src/igl/copyleft/cgal/point_mesh_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.cpp index 18b5706ae..18b5706ae 100644 --- a/src/igl/copyleft/cgal/point_mesh_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/point_mesh_squared_distance.h b/src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.h index b525bddda..b525bddda 100644 --- a/src/igl/copyleft/cgal/point_mesh_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/point_mesh_squared_distance.h diff --git a/src/igl/copyleft/cgal/point_segment_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/point_segment_squared_distance.cpp index 257206ae6..257206ae6 100644 --- a/src/igl/copyleft/cgal/point_segment_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/point_segment_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/point_segment_squared_distance.h b/src/libigl/igl/copyleft/cgal/point_segment_squared_distance.h index eac628b2a..eac628b2a 100644 --- a/src/igl/copyleft/cgal/point_segment_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/point_segment_squared_distance.h diff --git a/src/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp index 7aef2efd1..7aef2efd1 100644 --- a/src/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/point_solid_signed_squared_distance.h b/src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.h index 845fad133..845fad133 100644 --- a/src/igl/copyleft/cgal/point_solid_signed_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/point_solid_signed_squared_distance.h diff --git a/src/igl/copyleft/cgal/point_triangle_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.cpp index 2ea29bc37..2ea29bc37 100644 --- a/src/igl/copyleft/cgal/point_triangle_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/point_triangle_squared_distance.h b/src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.h index 37b63adcb..37b63adcb 100644 --- a/src/igl/copyleft/cgal/point_triangle_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/point_triangle_squared_distance.h diff --git a/src/igl/copyleft/cgal/points_inside_component.cpp b/src/libigl/igl/copyleft/cgal/points_inside_component.cpp index 1558e130d..1558e130d 100644 --- a/src/igl/copyleft/cgal/points_inside_component.cpp +++ b/src/libigl/igl/copyleft/cgal/points_inside_component.cpp diff --git a/src/igl/copyleft/cgal/points_inside_component.h b/src/libigl/igl/copyleft/cgal/points_inside_component.h index f21354455..f21354455 100644 --- a/src/igl/copyleft/cgal/points_inside_component.h +++ b/src/libigl/igl/copyleft/cgal/points_inside_component.h diff --git a/src/igl/copyleft/cgal/polyhedron_to_mesh.cpp b/src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.cpp index b51e41b60..b51e41b60 100644 --- a/src/igl/copyleft/cgal/polyhedron_to_mesh.cpp +++ b/src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.cpp diff --git a/src/igl/copyleft/cgal/polyhedron_to_mesh.h b/src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.h index 3f8c66a88..3f8c66a88 100644 --- a/src/igl/copyleft/cgal/polyhedron_to_mesh.h +++ b/src/libigl/igl/copyleft/cgal/polyhedron_to_mesh.h diff --git a/src/igl/copyleft/cgal/projected_cdt.cpp b/src/libigl/igl/copyleft/cgal/projected_cdt.cpp index f34352c66..f34352c66 100644 --- a/src/igl/copyleft/cgal/projected_cdt.cpp +++ b/src/libigl/igl/copyleft/cgal/projected_cdt.cpp diff --git a/src/igl/copyleft/cgal/projected_cdt.h b/src/libigl/igl/copyleft/cgal/projected_cdt.h index a161cc450..a161cc450 100644 --- a/src/igl/copyleft/cgal/projected_cdt.h +++ b/src/libigl/igl/copyleft/cgal/projected_cdt.h diff --git a/src/igl/copyleft/cgal/projected_delaunay.cpp b/src/libigl/igl/copyleft/cgal/projected_delaunay.cpp index 52ea49274..52ea49274 100644 --- a/src/igl/copyleft/cgal/projected_delaunay.cpp +++ b/src/libigl/igl/copyleft/cgal/projected_delaunay.cpp diff --git a/src/igl/copyleft/cgal/projected_delaunay.h b/src/libigl/igl/copyleft/cgal/projected_delaunay.h index ee72305cd..ee72305cd 100644 --- a/src/igl/copyleft/cgal/projected_delaunay.h +++ b/src/libigl/igl/copyleft/cgal/projected_delaunay.h diff --git a/src/igl/copyleft/cgal/propagate_winding_numbers.cpp b/src/libigl/igl/copyleft/cgal/propagate_winding_numbers.cpp index 7de9d98d2..7de9d98d2 100644 --- a/src/igl/copyleft/cgal/propagate_winding_numbers.cpp +++ b/src/libigl/igl/copyleft/cgal/propagate_winding_numbers.cpp diff --git a/src/igl/copyleft/cgal/propagate_winding_numbers.h b/src/libigl/igl/copyleft/cgal/propagate_winding_numbers.h index 77d8e7666..77d8e7666 100644 --- a/src/igl/copyleft/cgal/propagate_winding_numbers.h +++ b/src/libigl/igl/copyleft/cgal/propagate_winding_numbers.h diff --git a/src/igl/copyleft/cgal/read_triangle_mesh.cpp b/src/libigl/igl/copyleft/cgal/read_triangle_mesh.cpp index 24ebbb127..24ebbb127 100644 --- a/src/igl/copyleft/cgal/read_triangle_mesh.cpp +++ b/src/libigl/igl/copyleft/cgal/read_triangle_mesh.cpp diff --git a/src/igl/copyleft/cgal/read_triangle_mesh.h b/src/libigl/igl/copyleft/cgal/read_triangle_mesh.h index c1dae2a22..c1dae2a22 100644 --- a/src/igl/copyleft/cgal/read_triangle_mesh.h +++ b/src/libigl/igl/copyleft/cgal/read_triangle_mesh.h diff --git a/src/igl/copyleft/cgal/relabel_small_immersed_cells.cpp b/src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.cpp index 993e009ec..993e009ec 100644 --- a/src/igl/copyleft/cgal/relabel_small_immersed_cells.cpp +++ b/src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.cpp diff --git a/src/igl/copyleft/cgal/relabel_small_immersed_cells.h b/src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.h index a783914a3..a783914a3 100644 --- a/src/igl/copyleft/cgal/relabel_small_immersed_cells.h +++ b/src/libigl/igl/copyleft/cgal/relabel_small_immersed_cells.h diff --git a/src/igl/copyleft/cgal/remesh_intersections.cpp b/src/libigl/igl/copyleft/cgal/remesh_intersections.cpp index 56a715c23..56a715c23 100644 --- a/src/igl/copyleft/cgal/remesh_intersections.cpp +++ b/src/libigl/igl/copyleft/cgal/remesh_intersections.cpp diff --git a/src/igl/copyleft/cgal/remesh_intersections.h b/src/libigl/igl/copyleft/cgal/remesh_intersections.h index 2b6a44a57..2b6a44a57 100644 --- a/src/igl/copyleft/cgal/remesh_intersections.h +++ b/src/libigl/igl/copyleft/cgal/remesh_intersections.h diff --git a/src/igl/copyleft/cgal/remesh_self_intersections.cpp b/src/libigl/igl/copyleft/cgal/remesh_self_intersections.cpp index 871152b30..871152b30 100644 --- a/src/igl/copyleft/cgal/remesh_self_intersections.cpp +++ b/src/libigl/igl/copyleft/cgal/remesh_self_intersections.cpp diff --git a/src/igl/copyleft/cgal/remesh_self_intersections.h b/src/libigl/igl/copyleft/cgal/remesh_self_intersections.h index e8e8cc492..e8e8cc492 100644 --- a/src/igl/copyleft/cgal/remesh_self_intersections.h +++ b/src/libigl/igl/copyleft/cgal/remesh_self_intersections.h diff --git a/src/igl/copyleft/cgal/remove_unreferenced.cpp b/src/libigl/igl/copyleft/cgal/remove_unreferenced.cpp index 03c8864cb..03c8864cb 100644 --- a/src/igl/copyleft/cgal/remove_unreferenced.cpp +++ b/src/libigl/igl/copyleft/cgal/remove_unreferenced.cpp diff --git a/src/igl/copyleft/cgal/resolve_intersections.cpp b/src/libigl/igl/copyleft/cgal/resolve_intersections.cpp index 2252d87e1..2252d87e1 100644 --- a/src/igl/copyleft/cgal/resolve_intersections.cpp +++ b/src/libigl/igl/copyleft/cgal/resolve_intersections.cpp diff --git a/src/igl/copyleft/cgal/resolve_intersections.h b/src/libigl/igl/copyleft/cgal/resolve_intersections.h index 086ef1361..086ef1361 100644 --- a/src/igl/copyleft/cgal/resolve_intersections.h +++ b/src/libigl/igl/copyleft/cgal/resolve_intersections.h diff --git a/src/igl/copyleft/cgal/row_to_point.cpp b/src/libigl/igl/copyleft/cgal/row_to_point.cpp index 97a4b991e..97a4b991e 100644 --- a/src/igl/copyleft/cgal/row_to_point.cpp +++ b/src/libigl/igl/copyleft/cgal/row_to_point.cpp diff --git a/src/igl/copyleft/cgal/row_to_point.h b/src/libigl/igl/copyleft/cgal/row_to_point.h index 54e27ad4f..54e27ad4f 100644 --- a/src/igl/copyleft/cgal/row_to_point.h +++ b/src/libigl/igl/copyleft/cgal/row_to_point.h diff --git a/src/igl/copyleft/cgal/segment_segment_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.cpp index 1ca695995..1ca695995 100644 --- a/src/igl/copyleft/cgal/segment_segment_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/segment_segment_squared_distance.h b/src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.h index 5bfbfdcab..5bfbfdcab 100644 --- a/src/igl/copyleft/cgal/segment_segment_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/segment_segment_squared_distance.h diff --git a/src/igl/copyleft/cgal/signed_distance_isosurface.cpp b/src/libigl/igl/copyleft/cgal/signed_distance_isosurface.cpp index eeb6c03c5..eeb6c03c5 100644 --- a/src/igl/copyleft/cgal/signed_distance_isosurface.cpp +++ b/src/libigl/igl/copyleft/cgal/signed_distance_isosurface.cpp diff --git a/src/igl/copyleft/cgal/signed_distance_isosurface.h b/src/libigl/igl/copyleft/cgal/signed_distance_isosurface.h index 149ea5e3d..149ea5e3d 100644 --- a/src/igl/copyleft/cgal/signed_distance_isosurface.h +++ b/src/libigl/igl/copyleft/cgal/signed_distance_isosurface.h diff --git a/src/igl/copyleft/cgal/slice.cpp b/src/libigl/igl/copyleft/cgal/slice.cpp index 2e274a2f2..2e274a2f2 100644 --- a/src/igl/copyleft/cgal/slice.cpp +++ b/src/libigl/igl/copyleft/cgal/slice.cpp diff --git a/src/igl/copyleft/cgal/slice_mask.cpp b/src/libigl/igl/copyleft/cgal/slice_mask.cpp index ec920e0d1..ec920e0d1 100644 --- a/src/igl/copyleft/cgal/slice_mask.cpp +++ b/src/libigl/igl/copyleft/cgal/slice_mask.cpp diff --git a/src/igl/copyleft/cgal/snap_rounding.cpp b/src/libigl/igl/copyleft/cgal/snap_rounding.cpp index ccebfd1b8..ccebfd1b8 100644 --- a/src/igl/copyleft/cgal/snap_rounding.cpp +++ b/src/libigl/igl/copyleft/cgal/snap_rounding.cpp diff --git a/src/igl/copyleft/cgal/snap_rounding.h b/src/libigl/igl/copyleft/cgal/snap_rounding.h index 48d2757f1..48d2757f1 100644 --- a/src/igl/copyleft/cgal/snap_rounding.h +++ b/src/libigl/igl/copyleft/cgal/snap_rounding.h diff --git a/src/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp b/src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp index 8ff1a03c4..8ff1a03c4 100644 --- a/src/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp +++ b/src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.cpp diff --git a/src/igl/copyleft/cgal/string_to_mesh_boolean_type.h b/src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.h index 4781099f1..4781099f1 100644 --- a/src/igl/copyleft/cgal/string_to_mesh_boolean_type.h +++ b/src/libigl/igl/copyleft/cgal/string_to_mesh_boolean_type.h diff --git a/src/igl/copyleft/cgal/subdivide_segments.cpp b/src/libigl/igl/copyleft/cgal/subdivide_segments.cpp index 6cf7df93c..6cf7df93c 100644 --- a/src/igl/copyleft/cgal/subdivide_segments.cpp +++ b/src/libigl/igl/copyleft/cgal/subdivide_segments.cpp diff --git a/src/igl/copyleft/cgal/subdivide_segments.h b/src/libigl/igl/copyleft/cgal/subdivide_segments.h index cd7d41a00..cd7d41a00 100644 --- a/src/igl/copyleft/cgal/subdivide_segments.h +++ b/src/libigl/igl/copyleft/cgal/subdivide_segments.h diff --git a/src/igl/copyleft/cgal/submesh_aabb_tree.cpp b/src/libigl/igl/copyleft/cgal/submesh_aabb_tree.cpp index 4351ec0a9..4351ec0a9 100644 --- a/src/igl/copyleft/cgal/submesh_aabb_tree.cpp +++ b/src/libigl/igl/copyleft/cgal/submesh_aabb_tree.cpp diff --git a/src/igl/copyleft/cgal/submesh_aabb_tree.h b/src/libigl/igl/copyleft/cgal/submesh_aabb_tree.h index eec9c030f..eec9c030f 100644 --- a/src/igl/copyleft/cgal/submesh_aabb_tree.h +++ b/src/libigl/igl/copyleft/cgal/submesh_aabb_tree.h diff --git a/src/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp b/src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp index 0c512f800..0c512f800 100644 --- a/src/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp +++ b/src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.cpp diff --git a/src/igl/copyleft/cgal/triangle_triangle_squared_distance.h b/src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.h index 118023488..118023488 100644 --- a/src/igl/copyleft/cgal/triangle_triangle_squared_distance.h +++ b/src/libigl/igl/copyleft/cgal/triangle_triangle_squared_distance.h diff --git a/src/igl/copyleft/cgal/trim_with_solid.cpp b/src/libigl/igl/copyleft/cgal/trim_with_solid.cpp index 1e67da71e..1e67da71e 100644 --- a/src/igl/copyleft/cgal/trim_with_solid.cpp +++ b/src/libigl/igl/copyleft/cgal/trim_with_solid.cpp diff --git a/src/igl/copyleft/cgal/trim_with_solid.h b/src/libigl/igl/copyleft/cgal/trim_with_solid.h index aa45d80f7..aa45d80f7 100644 --- a/src/igl/copyleft/cgal/trim_with_solid.h +++ b/src/libigl/igl/copyleft/cgal/trim_with_solid.h diff --git a/src/igl/copyleft/cgal/unique.cpp b/src/libigl/igl/copyleft/cgal/unique.cpp index 5e45f82b1..5e45f82b1 100644 --- a/src/igl/copyleft/cgal/unique.cpp +++ b/src/libigl/igl/copyleft/cgal/unique.cpp diff --git a/src/igl/copyleft/cgal/unique_rows.cpp b/src/libigl/igl/copyleft/cgal/unique_rows.cpp index e4d946f77..e4d946f77 100644 --- a/src/igl/copyleft/cgal/unique_rows.cpp +++ b/src/libigl/igl/copyleft/cgal/unique_rows.cpp diff --git a/src/igl/copyleft/cgal/wire_mesh.cpp b/src/libigl/igl/copyleft/cgal/wire_mesh.cpp index 0e9609501..0e9609501 100644 --- a/src/igl/copyleft/cgal/wire_mesh.cpp +++ b/src/libigl/igl/copyleft/cgal/wire_mesh.cpp diff --git a/src/igl/copyleft/cgal/wire_mesh.h b/src/libigl/igl/copyleft/cgal/wire_mesh.h index 9b798e6fd..9b798e6fd 100644 --- a/src/igl/copyleft/cgal/wire_mesh.h +++ b/src/libigl/igl/copyleft/cgal/wire_mesh.h diff --git a/src/igl/copyleft/comiso/frame_field.cpp b/src/libigl/igl/copyleft/comiso/frame_field.cpp index c3549eeff..c3549eeff 100644 --- a/src/igl/copyleft/comiso/frame_field.cpp +++ b/src/libigl/igl/copyleft/comiso/frame_field.cpp diff --git a/src/igl/copyleft/comiso/frame_field.h b/src/libigl/igl/copyleft/comiso/frame_field.h index a43d464c7..a43d464c7 100644 --- a/src/igl/copyleft/comiso/frame_field.h +++ b/src/libigl/igl/copyleft/comiso/frame_field.h diff --git a/src/igl/copyleft/comiso/miq.cpp b/src/libigl/igl/copyleft/comiso/miq.cpp index ecf3d282b..ecf3d282b 100644 --- a/src/igl/copyleft/comiso/miq.cpp +++ b/src/libigl/igl/copyleft/comiso/miq.cpp diff --git a/src/igl/copyleft/comiso/miq.h b/src/libigl/igl/copyleft/comiso/miq.h index f4581f65d..f4581f65d 100644 --- a/src/igl/copyleft/comiso/miq.h +++ b/src/libigl/igl/copyleft/comiso/miq.h diff --git a/src/igl/copyleft/comiso/nrosy.cpp b/src/libigl/igl/copyleft/comiso/nrosy.cpp index 0f3ee86bc..0f3ee86bc 100644 --- a/src/igl/copyleft/comiso/nrosy.cpp +++ b/src/libigl/igl/copyleft/comiso/nrosy.cpp diff --git a/src/igl/copyleft/comiso/nrosy.h b/src/libigl/igl/copyleft/comiso/nrosy.h index 61c7f9558..61c7f9558 100644 --- a/src/igl/copyleft/comiso/nrosy.h +++ b/src/libigl/igl/copyleft/comiso/nrosy.h diff --git a/src/igl/copyleft/cork/from_cork_mesh.cpp b/src/libigl/igl/copyleft/cork/from_cork_mesh.cpp index 964263111..964263111 100644 --- a/src/igl/copyleft/cork/from_cork_mesh.cpp +++ b/src/libigl/igl/copyleft/cork/from_cork_mesh.cpp diff --git a/src/igl/copyleft/cork/from_cork_mesh.h b/src/libigl/igl/copyleft/cork/from_cork_mesh.h index a2fef28c1..a2fef28c1 100644 --- a/src/igl/copyleft/cork/from_cork_mesh.h +++ b/src/libigl/igl/copyleft/cork/from_cork_mesh.h diff --git a/src/igl/copyleft/cork/mesh_boolean.cpp b/src/libigl/igl/copyleft/cork/mesh_boolean.cpp index 61ed4a6ad..61ed4a6ad 100644 --- a/src/igl/copyleft/cork/mesh_boolean.cpp +++ b/src/libigl/igl/copyleft/cork/mesh_boolean.cpp diff --git a/src/igl/copyleft/cork/mesh_boolean.h b/src/libigl/igl/copyleft/cork/mesh_boolean.h index db2589284..db2589284 100644 --- a/src/igl/copyleft/cork/mesh_boolean.h +++ b/src/libigl/igl/copyleft/cork/mesh_boolean.h diff --git a/src/igl/copyleft/cork/to_cork_mesh.cpp b/src/libigl/igl/copyleft/cork/to_cork_mesh.cpp index 845f8cb67..845f8cb67 100644 --- a/src/igl/copyleft/cork/to_cork_mesh.cpp +++ b/src/libigl/igl/copyleft/cork/to_cork_mesh.cpp diff --git a/src/igl/copyleft/cork/to_cork_mesh.h b/src/libigl/igl/copyleft/cork/to_cork_mesh.h index b034e357f..b034e357f 100644 --- a/src/igl/copyleft/cork/to_cork_mesh.h +++ b/src/libigl/igl/copyleft/cork/to_cork_mesh.h diff --git a/src/igl/copyleft/marching_cubes.cpp b/src/libigl/igl/copyleft/marching_cubes.cpp index 144a02255..144a02255 100644 --- a/src/igl/copyleft/marching_cubes.cpp +++ b/src/libigl/igl/copyleft/marching_cubes.cpp diff --git a/src/igl/copyleft/marching_cubes.h b/src/libigl/igl/copyleft/marching_cubes.h index 4c9f888e4..4c9f888e4 100644 --- a/src/igl/copyleft/marching_cubes.h +++ b/src/libigl/igl/copyleft/marching_cubes.h diff --git a/src/igl/copyleft/marching_cubes_tables.h b/src/libigl/igl/copyleft/marching_cubes_tables.h index 4bba533c3..4bba533c3 100644 --- a/src/igl/copyleft/marching_cubes_tables.h +++ b/src/libigl/igl/copyleft/marching_cubes_tables.h diff --git a/src/igl/copyleft/offset_surface.cpp b/src/libigl/igl/copyleft/offset_surface.cpp index c9e90553f..c9e90553f 100644 --- a/src/igl/copyleft/offset_surface.cpp +++ b/src/libigl/igl/copyleft/offset_surface.cpp diff --git a/src/igl/copyleft/offset_surface.h b/src/libigl/igl/copyleft/offset_surface.h index 7c6307378..7c6307378 100644 --- a/src/igl/copyleft/offset_surface.h +++ b/src/libigl/igl/copyleft/offset_surface.h diff --git a/src/igl/copyleft/opengl2/render_to_tga.cpp b/src/libigl/igl/copyleft/opengl2/render_to_tga.cpp index 6d0f97ea1..6d0f97ea1 100644 --- a/src/igl/copyleft/opengl2/render_to_tga.cpp +++ b/src/libigl/igl/copyleft/opengl2/render_to_tga.cpp diff --git a/src/igl/copyleft/opengl2/render_to_tga.h b/src/libigl/igl/copyleft/opengl2/render_to_tga.h index d792c1e31..d792c1e31 100644 --- a/src/igl/copyleft/opengl2/render_to_tga.h +++ b/src/libigl/igl/copyleft/opengl2/render_to_tga.h diff --git a/src/igl/copyleft/opengl2/texture_from_tga.cpp b/src/libigl/igl/copyleft/opengl2/texture_from_tga.cpp index 717a6734c..717a6734c 100644 --- a/src/igl/copyleft/opengl2/texture_from_tga.cpp +++ b/src/libigl/igl/copyleft/opengl2/texture_from_tga.cpp diff --git a/src/igl/copyleft/opengl2/texture_from_tga.h b/src/libigl/igl/copyleft/opengl2/texture_from_tga.h index 8a5f704c7..8a5f704c7 100644 --- a/src/igl/copyleft/opengl2/texture_from_tga.h +++ b/src/libigl/igl/copyleft/opengl2/texture_from_tga.h diff --git a/src/igl/copyleft/opengl2/tga.cpp b/src/libigl/igl/copyleft/opengl2/tga.cpp index 2f1f99022..2f1f99022 100644 --- a/src/igl/copyleft/opengl2/tga.cpp +++ b/src/libigl/igl/copyleft/opengl2/tga.cpp diff --git a/src/igl/copyleft/opengl2/tga.h b/src/libigl/igl/copyleft/opengl2/tga.h index b69f35496..b69f35496 100644 --- a/src/igl/copyleft/opengl2/tga.h +++ b/src/libigl/igl/copyleft/opengl2/tga.h diff --git a/src/igl/copyleft/progressive_hulls.cpp b/src/libigl/igl/copyleft/progressive_hulls.cpp index 44738c8b2..44738c8b2 100644 --- a/src/igl/copyleft/progressive_hulls.cpp +++ b/src/libigl/igl/copyleft/progressive_hulls.cpp diff --git a/src/igl/copyleft/progressive_hulls.h b/src/libigl/igl/copyleft/progressive_hulls.h index 54e0580a0..54e0580a0 100644 --- a/src/igl/copyleft/progressive_hulls.h +++ b/src/libigl/igl/copyleft/progressive_hulls.h diff --git a/src/igl/copyleft/progressive_hulls_cost_and_placement.cpp b/src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.cpp index c9ab79ced..c9ab79ced 100644 --- a/src/igl/copyleft/progressive_hulls_cost_and_placement.cpp +++ b/src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.cpp diff --git a/src/igl/copyleft/progressive_hulls_cost_and_placement.h b/src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.h index bbe4875d8..bbe4875d8 100644 --- a/src/igl/copyleft/progressive_hulls_cost_and_placement.h +++ b/src/libigl/igl/copyleft/progressive_hulls_cost_and_placement.h diff --git a/src/igl/copyleft/quadprog.cpp b/src/libigl/igl/copyleft/quadprog.cpp index 4c565a0c3..4c565a0c3 100644 --- a/src/igl/copyleft/quadprog.cpp +++ b/src/libigl/igl/copyleft/quadprog.cpp diff --git a/src/igl/copyleft/quadprog.h b/src/libigl/igl/copyleft/quadprog.h index f054bbdba..f054bbdba 100644 --- a/src/igl/copyleft/quadprog.h +++ b/src/libigl/igl/copyleft/quadprog.h diff --git a/src/igl/copyleft/swept_volume.cpp b/src/libigl/igl/copyleft/swept_volume.cpp index f21e3aba5..f21e3aba5 100644 --- a/src/igl/copyleft/swept_volume.cpp +++ b/src/libigl/igl/copyleft/swept_volume.cpp diff --git a/src/igl/copyleft/swept_volume.h b/src/libigl/igl/copyleft/swept_volume.h index cc178f78a..cc178f78a 100644 --- a/src/igl/copyleft/swept_volume.h +++ b/src/libigl/igl/copyleft/swept_volume.h diff --git a/src/igl/copyleft/tetgen/README b/src/libigl/igl/copyleft/tetgen/README index 0315b6c11..0315b6c11 100644 --- a/src/igl/copyleft/tetgen/README +++ b/src/libigl/igl/copyleft/tetgen/README diff --git a/src/igl/copyleft/tetgen/cdt.cpp b/src/libigl/igl/copyleft/tetgen/cdt.cpp index f2602dd66..f2602dd66 100644 --- a/src/igl/copyleft/tetgen/cdt.cpp +++ b/src/libigl/igl/copyleft/tetgen/cdt.cpp diff --git a/src/igl/copyleft/tetgen/cdt.h b/src/libigl/igl/copyleft/tetgen/cdt.h index e59a28029..e59a28029 100644 --- a/src/igl/copyleft/tetgen/cdt.h +++ b/src/libigl/igl/copyleft/tetgen/cdt.h diff --git a/src/igl/copyleft/tetgen/mesh_to_tetgenio.cpp b/src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.cpp index 78eaebb5c..78eaebb5c 100644 --- a/src/igl/copyleft/tetgen/mesh_to_tetgenio.cpp +++ b/src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.cpp diff --git a/src/igl/copyleft/tetgen/mesh_to_tetgenio.h b/src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.h index 3295294fe..3295294fe 100644 --- a/src/igl/copyleft/tetgen/mesh_to_tetgenio.h +++ b/src/libigl/igl/copyleft/tetgen/mesh_to_tetgenio.h diff --git a/src/igl/copyleft/tetgen/mesh_with_skeleton.cpp b/src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.cpp index 5c920b36d..5c920b36d 100644 --- a/src/igl/copyleft/tetgen/mesh_with_skeleton.cpp +++ b/src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.cpp diff --git a/src/igl/copyleft/tetgen/mesh_with_skeleton.h b/src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.h index a01bedffb..a01bedffb 100644 --- a/src/igl/copyleft/tetgen/mesh_with_skeleton.h +++ b/src/libigl/igl/copyleft/tetgen/mesh_with_skeleton.h diff --git a/src/igl/copyleft/tetgen/read_into_tetgenio.cpp b/src/libigl/igl/copyleft/tetgen/read_into_tetgenio.cpp index 506c5e4ba..506c5e4ba 100644 --- a/src/igl/copyleft/tetgen/read_into_tetgenio.cpp +++ b/src/libigl/igl/copyleft/tetgen/read_into_tetgenio.cpp diff --git a/src/igl/copyleft/tetgen/read_into_tetgenio.h b/src/libigl/igl/copyleft/tetgen/read_into_tetgenio.h index dd4b4b998..dd4b4b998 100644 --- a/src/igl/copyleft/tetgen/read_into_tetgenio.h +++ b/src/libigl/igl/copyleft/tetgen/read_into_tetgenio.h diff --git a/src/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp b/src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp index d61153053..d61153053 100644 --- a/src/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp +++ b/src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.cpp diff --git a/src/igl/copyleft/tetgen/tetgenio_to_tetmesh.h b/src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.h index 2a5575886..2a5575886 100644 --- a/src/igl/copyleft/tetgen/tetgenio_to_tetmesh.h +++ b/src/libigl/igl/copyleft/tetgen/tetgenio_to_tetmesh.h diff --git a/src/igl/copyleft/tetgen/tetrahedralize.cpp b/src/libigl/igl/copyleft/tetgen/tetrahedralize.cpp index fa6111410..fa6111410 100644 --- a/src/igl/copyleft/tetgen/tetrahedralize.cpp +++ b/src/libigl/igl/copyleft/tetgen/tetrahedralize.cpp diff --git a/src/igl/copyleft/tetgen/tetrahedralize.h b/src/libigl/igl/copyleft/tetgen/tetrahedralize.h index 170a3f985..170a3f985 100644 --- a/src/igl/copyleft/tetgen/tetrahedralize.h +++ b/src/libigl/igl/copyleft/tetgen/tetrahedralize.h diff --git a/src/igl/cotmatrix.cpp b/src/libigl/igl/cotmatrix.cpp index b1fd658ac..b1fd658ac 100644 --- a/src/igl/cotmatrix.cpp +++ b/src/libigl/igl/cotmatrix.cpp diff --git a/src/igl/cotmatrix.h b/src/libigl/igl/cotmatrix.h index bb8232f5a..bb8232f5a 100644 --- a/src/igl/cotmatrix.h +++ b/src/libigl/igl/cotmatrix.h diff --git a/src/igl/cotmatrix_entries.cpp b/src/libigl/igl/cotmatrix_entries.cpp index 6f7dfbbd3..6f7dfbbd3 100644 --- a/src/igl/cotmatrix_entries.cpp +++ b/src/libigl/igl/cotmatrix_entries.cpp diff --git a/src/igl/cotmatrix_entries.h b/src/libigl/igl/cotmatrix_entries.h index 6368c02e8..6368c02e8 100644 --- a/src/igl/cotmatrix_entries.h +++ b/src/libigl/igl/cotmatrix_entries.h diff --git a/src/igl/count.cpp b/src/libigl/igl/count.cpp index bdde79ca7..bdde79ca7 100644 --- a/src/igl/count.cpp +++ b/src/libigl/igl/count.cpp diff --git a/src/igl/count.h b/src/libigl/igl/count.h index 61aeb94e8..61aeb94e8 100644 --- a/src/igl/count.h +++ b/src/libigl/igl/count.h diff --git a/src/igl/covariance_scatter_matrix.cpp b/src/libigl/igl/covariance_scatter_matrix.cpp index 24fe9f760..24fe9f760 100644 --- a/src/igl/covariance_scatter_matrix.cpp +++ b/src/libigl/igl/covariance_scatter_matrix.cpp diff --git a/src/igl/covariance_scatter_matrix.h b/src/libigl/igl/covariance_scatter_matrix.h index e70c77ab1..e70c77ab1 100644 --- a/src/igl/covariance_scatter_matrix.h +++ b/src/libigl/igl/covariance_scatter_matrix.h diff --git a/src/igl/cross.cpp b/src/libigl/igl/cross.cpp index 04ee5340b..04ee5340b 100644 --- a/src/igl/cross.cpp +++ b/src/libigl/igl/cross.cpp diff --git a/src/igl/cross.h b/src/libigl/igl/cross.h index cfbe563ed..cfbe563ed 100644 --- a/src/igl/cross.h +++ b/src/libigl/igl/cross.h diff --git a/src/igl/cross_field_missmatch.cpp b/src/libigl/igl/cross_field_missmatch.cpp index 7d3caf0a8..7d3caf0a8 100644 --- a/src/igl/cross_field_missmatch.cpp +++ b/src/libigl/igl/cross_field_missmatch.cpp diff --git a/src/igl/cross_field_missmatch.h b/src/libigl/igl/cross_field_missmatch.h index 9d7a7599d..9d7a7599d 100644 --- a/src/igl/cross_field_missmatch.h +++ b/src/libigl/igl/cross_field_missmatch.h diff --git a/src/igl/crouzeix_raviart_cotmatrix.cpp b/src/libigl/igl/crouzeix_raviart_cotmatrix.cpp index 2fc5f6d4a..2fc5f6d4a 100644 --- a/src/igl/crouzeix_raviart_cotmatrix.cpp +++ b/src/libigl/igl/crouzeix_raviart_cotmatrix.cpp diff --git a/src/igl/crouzeix_raviart_cotmatrix.h b/src/libigl/igl/crouzeix_raviart_cotmatrix.h index 1504ddad0..1504ddad0 100644 --- a/src/igl/crouzeix_raviart_cotmatrix.h +++ b/src/libigl/igl/crouzeix_raviart_cotmatrix.h diff --git a/src/igl/crouzeix_raviart_massmatrix.cpp b/src/libigl/igl/crouzeix_raviart_massmatrix.cpp index 0873712d5..0873712d5 100644 --- a/src/igl/crouzeix_raviart_massmatrix.cpp +++ b/src/libigl/igl/crouzeix_raviart_massmatrix.cpp diff --git a/src/igl/crouzeix_raviart_massmatrix.h b/src/libigl/igl/crouzeix_raviart_massmatrix.h index 256aa2067..256aa2067 100644 --- a/src/igl/crouzeix_raviart_massmatrix.h +++ b/src/libigl/igl/crouzeix_raviart_massmatrix.h diff --git a/src/igl/cumsum.cpp b/src/libigl/igl/cumsum.cpp index 38eb4edd3..38eb4edd3 100644 --- a/src/igl/cumsum.cpp +++ b/src/libigl/igl/cumsum.cpp diff --git a/src/igl/cumsum.h b/src/libigl/igl/cumsum.h index c3fa59258..c3fa59258 100644 --- a/src/igl/cumsum.h +++ b/src/libigl/igl/cumsum.h diff --git a/src/igl/cut_mesh.cpp b/src/libigl/igl/cut_mesh.cpp index 33a25ce93..33a25ce93 100644 --- a/src/igl/cut_mesh.cpp +++ b/src/libigl/igl/cut_mesh.cpp diff --git a/src/igl/cut_mesh.h b/src/libigl/igl/cut_mesh.h index e49a3e38b..e49a3e38b 100644 --- a/src/igl/cut_mesh.h +++ b/src/libigl/igl/cut_mesh.h diff --git a/src/igl/cut_mesh_from_singularities.cpp b/src/libigl/igl/cut_mesh_from_singularities.cpp index 382f2e063..382f2e063 100644 --- a/src/igl/cut_mesh_from_singularities.cpp +++ b/src/libigl/igl/cut_mesh_from_singularities.cpp diff --git a/src/igl/cut_mesh_from_singularities.h b/src/libigl/igl/cut_mesh_from_singularities.h index 13b6a98c4..13b6a98c4 100644 --- a/src/igl/cut_mesh_from_singularities.h +++ b/src/libigl/igl/cut_mesh_from_singularities.h diff --git a/src/igl/cylinder.cpp b/src/libigl/igl/cylinder.cpp index ab0fd4d3d..ab0fd4d3d 100644 --- a/src/igl/cylinder.cpp +++ b/src/libigl/igl/cylinder.cpp diff --git a/src/igl/cylinder.h b/src/libigl/igl/cylinder.h index 4c5ab7e22..4c5ab7e22 100644 --- a/src/igl/cylinder.h +++ b/src/libigl/igl/cylinder.h diff --git a/src/igl/dated_copy.cpp b/src/libigl/igl/dated_copy.cpp index 735de6fc4..735de6fc4 100644 --- a/src/igl/dated_copy.cpp +++ b/src/libigl/igl/dated_copy.cpp diff --git a/src/igl/dated_copy.h b/src/libigl/igl/dated_copy.h index 9fd9fd3c8..9fd9fd3c8 100644 --- a/src/igl/dated_copy.h +++ b/src/libigl/igl/dated_copy.h diff --git a/src/igl/decimate.cpp b/src/libigl/igl/decimate.cpp index a531db2c5..a531db2c5 100644 --- a/src/igl/decimate.cpp +++ b/src/libigl/igl/decimate.cpp diff --git a/src/igl/decimate.h b/src/libigl/igl/decimate.h index bdb19e81b..bdb19e81b 100644 --- a/src/igl/decimate.h +++ b/src/libigl/igl/decimate.h diff --git a/src/igl/deform_skeleton.cpp b/src/libigl/igl/deform_skeleton.cpp index b9d120edd..b9d120edd 100644 --- a/src/igl/deform_skeleton.cpp +++ b/src/libigl/igl/deform_skeleton.cpp diff --git a/src/igl/deform_skeleton.h b/src/libigl/igl/deform_skeleton.h index 340107b2f..340107b2f 100644 --- a/src/igl/deform_skeleton.h +++ b/src/libigl/igl/deform_skeleton.h diff --git a/src/igl/delaunay_triangulation.cpp b/src/libigl/igl/delaunay_triangulation.cpp index 01669966b..01669966b 100644 --- a/src/igl/delaunay_triangulation.cpp +++ b/src/libigl/igl/delaunay_triangulation.cpp diff --git a/src/igl/delaunay_triangulation.h b/src/libigl/igl/delaunay_triangulation.h index daeec9fad..daeec9fad 100644 --- a/src/igl/delaunay_triangulation.h +++ b/src/libigl/igl/delaunay_triangulation.h diff --git a/src/igl/deprecated.h b/src/libigl/igl/deprecated.h index 52c72ba79..52c72ba79 100644 --- a/src/igl/deprecated.h +++ b/src/libigl/igl/deprecated.h diff --git a/src/igl/dfs.cpp b/src/libigl/igl/dfs.cpp index 627fbc26d..627fbc26d 100644 --- a/src/igl/dfs.cpp +++ b/src/libigl/igl/dfs.cpp diff --git a/src/igl/dfs.h b/src/libigl/igl/dfs.h index 5f3bf2ce6..5f3bf2ce6 100644 --- a/src/igl/dfs.h +++ b/src/libigl/igl/dfs.h diff --git a/src/igl/diag.cpp b/src/libigl/igl/diag.cpp index d29382695..d29382695 100644 --- a/src/igl/diag.cpp +++ b/src/libigl/igl/diag.cpp diff --git a/src/igl/diag.h b/src/libigl/igl/diag.h index 8001f01b6..8001f01b6 100644 --- a/src/igl/diag.h +++ b/src/libigl/igl/diag.h diff --git a/src/igl/dihedral_angles.cpp b/src/libigl/igl/dihedral_angles.cpp index a04e6f840..a04e6f840 100644 --- a/src/igl/dihedral_angles.cpp +++ b/src/libigl/igl/dihedral_angles.cpp diff --git a/src/igl/dihedral_angles.h b/src/libigl/igl/dihedral_angles.h index 92ac0f862..92ac0f862 100644 --- a/src/igl/dihedral_angles.h +++ b/src/libigl/igl/dihedral_angles.h diff --git a/src/igl/dijkstra.cpp b/src/libigl/igl/dijkstra.cpp index ad92f1d7f..ad92f1d7f 100644 --- a/src/igl/dijkstra.cpp +++ b/src/libigl/igl/dijkstra.cpp diff --git a/src/igl/dijkstra.h b/src/libigl/igl/dijkstra.h index 33af160bb..33af160bb 100644 --- a/src/igl/dijkstra.h +++ b/src/libigl/igl/dijkstra.h diff --git a/src/igl/directed_edge_orientations.cpp b/src/libigl/igl/directed_edge_orientations.cpp index a3308bc98..a3308bc98 100644 --- a/src/igl/directed_edge_orientations.cpp +++ b/src/libigl/igl/directed_edge_orientations.cpp diff --git a/src/igl/directed_edge_orientations.h b/src/libigl/igl/directed_edge_orientations.h index b6f047147..b6f047147 100644 --- a/src/igl/directed_edge_orientations.h +++ b/src/libigl/igl/directed_edge_orientations.h diff --git a/src/igl/directed_edge_parents.cpp b/src/libigl/igl/directed_edge_parents.cpp index 52e6a41a4..52e6a41a4 100644 --- a/src/igl/directed_edge_parents.cpp +++ b/src/libigl/igl/directed_edge_parents.cpp diff --git a/src/igl/directed_edge_parents.h b/src/libigl/igl/directed_edge_parents.h index bf42ab8f8..bf42ab8f8 100644 --- a/src/igl/directed_edge_parents.h +++ b/src/libigl/igl/directed_edge_parents.h diff --git a/src/igl/dirname.cpp b/src/libigl/igl/dirname.cpp index 5dc49733a..5dc49733a 100644 --- a/src/igl/dirname.cpp +++ b/src/libigl/igl/dirname.cpp diff --git a/src/igl/dirname.h b/src/libigl/igl/dirname.h index bf5a34a20..bf5a34a20 100644 --- a/src/igl/dirname.h +++ b/src/libigl/igl/dirname.h diff --git a/src/igl/dot.cpp b/src/libigl/igl/dot.cpp index 38f191546..38f191546 100644 --- a/src/igl/dot.cpp +++ b/src/libigl/igl/dot.cpp diff --git a/src/igl/dot.h b/src/libigl/igl/dot.h index 9494eac7b..9494eac7b 100644 --- a/src/igl/dot.h +++ b/src/libigl/igl/dot.h diff --git a/src/igl/dot_row.cpp b/src/libigl/igl/dot_row.cpp index 6f6d57e06..6f6d57e06 100644 --- a/src/igl/dot_row.cpp +++ b/src/libigl/igl/dot_row.cpp diff --git a/src/igl/dot_row.h b/src/libigl/igl/dot_row.h index 83d91aada..83d91aada 100644 --- a/src/igl/dot_row.h +++ b/src/libigl/igl/dot_row.h diff --git a/src/igl/doublearea.cpp b/src/libigl/igl/doublearea.cpp index 3cfc41b86..3cfc41b86 100644 --- a/src/igl/doublearea.cpp +++ b/src/libigl/igl/doublearea.cpp diff --git a/src/igl/doublearea.h b/src/libigl/igl/doublearea.h index 95c151508..95c151508 100644 --- a/src/igl/doublearea.h +++ b/src/libigl/igl/doublearea.h diff --git a/src/igl/dqs.cpp b/src/libigl/igl/dqs.cpp index aab3c6532..aab3c6532 100644 --- a/src/igl/dqs.cpp +++ b/src/libigl/igl/dqs.cpp diff --git a/src/igl/dqs.h b/src/libigl/igl/dqs.h index 9b53ae1c7..9b53ae1c7 100644 --- a/src/igl/dqs.h +++ b/src/libigl/igl/dqs.h diff --git a/src/igl/ears.cpp b/src/libigl/igl/ears.cpp index 81576c321..81576c321 100644 --- a/src/igl/ears.cpp +++ b/src/libigl/igl/ears.cpp diff --git a/src/igl/ears.h b/src/libigl/igl/ears.h index b7c51ec66..b7c51ec66 100644 --- a/src/igl/ears.h +++ b/src/libigl/igl/ears.h diff --git a/src/igl/edge_collapse_is_valid.cpp b/src/libigl/igl/edge_collapse_is_valid.cpp index 0c613b7a3..0c613b7a3 100644 --- a/src/igl/edge_collapse_is_valid.cpp +++ b/src/libigl/igl/edge_collapse_is_valid.cpp diff --git a/src/igl/edge_collapse_is_valid.h b/src/libigl/igl/edge_collapse_is_valid.h index 194aaad6c..194aaad6c 100644 --- a/src/igl/edge_collapse_is_valid.h +++ b/src/libigl/igl/edge_collapse_is_valid.h diff --git a/src/igl/edge_flaps.cpp b/src/libigl/igl/edge_flaps.cpp index 88c515864..88c515864 100644 --- a/src/igl/edge_flaps.cpp +++ b/src/libigl/igl/edge_flaps.cpp diff --git a/src/igl/edge_flaps.h b/src/libigl/igl/edge_flaps.h index 03ad6eb3d..03ad6eb3d 100644 --- a/src/igl/edge_flaps.h +++ b/src/libigl/igl/edge_flaps.h diff --git a/src/igl/edge_lengths.cpp b/src/libigl/igl/edge_lengths.cpp index 02dbae768..02dbae768 100644 --- a/src/igl/edge_lengths.cpp +++ b/src/libigl/igl/edge_lengths.cpp diff --git a/src/igl/edge_lengths.h b/src/libigl/igl/edge_lengths.h index 30dc3474b..30dc3474b 100644 --- a/src/igl/edge_lengths.h +++ b/src/libigl/igl/edge_lengths.h diff --git a/src/igl/edge_topology.cpp b/src/libigl/igl/edge_topology.cpp index 78147d056..78147d056 100644 --- a/src/igl/edge_topology.cpp +++ b/src/libigl/igl/edge_topology.cpp diff --git a/src/igl/edge_topology.h b/src/libigl/igl/edge_topology.h index b7a41c597..b7a41c597 100644 --- a/src/igl/edge_topology.h +++ b/src/libigl/igl/edge_topology.h diff --git a/src/igl/edges.cpp b/src/libigl/igl/edges.cpp index 3d762d410..3d762d410 100644 --- a/src/igl/edges.cpp +++ b/src/libigl/igl/edges.cpp diff --git a/src/igl/edges.h b/src/libigl/igl/edges.h index fa3405263..fa3405263 100644 --- a/src/igl/edges.h +++ b/src/libigl/igl/edges.h diff --git a/src/igl/edges_to_path.cpp b/src/libigl/igl/edges_to_path.cpp index 14cd895bc..14cd895bc 100644 --- a/src/igl/edges_to_path.cpp +++ b/src/libigl/igl/edges_to_path.cpp diff --git a/src/igl/edges_to_path.h b/src/libigl/igl/edges_to_path.h index 403e7029a..403e7029a 100644 --- a/src/igl/edges_to_path.h +++ b/src/libigl/igl/edges_to_path.h diff --git a/src/igl/eigs.cpp b/src/libigl/igl/eigs.cpp index 1fd440ddd..1fd440ddd 100755 --- a/src/igl/eigs.cpp +++ b/src/libigl/igl/eigs.cpp diff --git a/src/igl/eigs.h b/src/libigl/igl/eigs.h index 3b376379c..3b376379c 100644 --- a/src/igl/eigs.h +++ b/src/libigl/igl/eigs.h diff --git a/src/igl/embree/EmbreeIntersector.h b/src/libigl/igl/embree/EmbreeIntersector.h index ec59c0a1a..ec59c0a1a 100644 --- a/src/igl/embree/EmbreeIntersector.h +++ b/src/libigl/igl/embree/EmbreeIntersector.h diff --git a/src/igl/embree/Embree_convenience.h b/src/libigl/igl/embree/Embree_convenience.h index d654fb786..d654fb786 100644 --- a/src/igl/embree/Embree_convenience.h +++ b/src/libigl/igl/embree/Embree_convenience.h diff --git a/src/igl/embree/ambient_occlusion.cpp b/src/libigl/igl/embree/ambient_occlusion.cpp index d19aa9c46..d19aa9c46 100644 --- a/src/igl/embree/ambient_occlusion.cpp +++ b/src/libigl/igl/embree/ambient_occlusion.cpp diff --git a/src/igl/embree/ambient_occlusion.h b/src/libigl/igl/embree/ambient_occlusion.h index 6df3a53ee..6df3a53ee 100644 --- a/src/igl/embree/ambient_occlusion.h +++ b/src/libigl/igl/embree/ambient_occlusion.h diff --git a/src/igl/embree/bone_heat.cpp b/src/libigl/igl/embree/bone_heat.cpp index 8a85af98c..8a85af98c 100644 --- a/src/igl/embree/bone_heat.cpp +++ b/src/libigl/igl/embree/bone_heat.cpp diff --git a/src/igl/embree/bone_heat.h b/src/libigl/igl/embree/bone_heat.h index 97c6500eb..97c6500eb 100644 --- a/src/igl/embree/bone_heat.h +++ b/src/libigl/igl/embree/bone_heat.h diff --git a/src/igl/embree/bone_visible.cpp b/src/libigl/igl/embree/bone_visible.cpp index 4f2fe9126..4f2fe9126 100644 --- a/src/igl/embree/bone_visible.cpp +++ b/src/libigl/igl/embree/bone_visible.cpp diff --git a/src/igl/embree/bone_visible.h b/src/libigl/igl/embree/bone_visible.h index 1e490b51d..1e490b51d 100644 --- a/src/igl/embree/bone_visible.h +++ b/src/libigl/igl/embree/bone_visible.h diff --git a/src/igl/embree/embree2/rtcore.h b/src/libigl/igl/embree/embree2/rtcore.h index fb24757a9..fb24757a9 100644 --- a/src/igl/embree/embree2/rtcore.h +++ b/src/libigl/igl/embree/embree2/rtcore.h diff --git a/src/igl/embree/embree2/rtcore.isph b/src/libigl/igl/embree/embree2/rtcore.isph index f46f05252..f46f05252 100644 --- a/src/igl/embree/embree2/rtcore.isph +++ b/src/libigl/igl/embree/embree2/rtcore.isph diff --git a/src/igl/embree/embree2/rtcore_geometry.h b/src/libigl/igl/embree/embree2/rtcore_geometry.h index 5b80130fc..5b80130fc 100644 --- a/src/igl/embree/embree2/rtcore_geometry.h +++ b/src/libigl/igl/embree/embree2/rtcore_geometry.h diff --git a/src/igl/embree/embree2/rtcore_geometry.isph b/src/libigl/igl/embree/embree2/rtcore_geometry.isph index b2fa68cfc..b2fa68cfc 100644 --- a/src/igl/embree/embree2/rtcore_geometry.isph +++ b/src/libigl/igl/embree/embree2/rtcore_geometry.isph diff --git a/src/igl/embree/embree2/rtcore_geometry_user.h b/src/libigl/igl/embree/embree2/rtcore_geometry_user.h index e4b4d4b8a..e4b4d4b8a 100644 --- a/src/igl/embree/embree2/rtcore_geometry_user.h +++ b/src/libigl/igl/embree/embree2/rtcore_geometry_user.h diff --git a/src/igl/embree/embree2/rtcore_geometry_user.isph b/src/libigl/igl/embree/embree2/rtcore_geometry_user.isph index d89ec1b91..d89ec1b91 100644 --- a/src/igl/embree/embree2/rtcore_geometry_user.isph +++ b/src/libigl/igl/embree/embree2/rtcore_geometry_user.isph diff --git a/src/igl/embree/embree2/rtcore_ray.h b/src/libigl/igl/embree/embree2/rtcore_ray.h index f20b11b5f..f20b11b5f 100644 --- a/src/igl/embree/embree2/rtcore_ray.h +++ b/src/libigl/igl/embree/embree2/rtcore_ray.h diff --git a/src/igl/embree/embree2/rtcore_ray.isph b/src/libigl/igl/embree/embree2/rtcore_ray.isph index f1bf4d268..f1bf4d268 100644 --- a/src/igl/embree/embree2/rtcore_ray.isph +++ b/src/libigl/igl/embree/embree2/rtcore_ray.isph diff --git a/src/igl/embree/embree2/rtcore_scene.h b/src/libigl/igl/embree/embree2/rtcore_scene.h index df04e0a2b..df04e0a2b 100644 --- a/src/igl/embree/embree2/rtcore_scene.h +++ b/src/libigl/igl/embree/embree2/rtcore_scene.h diff --git a/src/igl/embree/embree2/rtcore_scene.isph b/src/libigl/igl/embree/embree2/rtcore_scene.isph index a85eee219..a85eee219 100644 --- a/src/igl/embree/embree2/rtcore_scene.isph +++ b/src/libigl/igl/embree/embree2/rtcore_scene.isph diff --git a/src/igl/embree/line_mesh_intersection.cpp b/src/libigl/igl/embree/line_mesh_intersection.cpp index 0f6e02b8c..0f6e02b8c 100644 --- a/src/igl/embree/line_mesh_intersection.cpp +++ b/src/libigl/igl/embree/line_mesh_intersection.cpp diff --git a/src/igl/embree/line_mesh_intersection.h b/src/libigl/igl/embree/line_mesh_intersection.h index b7b849c8a..b7b849c8a 100644 --- a/src/igl/embree/line_mesh_intersection.h +++ b/src/libigl/igl/embree/line_mesh_intersection.h diff --git a/src/igl/embree/reorient_facets_raycast.cpp b/src/libigl/igl/embree/reorient_facets_raycast.cpp index fabc021d9..fabc021d9 100644 --- a/src/igl/embree/reorient_facets_raycast.cpp +++ b/src/libigl/igl/embree/reorient_facets_raycast.cpp diff --git a/src/igl/embree/reorient_facets_raycast.h b/src/libigl/igl/embree/reorient_facets_raycast.h index a43efac94..a43efac94 100644 --- a/src/igl/embree/reorient_facets_raycast.h +++ b/src/libigl/igl/embree/reorient_facets_raycast.h diff --git a/src/igl/embree/shape_diameter_function.cpp b/src/libigl/igl/embree/shape_diameter_function.cpp index 3b0be489e..3b0be489e 100644 --- a/src/igl/embree/shape_diameter_function.cpp +++ b/src/libigl/igl/embree/shape_diameter_function.cpp diff --git a/src/igl/embree/shape_diameter_function.h b/src/libigl/igl/embree/shape_diameter_function.h index c18922d28..c18922d28 100644 --- a/src/igl/embree/shape_diameter_function.h +++ b/src/libigl/igl/embree/shape_diameter_function.h diff --git a/src/igl/embree/unproject_in_mesh.cpp b/src/libigl/igl/embree/unproject_in_mesh.cpp index 79a24a0ab..79a24a0ab 100644 --- a/src/igl/embree/unproject_in_mesh.cpp +++ b/src/libigl/igl/embree/unproject_in_mesh.cpp diff --git a/src/igl/embree/unproject_in_mesh.h b/src/libigl/igl/embree/unproject_in_mesh.h index 707c1e625..707c1e625 100644 --- a/src/igl/embree/unproject_in_mesh.h +++ b/src/libigl/igl/embree/unproject_in_mesh.h diff --git a/src/igl/embree/unproject_onto_mesh.cpp b/src/libigl/igl/embree/unproject_onto_mesh.cpp index a9d336690..a9d336690 100644 --- a/src/igl/embree/unproject_onto_mesh.cpp +++ b/src/libigl/igl/embree/unproject_onto_mesh.cpp diff --git a/src/igl/embree/unproject_onto_mesh.h b/src/libigl/igl/embree/unproject_onto_mesh.h index db0a2e0cb..db0a2e0cb 100644 --- a/src/igl/embree/unproject_onto_mesh.h +++ b/src/libigl/igl/embree/unproject_onto_mesh.h diff --git a/src/igl/euler_characteristic.cpp b/src/libigl/igl/euler_characteristic.cpp index ab7eba22b..ab7eba22b 100644 --- a/src/igl/euler_characteristic.cpp +++ b/src/libigl/igl/euler_characteristic.cpp diff --git a/src/igl/euler_characteristic.h b/src/libigl/igl/euler_characteristic.h index f4c0c0a0f..f4c0c0a0f 100644 --- a/src/igl/euler_characteristic.h +++ b/src/libigl/igl/euler_characteristic.h diff --git a/src/igl/exact_geodesic.cpp b/src/libigl/igl/exact_geodesic.cpp index e20783b88..e20783b88 100644 --- a/src/igl/exact_geodesic.cpp +++ b/src/libigl/igl/exact_geodesic.cpp diff --git a/src/igl/exact_geodesic.h b/src/libigl/igl/exact_geodesic.h index cec59de69..cec59de69 100644 --- a/src/igl/exact_geodesic.h +++ b/src/libigl/igl/exact_geodesic.h diff --git a/src/igl/example_fun.cpp b/src/libigl/igl/example_fun.cpp index 9796c68e3..9796c68e3 100644 --- a/src/igl/example_fun.cpp +++ b/src/libigl/igl/example_fun.cpp diff --git a/src/igl/example_fun.h b/src/libigl/igl/example_fun.h index 16c9ec645..16c9ec645 100644 --- a/src/igl/example_fun.h +++ b/src/libigl/igl/example_fun.h diff --git a/src/igl/exterior_edges.cpp b/src/libigl/igl/exterior_edges.cpp index 04c1e9b8a..04c1e9b8a 100644 --- a/src/igl/exterior_edges.cpp +++ b/src/libigl/igl/exterior_edges.cpp diff --git a/src/igl/exterior_edges.h b/src/libigl/igl/exterior_edges.h index 8ce80e67b..8ce80e67b 100644 --- a/src/igl/exterior_edges.h +++ b/src/libigl/igl/exterior_edges.h diff --git a/src/igl/extract_manifold_patches.cpp b/src/libigl/igl/extract_manifold_patches.cpp index 92269e2c8..92269e2c8 100644 --- a/src/igl/extract_manifold_patches.cpp +++ b/src/libigl/igl/extract_manifold_patches.cpp diff --git a/src/igl/extract_manifold_patches.h b/src/libigl/igl/extract_manifold_patches.h index 6bc25d537..6bc25d537 100644 --- a/src/igl/extract_manifold_patches.h +++ b/src/libigl/igl/extract_manifold_patches.h diff --git a/src/igl/extract_non_manifold_edge_curves.cpp b/src/libigl/igl/extract_non_manifold_edge_curves.cpp index c4a5274a6..c4a5274a6 100644 --- a/src/igl/extract_non_manifold_edge_curves.cpp +++ b/src/libigl/igl/extract_non_manifold_edge_curves.cpp diff --git a/src/igl/extract_non_manifold_edge_curves.h b/src/libigl/igl/extract_non_manifold_edge_curves.h index 173e0c5a2..173e0c5a2 100644 --- a/src/igl/extract_non_manifold_edge_curves.h +++ b/src/libigl/igl/extract_non_manifold_edge_curves.h diff --git a/src/igl/face_areas.cpp b/src/libigl/igl/face_areas.cpp index 74bf7fce0..74bf7fce0 100644 --- a/src/igl/face_areas.cpp +++ b/src/libigl/igl/face_areas.cpp diff --git a/src/igl/face_areas.h b/src/libigl/igl/face_areas.h index 9676deadc..9676deadc 100644 --- a/src/igl/face_areas.h +++ b/src/libigl/igl/face_areas.h diff --git a/src/igl/face_occurrences.cpp b/src/libigl/igl/face_occurrences.cpp index 4ef43f822..4ef43f822 100644 --- a/src/igl/face_occurrences.cpp +++ b/src/libigl/igl/face_occurrences.cpp diff --git a/src/igl/face_occurrences.h b/src/libigl/igl/face_occurrences.h index de47b504c..de47b504c 100644 --- a/src/igl/face_occurrences.h +++ b/src/libigl/igl/face_occurrences.h diff --git a/src/igl/faces_first.cpp b/src/libigl/igl/faces_first.cpp index 9c0fa0d0b..9c0fa0d0b 100644 --- a/src/igl/faces_first.cpp +++ b/src/libigl/igl/faces_first.cpp diff --git a/src/igl/faces_first.h b/src/libigl/igl/faces_first.h index 92d1d5565..92d1d5565 100644 --- a/src/igl/faces_first.h +++ b/src/libigl/igl/faces_first.h diff --git a/src/igl/facet_components.cpp b/src/libigl/igl/facet_components.cpp index 9df7583e3..9df7583e3 100644 --- a/src/igl/facet_components.cpp +++ b/src/libigl/igl/facet_components.cpp diff --git a/src/igl/facet_components.h b/src/libigl/igl/facet_components.h index 8fe28583c..8fe28583c 100644 --- a/src/igl/facet_components.h +++ b/src/libigl/igl/facet_components.h diff --git a/src/igl/false_barycentric_subdivision.cpp b/src/libigl/igl/false_barycentric_subdivision.cpp index 8ea807a50..8ea807a50 100644 --- a/src/igl/false_barycentric_subdivision.cpp +++ b/src/libigl/igl/false_barycentric_subdivision.cpp diff --git a/src/igl/false_barycentric_subdivision.h b/src/libigl/igl/false_barycentric_subdivision.h index 98426b572..98426b572 100644 --- a/src/igl/false_barycentric_subdivision.h +++ b/src/libigl/igl/false_barycentric_subdivision.h diff --git a/src/igl/fast_winding_number.cpp b/src/libigl/igl/fast_winding_number.cpp index a69785feb..a69785feb 100644 --- a/src/igl/fast_winding_number.cpp +++ b/src/libigl/igl/fast_winding_number.cpp diff --git a/src/igl/fast_winding_number.h b/src/libigl/igl/fast_winding_number.h index 6d4bc1ed7..6d4bc1ed7 100644 --- a/src/igl/fast_winding_number.h +++ b/src/libigl/igl/fast_winding_number.h diff --git a/src/igl/file_contents_as_string.cpp b/src/libigl/igl/file_contents_as_string.cpp index fd945dff2..fd945dff2 100644 --- a/src/igl/file_contents_as_string.cpp +++ b/src/libigl/igl/file_contents_as_string.cpp diff --git a/src/igl/file_contents_as_string.h b/src/libigl/igl/file_contents_as_string.h index 22ce1fc53..22ce1fc53 100644 --- a/src/igl/file_contents_as_string.h +++ b/src/libigl/igl/file_contents_as_string.h diff --git a/src/igl/file_dialog_open.cpp b/src/libigl/igl/file_dialog_open.cpp index 66c2aca0e..66c2aca0e 100644 --- a/src/igl/file_dialog_open.cpp +++ b/src/libigl/igl/file_dialog_open.cpp diff --git a/src/igl/file_dialog_open.h b/src/libigl/igl/file_dialog_open.h index 1b17ea4c6..1b17ea4c6 100644 --- a/src/igl/file_dialog_open.h +++ b/src/libigl/igl/file_dialog_open.h diff --git a/src/igl/file_dialog_save.cpp b/src/libigl/igl/file_dialog_save.cpp index 90687fa5c..90687fa5c 100644 --- a/src/igl/file_dialog_save.cpp +++ b/src/libigl/igl/file_dialog_save.cpp diff --git a/src/igl/file_dialog_save.h b/src/libigl/igl/file_dialog_save.h index f04075758..f04075758 100644 --- a/src/igl/file_dialog_save.h +++ b/src/libigl/igl/file_dialog_save.h diff --git a/src/igl/file_exists.cpp b/src/libigl/igl/file_exists.cpp index f1a30630b..f1a30630b 100644 --- a/src/igl/file_exists.cpp +++ b/src/libigl/igl/file_exists.cpp diff --git a/src/igl/file_exists.h b/src/libigl/igl/file_exists.h index e011d977e..e011d977e 100644 --- a/src/igl/file_exists.h +++ b/src/libigl/igl/file_exists.h diff --git a/src/igl/find.cpp b/src/libigl/igl/find.cpp index 65e7580ca..65e7580ca 100644 --- a/src/igl/find.cpp +++ b/src/libigl/igl/find.cpp diff --git a/src/igl/find.h b/src/libigl/igl/find.h index 85eb65770..85eb65770 100644 --- a/src/igl/find.h +++ b/src/libigl/igl/find.h diff --git a/src/igl/find_cross_field_singularities.cpp b/src/libigl/igl/find_cross_field_singularities.cpp index 31a5bb714..31a5bb714 100644 --- a/src/igl/find_cross_field_singularities.cpp +++ b/src/libigl/igl/find_cross_field_singularities.cpp diff --git a/src/igl/find_cross_field_singularities.h b/src/libigl/igl/find_cross_field_singularities.h index caded2019..caded2019 100644 --- a/src/igl/find_cross_field_singularities.h +++ b/src/libigl/igl/find_cross_field_singularities.h diff --git a/src/igl/find_zero.cpp b/src/libigl/igl/find_zero.cpp index d0a7b35e6..d0a7b35e6 100644 --- a/src/igl/find_zero.cpp +++ b/src/libigl/igl/find_zero.cpp diff --git a/src/igl/find_zero.h b/src/libigl/igl/find_zero.h index 0739be1cf..0739be1cf 100644 --- a/src/igl/find_zero.h +++ b/src/libigl/igl/find_zero.h diff --git a/src/igl/fit_plane.cpp b/src/libigl/igl/fit_plane.cpp index 83f11738f..83f11738f 100644 --- a/src/igl/fit_plane.cpp +++ b/src/libigl/igl/fit_plane.cpp diff --git a/src/igl/fit_plane.h b/src/libigl/igl/fit_plane.h index f69ce811b..f69ce811b 100644 --- a/src/igl/fit_plane.h +++ b/src/libigl/igl/fit_plane.h diff --git a/src/igl/fit_rotations.cpp b/src/libigl/igl/fit_rotations.cpp index 927e8992e..927e8992e 100644 --- a/src/igl/fit_rotations.cpp +++ b/src/libigl/igl/fit_rotations.cpp diff --git a/src/igl/fit_rotations.h b/src/libigl/igl/fit_rotations.h index 1a18fd322..1a18fd322 100644 --- a/src/igl/fit_rotations.h +++ b/src/libigl/igl/fit_rotations.h diff --git a/src/igl/flip_avoiding_line_search.cpp b/src/libigl/igl/flip_avoiding_line_search.cpp index 8554303c2..8554303c2 100644 --- a/src/igl/flip_avoiding_line_search.cpp +++ b/src/libigl/igl/flip_avoiding_line_search.cpp diff --git a/src/igl/flip_avoiding_line_search.h b/src/libigl/igl/flip_avoiding_line_search.h index 29eb9dee0..29eb9dee0 100644 --- a/src/igl/flip_avoiding_line_search.h +++ b/src/libigl/igl/flip_avoiding_line_search.h diff --git a/src/igl/flip_edge.cpp b/src/libigl/igl/flip_edge.cpp index b34581449..b34581449 100644 --- a/src/igl/flip_edge.cpp +++ b/src/libigl/igl/flip_edge.cpp diff --git a/src/igl/flip_edge.h b/src/libigl/igl/flip_edge.h index 3c43198a6..3c43198a6 100644 --- a/src/igl/flip_edge.h +++ b/src/libigl/igl/flip_edge.h diff --git a/src/igl/flipped_triangles.cpp b/src/libigl/igl/flipped_triangles.cpp index ea76e5c84..ea76e5c84 100644 --- a/src/igl/flipped_triangles.cpp +++ b/src/libigl/igl/flipped_triangles.cpp diff --git a/src/igl/flipped_triangles.h b/src/libigl/igl/flipped_triangles.h index b06d9329b..b06d9329b 100644 --- a/src/igl/flipped_triangles.h +++ b/src/libigl/igl/flipped_triangles.h diff --git a/src/igl/flood_fill.cpp b/src/libigl/igl/flood_fill.cpp index a6c91361d..a6c91361d 100644 --- a/src/igl/flood_fill.cpp +++ b/src/libigl/igl/flood_fill.cpp diff --git a/src/igl/flood_fill.h b/src/libigl/igl/flood_fill.h index 7eef01b3c..7eef01b3c 100644 --- a/src/igl/flood_fill.h +++ b/src/libigl/igl/flood_fill.h diff --git a/src/igl/floor.cpp b/src/libigl/igl/floor.cpp index 7538b7e01..7538b7e01 100644 --- a/src/igl/floor.cpp +++ b/src/libigl/igl/floor.cpp diff --git a/src/igl/floor.h b/src/libigl/igl/floor.h index a84d52068..a84d52068 100644 --- a/src/igl/floor.h +++ b/src/libigl/igl/floor.h diff --git a/src/igl/for_each.h b/src/libigl/igl/for_each.h index 6ba03ba1c..6ba03ba1c 100644 --- a/src/igl/for_each.h +++ b/src/libigl/igl/for_each.h diff --git a/src/igl/forward_kinematics.cpp b/src/libigl/igl/forward_kinematics.cpp index c473453c9..c473453c9 100644 --- a/src/igl/forward_kinematics.cpp +++ b/src/libigl/igl/forward_kinematics.cpp diff --git a/src/igl/forward_kinematics.h b/src/libigl/igl/forward_kinematics.h index 2b3d2db6d..2b3d2db6d 100644 --- a/src/igl/forward_kinematics.h +++ b/src/libigl/igl/forward_kinematics.h diff --git a/src/igl/frame_field_deformer.cpp b/src/libigl/igl/frame_field_deformer.cpp index c22200f1b..c22200f1b 100644 --- a/src/igl/frame_field_deformer.cpp +++ b/src/libigl/igl/frame_field_deformer.cpp diff --git a/src/igl/frame_field_deformer.h b/src/libigl/igl/frame_field_deformer.h index 02a5b9ea2..02a5b9ea2 100644 --- a/src/igl/frame_field_deformer.h +++ b/src/libigl/igl/frame_field_deformer.h diff --git a/src/igl/frame_to_cross_field.cpp b/src/libigl/igl/frame_to_cross_field.cpp index e4d6bc713..e4d6bc713 100644 --- a/src/igl/frame_to_cross_field.cpp +++ b/src/libigl/igl/frame_to_cross_field.cpp diff --git a/src/igl/frame_to_cross_field.h b/src/libigl/igl/frame_to_cross_field.h index f9bdd3d5f..f9bdd3d5f 100644 --- a/src/igl/frame_to_cross_field.h +++ b/src/libigl/igl/frame_to_cross_field.h diff --git a/src/igl/frustum.cpp b/src/libigl/igl/frustum.cpp index 2926106e6..2926106e6 100644 --- a/src/igl/frustum.cpp +++ b/src/libigl/igl/frustum.cpp diff --git a/src/igl/frustum.h b/src/libigl/igl/frustum.h index 4a92e1a81..4a92e1a81 100644 --- a/src/igl/frustum.h +++ b/src/libigl/igl/frustum.h diff --git a/src/igl/gaussian_curvature.cpp b/src/libigl/igl/gaussian_curvature.cpp index ca05129df..ca05129df 100644 --- a/src/igl/gaussian_curvature.cpp +++ b/src/libigl/igl/gaussian_curvature.cpp diff --git a/src/igl/gaussian_curvature.h b/src/libigl/igl/gaussian_curvature.h index d8ddbc8ad..d8ddbc8ad 100644 --- a/src/igl/gaussian_curvature.h +++ b/src/libigl/igl/gaussian_curvature.h diff --git a/src/igl/get_seconds.cpp b/src/libigl/igl/get_seconds.cpp index fac4a3a69..fac4a3a69 100644 --- a/src/igl/get_seconds.cpp +++ b/src/libigl/igl/get_seconds.cpp diff --git a/src/igl/get_seconds.h b/src/libigl/igl/get_seconds.h index 411d6e41d..411d6e41d 100644 --- a/src/igl/get_seconds.h +++ b/src/libigl/igl/get_seconds.h diff --git a/src/igl/get_seconds_hires.cpp b/src/libigl/igl/get_seconds_hires.cpp index 15f26dc9e..15f26dc9e 100644 --- a/src/igl/get_seconds_hires.cpp +++ b/src/libigl/igl/get_seconds_hires.cpp diff --git a/src/igl/get_seconds_hires.h b/src/libigl/igl/get_seconds_hires.h index abe8956b5..abe8956b5 100644 --- a/src/igl/get_seconds_hires.h +++ b/src/libigl/igl/get_seconds_hires.h diff --git a/src/igl/grad.cpp b/src/libigl/igl/grad.cpp index cc86e9e81..cc86e9e81 100644 --- a/src/igl/grad.cpp +++ b/src/libigl/igl/grad.cpp diff --git a/src/igl/grad.h b/src/libigl/igl/grad.h index df375ba61..df375ba61 100644 --- a/src/igl/grad.h +++ b/src/libigl/igl/grad.h diff --git a/src/igl/grid.cpp b/src/libigl/igl/grid.cpp index f572a0571..f572a0571 100644 --- a/src/igl/grid.cpp +++ b/src/libigl/igl/grid.cpp diff --git a/src/igl/grid.h b/src/libigl/igl/grid.h index 27894f628..27894f628 100644 --- a/src/igl/grid.h +++ b/src/libigl/igl/grid.h diff --git a/src/igl/grid_search.cpp b/src/libigl/igl/grid_search.cpp index 93cbc0dde..93cbc0dde 100644 --- a/src/igl/grid_search.cpp +++ b/src/libigl/igl/grid_search.cpp diff --git a/src/igl/grid_search.h b/src/libigl/igl/grid_search.h index 83a86663e..83a86663e 100644 --- a/src/igl/grid_search.h +++ b/src/libigl/igl/grid_search.h diff --git a/src/igl/group_sum_matrix.cpp b/src/libigl/igl/group_sum_matrix.cpp index d3cf0bff2..d3cf0bff2 100644 --- a/src/igl/group_sum_matrix.cpp +++ b/src/libigl/igl/group_sum_matrix.cpp diff --git a/src/igl/group_sum_matrix.h b/src/libigl/igl/group_sum_matrix.h index 805544b0b..805544b0b 100644 --- a/src/igl/group_sum_matrix.h +++ b/src/libigl/igl/group_sum_matrix.h diff --git a/src/igl/guess_extension.cpp b/src/libigl/igl/guess_extension.cpp index 8e8e449a1..8e8e449a1 100644 --- a/src/igl/guess_extension.cpp +++ b/src/libigl/igl/guess_extension.cpp diff --git a/src/igl/guess_extension.h b/src/libigl/igl/guess_extension.h index 77df6f523..77df6f523 100644 --- a/src/igl/guess_extension.h +++ b/src/libigl/igl/guess_extension.h diff --git a/src/igl/harmonic.cpp b/src/libigl/igl/harmonic.cpp index aa07245a1..aa07245a1 100644 --- a/src/igl/harmonic.cpp +++ b/src/libigl/igl/harmonic.cpp diff --git a/src/igl/harmonic.h b/src/libigl/igl/harmonic.h index 1a48ecfb5..1a48ecfb5 100644 --- a/src/igl/harmonic.h +++ b/src/libigl/igl/harmonic.h diff --git a/src/igl/harwell_boeing.cpp b/src/libigl/igl/harwell_boeing.cpp index 895416510..895416510 100644 --- a/src/igl/harwell_boeing.cpp +++ b/src/libigl/igl/harwell_boeing.cpp diff --git a/src/igl/harwell_boeing.h b/src/libigl/igl/harwell_boeing.h index df166ab82..df166ab82 100644 --- a/src/igl/harwell_boeing.h +++ b/src/libigl/igl/harwell_boeing.h diff --git a/src/igl/hausdorff.cpp b/src/libigl/igl/hausdorff.cpp index 9b1ad4743..9b1ad4743 100644 --- a/src/igl/hausdorff.cpp +++ b/src/libigl/igl/hausdorff.cpp diff --git a/src/igl/hausdorff.h b/src/libigl/igl/hausdorff.h index 92e22b333..92e22b333 100644 --- a/src/igl/hausdorff.h +++ b/src/libigl/igl/hausdorff.h diff --git a/src/igl/hessian.cpp b/src/libigl/igl/hessian.cpp index ebf81cd7d..ebf81cd7d 100644 --- a/src/igl/hessian.cpp +++ b/src/libigl/igl/hessian.cpp diff --git a/src/igl/hessian.h b/src/libigl/igl/hessian.h index 360750d2c..360750d2c 100644 --- a/src/igl/hessian.h +++ b/src/libigl/igl/hessian.h diff --git a/src/igl/hessian_energy.cpp b/src/libigl/igl/hessian_energy.cpp index fa0b10a7d..fa0b10a7d 100644 --- a/src/igl/hessian_energy.cpp +++ b/src/libigl/igl/hessian_energy.cpp diff --git a/src/igl/hessian_energy.h b/src/libigl/igl/hessian_energy.h index e53373580..e53373580 100644 --- a/src/igl/hessian_energy.h +++ b/src/libigl/igl/hessian_energy.h diff --git a/src/igl/histc.cpp b/src/libigl/igl/histc.cpp index 3f967b3be..3f967b3be 100644 --- a/src/igl/histc.cpp +++ b/src/libigl/igl/histc.cpp diff --git a/src/igl/histc.h b/src/libigl/igl/histc.h index 2f0ed9135..2f0ed9135 100644 --- a/src/igl/histc.h +++ b/src/libigl/igl/histc.h diff --git a/src/igl/hsv_to_rgb.cpp b/src/libigl/igl/hsv_to_rgb.cpp index a1727ff50..a1727ff50 100644 --- a/src/igl/hsv_to_rgb.cpp +++ b/src/libigl/igl/hsv_to_rgb.cpp diff --git a/src/igl/hsv_to_rgb.h b/src/libigl/igl/hsv_to_rgb.h index aeb64d9d3..aeb64d9d3 100644 --- a/src/igl/hsv_to_rgb.h +++ b/src/libigl/igl/hsv_to_rgb.h diff --git a/src/igl/igl_inline.h b/src/libigl/igl/igl_inline.h index 20c9630e4..20c9630e4 100644 --- a/src/igl/igl_inline.h +++ b/src/libigl/igl/igl_inline.h diff --git a/src/igl/in_element.cpp b/src/libigl/igl/in_element.cpp index dcdfd8a89..dcdfd8a89 100644 --- a/src/igl/in_element.cpp +++ b/src/libigl/igl/in_element.cpp diff --git a/src/igl/in_element.h b/src/libigl/igl/in_element.h index dcbc03aa6..dcbc03aa6 100644 --- a/src/igl/in_element.h +++ b/src/libigl/igl/in_element.h diff --git a/src/igl/infinite_cost_stopping_condition.cpp b/src/libigl/igl/infinite_cost_stopping_condition.cpp index 033f2b678..033f2b678 100644 --- a/src/igl/infinite_cost_stopping_condition.cpp +++ b/src/libigl/igl/infinite_cost_stopping_condition.cpp diff --git a/src/igl/infinite_cost_stopping_condition.h b/src/libigl/igl/infinite_cost_stopping_condition.h index d37e98025..d37e98025 100644 --- a/src/igl/infinite_cost_stopping_condition.h +++ b/src/libigl/igl/infinite_cost_stopping_condition.h diff --git a/src/igl/inradius.cpp b/src/libigl/igl/inradius.cpp index d5a06ab50..d5a06ab50 100644 --- a/src/igl/inradius.cpp +++ b/src/libigl/igl/inradius.cpp diff --git a/src/igl/inradius.h b/src/libigl/igl/inradius.h index 07166b4b9..07166b4b9 100644 --- a/src/igl/inradius.h +++ b/src/libigl/igl/inradius.h diff --git a/src/igl/internal_angles.cpp b/src/libigl/igl/internal_angles.cpp index 5c6e8dfbe..5c6e8dfbe 100644 --- a/src/igl/internal_angles.cpp +++ b/src/libigl/igl/internal_angles.cpp diff --git a/src/igl/internal_angles.h b/src/libigl/igl/internal_angles.h index 1dd990ed4..1dd990ed4 100644 --- a/src/igl/internal_angles.h +++ b/src/libigl/igl/internal_angles.h diff --git a/src/igl/intersect.cpp b/src/libigl/igl/intersect.cpp index f930fc0be..f930fc0be 100644 --- a/src/igl/intersect.cpp +++ b/src/libigl/igl/intersect.cpp diff --git a/src/igl/intersect.h b/src/libigl/igl/intersect.h index be4da91e5..be4da91e5 100644 --- a/src/igl/intersect.h +++ b/src/libigl/igl/intersect.h diff --git a/src/igl/invert_diag.cpp b/src/libigl/igl/invert_diag.cpp index b87a8d5b4..b87a8d5b4 100644 --- a/src/igl/invert_diag.cpp +++ b/src/libigl/igl/invert_diag.cpp diff --git a/src/igl/invert_diag.h b/src/libigl/igl/invert_diag.h index 2194b3f14..2194b3f14 100644 --- a/src/igl/invert_diag.h +++ b/src/libigl/igl/invert_diag.h diff --git a/src/igl/is_border_vertex.cpp b/src/libigl/igl/is_border_vertex.cpp index a337609ae..a337609ae 100644 --- a/src/igl/is_border_vertex.cpp +++ b/src/libigl/igl/is_border_vertex.cpp diff --git a/src/igl/is_border_vertex.h b/src/libigl/igl/is_border_vertex.h index 2e611ac11..2e611ac11 100644 --- a/src/igl/is_border_vertex.h +++ b/src/libigl/igl/is_border_vertex.h diff --git a/src/igl/is_boundary_edge.cpp b/src/libigl/igl/is_boundary_edge.cpp index 679214bbc..679214bbc 100644 --- a/src/igl/is_boundary_edge.cpp +++ b/src/libigl/igl/is_boundary_edge.cpp diff --git a/src/igl/is_boundary_edge.h b/src/libigl/igl/is_boundary_edge.h index f68ebb7e4..f68ebb7e4 100644 --- a/src/igl/is_boundary_edge.h +++ b/src/libigl/igl/is_boundary_edge.h diff --git a/src/igl/is_dir.cpp b/src/libigl/igl/is_dir.cpp index e7346c1dd..e7346c1dd 100644 --- a/src/igl/is_dir.cpp +++ b/src/libigl/igl/is_dir.cpp diff --git a/src/igl/is_dir.h b/src/libigl/igl/is_dir.h index 68e30a564..68e30a564 100644 --- a/src/igl/is_dir.h +++ b/src/libigl/igl/is_dir.h diff --git a/src/igl/is_edge_manifold.cpp b/src/libigl/igl/is_edge_manifold.cpp index 1b106056e..1b106056e 100644 --- a/src/igl/is_edge_manifold.cpp +++ b/src/libigl/igl/is_edge_manifold.cpp diff --git a/src/igl/is_edge_manifold.h b/src/libigl/igl/is_edge_manifold.h index 5832806ac..5832806ac 100644 --- a/src/igl/is_edge_manifold.h +++ b/src/libigl/igl/is_edge_manifold.h diff --git a/src/igl/is_file.cpp b/src/libigl/igl/is_file.cpp index 6c040b86c..6c040b86c 100644 --- a/src/igl/is_file.cpp +++ b/src/libigl/igl/is_file.cpp diff --git a/src/igl/is_file.h b/src/libigl/igl/is_file.h index 5610c7ff3..5610c7ff3 100644 --- a/src/igl/is_file.h +++ b/src/libigl/igl/is_file.h diff --git a/src/igl/is_irregular_vertex.cpp b/src/libigl/igl/is_irregular_vertex.cpp index 34665d66f..34665d66f 100644 --- a/src/igl/is_irregular_vertex.cpp +++ b/src/libigl/igl/is_irregular_vertex.cpp diff --git a/src/igl/is_irregular_vertex.h b/src/libigl/igl/is_irregular_vertex.h index e07e5ab70..e07e5ab70 100644 --- a/src/igl/is_irregular_vertex.h +++ b/src/libigl/igl/is_irregular_vertex.h diff --git a/src/igl/is_planar.cpp b/src/libigl/igl/is_planar.cpp index 6058a03d4..6058a03d4 100644 --- a/src/igl/is_planar.cpp +++ b/src/libigl/igl/is_planar.cpp diff --git a/src/igl/is_planar.h b/src/libigl/igl/is_planar.h index 645403da5..645403da5 100644 --- a/src/igl/is_planar.h +++ b/src/libigl/igl/is_planar.h diff --git a/src/igl/is_readable.cpp b/src/libigl/igl/is_readable.cpp index eb5e95347..eb5e95347 100644 --- a/src/igl/is_readable.cpp +++ b/src/libigl/igl/is_readable.cpp diff --git a/src/igl/is_readable.h b/src/libigl/igl/is_readable.h index 689701285..689701285 100644 --- a/src/igl/is_readable.h +++ b/src/libigl/igl/is_readable.h diff --git a/src/igl/is_sparse.cpp b/src/libigl/igl/is_sparse.cpp index 507393d85..507393d85 100644 --- a/src/igl/is_sparse.cpp +++ b/src/libigl/igl/is_sparse.cpp diff --git a/src/igl/is_sparse.h b/src/libigl/igl/is_sparse.h index 9547bb8e8..9547bb8e8 100644 --- a/src/igl/is_sparse.h +++ b/src/libigl/igl/is_sparse.h diff --git a/src/igl/is_stl.cpp b/src/libigl/igl/is_stl.cpp index 240703616..240703616 100644 --- a/src/igl/is_stl.cpp +++ b/src/libigl/igl/is_stl.cpp diff --git a/src/igl/is_stl.h b/src/libigl/igl/is_stl.h index e8f78df1a..e8f78df1a 100644 --- a/src/igl/is_stl.h +++ b/src/libigl/igl/is_stl.h diff --git a/src/igl/is_symmetric.cpp b/src/libigl/igl/is_symmetric.cpp index f40473b66..f40473b66 100644 --- a/src/igl/is_symmetric.cpp +++ b/src/libigl/igl/is_symmetric.cpp diff --git a/src/igl/is_symmetric.h b/src/libigl/igl/is_symmetric.h index 31725298e..31725298e 100644 --- a/src/igl/is_symmetric.h +++ b/src/libigl/igl/is_symmetric.h diff --git a/src/igl/is_vertex_manifold.cpp b/src/libigl/igl/is_vertex_manifold.cpp index d266ebab7..d266ebab7 100644 --- a/src/igl/is_vertex_manifold.cpp +++ b/src/libigl/igl/is_vertex_manifold.cpp diff --git a/src/igl/is_vertex_manifold.h b/src/libigl/igl/is_vertex_manifold.h index bf9caded6..bf9caded6 100644 --- a/src/igl/is_vertex_manifold.h +++ b/src/libigl/igl/is_vertex_manifold.h diff --git a/src/igl/is_writable.cpp b/src/libigl/igl/is_writable.cpp index f266b0078..f266b0078 100644 --- a/src/igl/is_writable.cpp +++ b/src/libigl/igl/is_writable.cpp diff --git a/src/igl/is_writable.h b/src/libigl/igl/is_writable.h index 8834e8afb..8834e8afb 100644 --- a/src/igl/is_writable.h +++ b/src/libigl/igl/is_writable.h diff --git a/src/igl/isdiag.cpp b/src/libigl/igl/isdiag.cpp index 452341bf8..452341bf8 100644 --- a/src/igl/isdiag.cpp +++ b/src/libigl/igl/isdiag.cpp diff --git a/src/igl/isdiag.h b/src/libigl/igl/isdiag.h index 2bd555fa3..2bd555fa3 100644 --- a/src/igl/isdiag.h +++ b/src/libigl/igl/isdiag.h diff --git a/src/igl/ismember.cpp b/src/libigl/igl/ismember.cpp index e3c3fd492..e3c3fd492 100644 --- a/src/igl/ismember.cpp +++ b/src/libigl/igl/ismember.cpp diff --git a/src/igl/ismember.h b/src/libigl/igl/ismember.h index 72be6006d..72be6006d 100644 --- a/src/igl/ismember.h +++ b/src/libigl/igl/ismember.h diff --git a/src/igl/isolines.cpp b/src/libigl/igl/isolines.cpp index 6d4f87e32..6d4f87e32 100644 --- a/src/igl/isolines.cpp +++ b/src/libigl/igl/isolines.cpp diff --git a/src/igl/isolines.h b/src/libigl/igl/isolines.h index 3b5199b6a..3b5199b6a 100644 --- a/src/igl/isolines.h +++ b/src/libigl/igl/isolines.h diff --git a/src/igl/jet.cpp b/src/libigl/igl/jet.cpp index 373f23bcb..373f23bcb 100644 --- a/src/igl/jet.cpp +++ b/src/libigl/igl/jet.cpp diff --git a/src/igl/jet.h b/src/libigl/igl/jet.h index 411b53af3..411b53af3 100644 --- a/src/igl/jet.h +++ b/src/libigl/igl/jet.h diff --git a/src/igl/knn.cpp b/src/libigl/igl/knn.cpp index b2e355df1..b2e355df1 100644 --- a/src/igl/knn.cpp +++ b/src/libigl/igl/knn.cpp diff --git a/src/igl/knn.h b/src/libigl/igl/knn.h index 0411fc3ee..0411fc3ee 100644 --- a/src/igl/knn.h +++ b/src/libigl/igl/knn.h diff --git a/src/igl/launch_medit.cpp b/src/libigl/igl/launch_medit.cpp index 151af8e5b..151af8e5b 100644 --- a/src/igl/launch_medit.cpp +++ b/src/libigl/igl/launch_medit.cpp diff --git a/src/igl/launch_medit.h b/src/libigl/igl/launch_medit.h index 8a324bb22..8a324bb22 100644 --- a/src/igl/launch_medit.h +++ b/src/libigl/igl/launch_medit.h diff --git a/src/igl/lbs_matrix.cpp b/src/libigl/igl/lbs_matrix.cpp index a80f74be0..a80f74be0 100644 --- a/src/igl/lbs_matrix.cpp +++ b/src/libigl/igl/lbs_matrix.cpp diff --git a/src/igl/lbs_matrix.h b/src/libigl/igl/lbs_matrix.h index 307273d20..307273d20 100644 --- a/src/igl/lbs_matrix.h +++ b/src/libigl/igl/lbs_matrix.h diff --git a/src/igl/lexicographic_triangulation.cpp b/src/libigl/igl/lexicographic_triangulation.cpp index ce9e796ae..ce9e796ae 100644 --- a/src/igl/lexicographic_triangulation.cpp +++ b/src/libigl/igl/lexicographic_triangulation.cpp diff --git a/src/igl/lexicographic_triangulation.h b/src/libigl/igl/lexicographic_triangulation.h index 4e0b81eb5..4e0b81eb5 100644 --- a/src/igl/lexicographic_triangulation.h +++ b/src/libigl/igl/lexicographic_triangulation.h diff --git a/src/igl/lim/lim.cpp b/src/libigl/igl/lim/lim.cpp index 1f4659062..1f4659062 100644 --- a/src/igl/lim/lim.cpp +++ b/src/libigl/igl/lim/lim.cpp diff --git a/src/igl/lim/lim.h b/src/libigl/igl/lim/lim.h index c4d3f4ad4..c4d3f4ad4 100644 --- a/src/igl/lim/lim.h +++ b/src/libigl/igl/lim/lim.h diff --git a/src/igl/limit_faces.cpp b/src/libigl/igl/limit_faces.cpp index e54c40b45..e54c40b45 100644 --- a/src/igl/limit_faces.cpp +++ b/src/libigl/igl/limit_faces.cpp diff --git a/src/igl/limit_faces.h b/src/libigl/igl/limit_faces.h index 635b89170..635b89170 100644 --- a/src/igl/limit_faces.h +++ b/src/libigl/igl/limit_faces.h diff --git a/src/igl/line_field_missmatch.cpp b/src/libigl/igl/line_field_missmatch.cpp index 21c45b710..21c45b710 100644 --- a/src/igl/line_field_missmatch.cpp +++ b/src/libigl/igl/line_field_missmatch.cpp diff --git a/src/igl/line_field_missmatch.h b/src/libigl/igl/line_field_missmatch.h index a939685cb..a939685cb 100644 --- a/src/igl/line_field_missmatch.h +++ b/src/libigl/igl/line_field_missmatch.h diff --git a/src/igl/line_search.cpp b/src/libigl/igl/line_search.cpp index c94eeaa52..c94eeaa52 100644 --- a/src/igl/line_search.cpp +++ b/src/libigl/igl/line_search.cpp diff --git a/src/igl/line_search.h b/src/libigl/igl/line_search.h index 057c6a43f..057c6a43f 100644 --- a/src/igl/line_search.h +++ b/src/libigl/igl/line_search.h diff --git a/src/igl/line_segment_in_rectangle.cpp b/src/libigl/igl/line_segment_in_rectangle.cpp index 6f47c7d4c..6f47c7d4c 100644 --- a/src/igl/line_segment_in_rectangle.cpp +++ b/src/libigl/igl/line_segment_in_rectangle.cpp diff --git a/src/igl/line_segment_in_rectangle.h b/src/libigl/igl/line_segment_in_rectangle.h index 6d7eaf404..6d7eaf404 100644 --- a/src/igl/line_segment_in_rectangle.h +++ b/src/libigl/igl/line_segment_in_rectangle.h diff --git a/src/igl/linprog.cpp b/src/libigl/igl/linprog.cpp index b73ffc513..b73ffc513 100644 --- a/src/igl/linprog.cpp +++ b/src/libigl/igl/linprog.cpp diff --git a/src/igl/linprog.h b/src/libigl/igl/linprog.h index db98435ad..db98435ad 100644 --- a/src/igl/linprog.h +++ b/src/libigl/igl/linprog.h diff --git a/src/igl/list_to_matrix.cpp b/src/libigl/igl/list_to_matrix.cpp index a1ca1926b..a1ca1926b 100644 --- a/src/igl/list_to_matrix.cpp +++ b/src/libigl/igl/list_to_matrix.cpp diff --git a/src/igl/list_to_matrix.h b/src/libigl/igl/list_to_matrix.h index 1a5881dc1..1a5881dc1 100644 --- a/src/igl/list_to_matrix.h +++ b/src/libigl/igl/list_to_matrix.h diff --git a/src/igl/local_basis.cpp b/src/libigl/igl/local_basis.cpp index 599eca739..599eca739 100644 --- a/src/igl/local_basis.cpp +++ b/src/libigl/igl/local_basis.cpp diff --git a/src/igl/local_basis.h b/src/libigl/igl/local_basis.h index 392796c34..392796c34 100644 --- a/src/igl/local_basis.h +++ b/src/libigl/igl/local_basis.h diff --git a/src/igl/look_at.cpp b/src/libigl/igl/look_at.cpp index c55c9b2ec..c55c9b2ec 100644 --- a/src/igl/look_at.cpp +++ b/src/libigl/igl/look_at.cpp diff --git a/src/igl/look_at.h b/src/libigl/igl/look_at.h index 883cbf94e..883cbf94e 100644 --- a/src/igl/look_at.h +++ b/src/libigl/igl/look_at.h diff --git a/src/igl/loop.cpp b/src/libigl/igl/loop.cpp index b4233ca67..b4233ca67 100644 --- a/src/igl/loop.cpp +++ b/src/libigl/igl/loop.cpp diff --git a/src/igl/loop.h b/src/libigl/igl/loop.h index bc1616891..bc1616891 100644 --- a/src/igl/loop.h +++ b/src/libigl/igl/loop.h diff --git a/src/igl/lscm.cpp b/src/libigl/igl/lscm.cpp index 6932f94d4..6932f94d4 100644 --- a/src/igl/lscm.cpp +++ b/src/libigl/igl/lscm.cpp diff --git a/src/igl/lscm.h b/src/libigl/igl/lscm.h index 2386215df..2386215df 100644 --- a/src/igl/lscm.h +++ b/src/libigl/igl/lscm.h diff --git a/src/igl/map_vertices_to_circle.cpp b/src/libigl/igl/map_vertices_to_circle.cpp index 233613936..233613936 100755 --- a/src/igl/map_vertices_to_circle.cpp +++ b/src/libigl/igl/map_vertices_to_circle.cpp diff --git a/src/igl/map_vertices_to_circle.h b/src/libigl/igl/map_vertices_to_circle.h index 54743717f..54743717f 100755 --- a/src/igl/map_vertices_to_circle.h +++ b/src/libigl/igl/map_vertices_to_circle.h diff --git a/src/igl/massmatrix.cpp b/src/libigl/igl/massmatrix.cpp index b51e11061..b51e11061 100644 --- a/src/igl/massmatrix.cpp +++ b/src/libigl/igl/massmatrix.cpp diff --git a/src/igl/massmatrix.h b/src/libigl/igl/massmatrix.h index 69d8dc960..69d8dc960 100644 --- a/src/igl/massmatrix.h +++ b/src/libigl/igl/massmatrix.h diff --git a/src/igl/mat_max.cpp b/src/libigl/igl/mat_max.cpp index c5da97569..c5da97569 100644 --- a/src/igl/mat_max.cpp +++ b/src/libigl/igl/mat_max.cpp diff --git a/src/igl/mat_max.h b/src/libigl/igl/mat_max.h index ad3ec6e61..ad3ec6e61 100644 --- a/src/igl/mat_max.h +++ b/src/libigl/igl/mat_max.h diff --git a/src/igl/mat_min.cpp b/src/libigl/igl/mat_min.cpp index ad50c7014..ad50c7014 100644 --- a/src/igl/mat_min.cpp +++ b/src/libigl/igl/mat_min.cpp diff --git a/src/igl/mat_min.h b/src/libigl/igl/mat_min.h index 3673aeded..3673aeded 100644 --- a/src/igl/mat_min.h +++ b/src/libigl/igl/mat_min.h diff --git a/src/igl/mat_to_quat.cpp b/src/libigl/igl/mat_to_quat.cpp index 5c8e04b1f..5c8e04b1f 100644 --- a/src/igl/mat_to_quat.cpp +++ b/src/libigl/igl/mat_to_quat.cpp diff --git a/src/igl/mat_to_quat.h b/src/libigl/igl/mat_to_quat.h index acea683f7..acea683f7 100644 --- a/src/igl/mat_to_quat.h +++ b/src/libigl/igl/mat_to_quat.h diff --git a/src/igl/material_colors.h b/src/libigl/igl/material_colors.h index 1927fa42d..1927fa42d 100644 --- a/src/igl/material_colors.h +++ b/src/libigl/igl/material_colors.h diff --git a/src/igl/matlab/MatlabWorkspace.h b/src/libigl/igl/matlab/MatlabWorkspace.h index c8dcaf9ed..c8dcaf9ed 100644 --- a/src/igl/matlab/MatlabWorkspace.h +++ b/src/libigl/igl/matlab/MatlabWorkspace.h diff --git a/src/igl/matlab/MexStream.h b/src/libigl/igl/matlab/MexStream.h index 69a0f2f70..69a0f2f70 100644 --- a/src/igl/matlab/MexStream.h +++ b/src/libigl/igl/matlab/MexStream.h diff --git a/src/igl/matlab/matlabinterface.cpp b/src/libigl/igl/matlab/matlabinterface.cpp index 6c03485de..6c03485de 100644 --- a/src/igl/matlab/matlabinterface.cpp +++ b/src/libigl/igl/matlab/matlabinterface.cpp diff --git a/src/igl/matlab/matlabinterface.h b/src/libigl/igl/matlab/matlabinterface.h index 63d72c74e..63d72c74e 100644 --- a/src/igl/matlab/matlabinterface.h +++ b/src/libigl/igl/matlab/matlabinterface.h diff --git a/src/igl/matlab/mexErrMsgTxt.cpp b/src/libigl/igl/matlab/mexErrMsgTxt.cpp index 89dda1fa3..89dda1fa3 100644 --- a/src/igl/matlab/mexErrMsgTxt.cpp +++ b/src/libigl/igl/matlab/mexErrMsgTxt.cpp diff --git a/src/igl/matlab/mexErrMsgTxt.h b/src/libigl/igl/matlab/mexErrMsgTxt.h index 61b838e6e..61b838e6e 100644 --- a/src/igl/matlab/mexErrMsgTxt.h +++ b/src/libigl/igl/matlab/mexErrMsgTxt.h diff --git a/src/igl/matlab/parse_rhs.cpp b/src/libigl/igl/matlab/parse_rhs.cpp index dafc8ba48..dafc8ba48 100644 --- a/src/igl/matlab/parse_rhs.cpp +++ b/src/libigl/igl/matlab/parse_rhs.cpp diff --git a/src/igl/matlab/parse_rhs.h b/src/libigl/igl/matlab/parse_rhs.h index 3cabec734..3cabec734 100644 --- a/src/igl/matlab/parse_rhs.h +++ b/src/libigl/igl/matlab/parse_rhs.h diff --git a/src/igl/matlab/prepare_lhs.cpp b/src/libigl/igl/matlab/prepare_lhs.cpp index 93593685e..93593685e 100644 --- a/src/igl/matlab/prepare_lhs.cpp +++ b/src/libigl/igl/matlab/prepare_lhs.cpp diff --git a/src/igl/matlab/prepare_lhs.h b/src/libigl/igl/matlab/prepare_lhs.h index 0ac0ca6ce..0ac0ca6ce 100644 --- a/src/igl/matlab/prepare_lhs.h +++ b/src/libigl/igl/matlab/prepare_lhs.h diff --git a/src/igl/matlab/requires_arg.cpp b/src/libigl/igl/matlab/requires_arg.cpp index a03469183..a03469183 100644 --- a/src/igl/matlab/requires_arg.cpp +++ b/src/libigl/igl/matlab/requires_arg.cpp diff --git a/src/igl/matlab/requires_arg.h b/src/libigl/igl/matlab/requires_arg.h index 65531b2f2..65531b2f2 100644 --- a/src/igl/matlab/requires_arg.h +++ b/src/libigl/igl/matlab/requires_arg.h diff --git a/src/igl/matlab/validate_arg.cpp b/src/libigl/igl/matlab/validate_arg.cpp index 903c9984d..903c9984d 100644 --- a/src/igl/matlab/validate_arg.cpp +++ b/src/libigl/igl/matlab/validate_arg.cpp diff --git a/src/igl/matlab/validate_arg.h b/src/libigl/igl/matlab/validate_arg.h index db52c68d1..db52c68d1 100644 --- a/src/igl/matlab/validate_arg.h +++ b/src/libigl/igl/matlab/validate_arg.h diff --git a/src/igl/matlab_format.cpp b/src/libigl/igl/matlab_format.cpp index ceb5d6db7..ceb5d6db7 100644 --- a/src/igl/matlab_format.cpp +++ b/src/libigl/igl/matlab_format.cpp diff --git a/src/igl/matlab_format.h b/src/libigl/igl/matlab_format.h index e1f3ff830..e1f3ff830 100644 --- a/src/igl/matlab_format.h +++ b/src/libigl/igl/matlab_format.h diff --git a/src/igl/matrix_to_list.cpp b/src/libigl/igl/matrix_to_list.cpp index 1c30dff91..1c30dff91 100644 --- a/src/igl/matrix_to_list.cpp +++ b/src/libigl/igl/matrix_to_list.cpp diff --git a/src/igl/matrix_to_list.h b/src/libigl/igl/matrix_to_list.h index a84281127..a84281127 100644 --- a/src/igl/matrix_to_list.h +++ b/src/libigl/igl/matrix_to_list.h diff --git a/src/igl/max.cpp b/src/libigl/igl/max.cpp index e451c3b15..e451c3b15 100644 --- a/src/igl/max.cpp +++ b/src/libigl/igl/max.cpp diff --git a/src/igl/max.h b/src/libigl/igl/max.h index 554a19b13..554a19b13 100644 --- a/src/igl/max.h +++ b/src/libigl/igl/max.h diff --git a/src/igl/max_faces_stopping_condition.cpp b/src/libigl/igl/max_faces_stopping_condition.cpp index adc4fc96e..adc4fc96e 100644 --- a/src/igl/max_faces_stopping_condition.cpp +++ b/src/libigl/igl/max_faces_stopping_condition.cpp diff --git a/src/igl/max_faces_stopping_condition.h b/src/libigl/igl/max_faces_stopping_condition.h index e886a1f5c..e886a1f5c 100644 --- a/src/igl/max_faces_stopping_condition.h +++ b/src/libigl/igl/max_faces_stopping_condition.h diff --git a/src/igl/max_size.cpp b/src/libigl/igl/max_size.cpp index f3b9a07f2..f3b9a07f2 100644 --- a/src/igl/max_size.cpp +++ b/src/libigl/igl/max_size.cpp diff --git a/src/igl/max_size.h b/src/libigl/igl/max_size.h index 58035d4ce..58035d4ce 100644 --- a/src/igl/max_size.h +++ b/src/libigl/igl/max_size.h diff --git a/src/igl/median.cpp b/src/libigl/igl/median.cpp index 718b9acc9..718b9acc9 100644 --- a/src/igl/median.cpp +++ b/src/libigl/igl/median.cpp diff --git a/src/igl/median.h b/src/libigl/igl/median.h index 7986dfda4..7986dfda4 100644 --- a/src/igl/median.h +++ b/src/libigl/igl/median.h diff --git a/src/igl/min.cpp b/src/libigl/igl/min.cpp index ce8ba328e..ce8ba328e 100644 --- a/src/igl/min.cpp +++ b/src/libigl/igl/min.cpp diff --git a/src/igl/min.h b/src/libigl/igl/min.h index bbe5b494a..bbe5b494a 100644 --- a/src/igl/min.h +++ b/src/libigl/igl/min.h diff --git a/src/igl/min_quad_dense.cpp b/src/libigl/igl/min_quad_dense.cpp index f489d996c..f489d996c 100644 --- a/src/igl/min_quad_dense.cpp +++ b/src/libigl/igl/min_quad_dense.cpp diff --git a/src/igl/min_quad_dense.h b/src/libigl/igl/min_quad_dense.h index 3d115168a..3d115168a 100644 --- a/src/igl/min_quad_dense.h +++ b/src/libigl/igl/min_quad_dense.h diff --git a/src/igl/min_quad_with_fixed.cpp b/src/libigl/igl/min_quad_with_fixed.cpp index ffb1322c7..ffb1322c7 100644 --- a/src/igl/min_quad_with_fixed.cpp +++ b/src/libigl/igl/min_quad_with_fixed.cpp diff --git a/src/igl/min_quad_with_fixed.h b/src/libigl/igl/min_quad_with_fixed.h index 269623313..269623313 100644 --- a/src/igl/min_quad_with_fixed.h +++ b/src/libigl/igl/min_quad_with_fixed.h diff --git a/src/igl/min_size.cpp b/src/libigl/igl/min_size.cpp index 0b0cfa9e2..0b0cfa9e2 100644 --- a/src/igl/min_size.cpp +++ b/src/libigl/igl/min_size.cpp diff --git a/src/igl/min_size.h b/src/libigl/igl/min_size.h index e44036279..e44036279 100644 --- a/src/igl/min_size.h +++ b/src/libigl/igl/min_size.h diff --git a/src/igl/mod.cpp b/src/libigl/igl/mod.cpp index 2064fe6a4..2064fe6a4 100644 --- a/src/igl/mod.cpp +++ b/src/libigl/igl/mod.cpp diff --git a/src/igl/mod.h b/src/libigl/igl/mod.h index 3ff58a231..3ff58a231 100644 --- a/src/igl/mod.h +++ b/src/libigl/igl/mod.h diff --git a/src/igl/mode.cpp b/src/libigl/igl/mode.cpp index 89df6be66..89df6be66 100644 --- a/src/igl/mode.cpp +++ b/src/libigl/igl/mode.cpp diff --git a/src/igl/mode.h b/src/libigl/igl/mode.h index 4d0943881..4d0943881 100644 --- a/src/igl/mode.h +++ b/src/libigl/igl/mode.h diff --git a/src/igl/mosek/bbw.cpp b/src/libigl/igl/mosek/bbw.cpp index 99d28ab15..99d28ab15 100644 --- a/src/igl/mosek/bbw.cpp +++ b/src/libigl/igl/mosek/bbw.cpp diff --git a/src/igl/mosek/bbw.h b/src/libigl/igl/mosek/bbw.h index 5dcae0fed..5dcae0fed 100644 --- a/src/igl/mosek/bbw.h +++ b/src/libigl/igl/mosek/bbw.h diff --git a/src/igl/mosek/mosek_guarded.cpp b/src/libigl/igl/mosek/mosek_guarded.cpp index 242d928f6..242d928f6 100644 --- a/src/igl/mosek/mosek_guarded.cpp +++ b/src/libigl/igl/mosek/mosek_guarded.cpp diff --git a/src/igl/mosek/mosek_guarded.h b/src/libigl/igl/mosek/mosek_guarded.h index 1c9e0cbf9..1c9e0cbf9 100644 --- a/src/igl/mosek/mosek_guarded.h +++ b/src/libigl/igl/mosek/mosek_guarded.h diff --git a/src/igl/mosek/mosek_linprog.cpp b/src/libigl/igl/mosek/mosek_linprog.cpp index fe09d5adb..fe09d5adb 100644 --- a/src/igl/mosek/mosek_linprog.cpp +++ b/src/libigl/igl/mosek/mosek_linprog.cpp diff --git a/src/igl/mosek/mosek_linprog.h b/src/libigl/igl/mosek/mosek_linprog.h index 57791cd60..57791cd60 100644 --- a/src/igl/mosek/mosek_linprog.h +++ b/src/libigl/igl/mosek/mosek_linprog.h diff --git a/src/igl/mosek/mosek_quadprog.cpp b/src/libigl/igl/mosek/mosek_quadprog.cpp index 36d9e873b..36d9e873b 100644 --- a/src/igl/mosek/mosek_quadprog.cpp +++ b/src/libigl/igl/mosek/mosek_quadprog.cpp diff --git a/src/igl/mosek/mosek_quadprog.h b/src/libigl/igl/mosek/mosek_quadprog.h index 38343318a..38343318a 100644 --- a/src/igl/mosek/mosek_quadprog.h +++ b/src/libigl/igl/mosek/mosek_quadprog.h diff --git a/src/igl/mvc.cpp b/src/libigl/igl/mvc.cpp index a6fed49d8..a6fed49d8 100644 --- a/src/igl/mvc.cpp +++ b/src/libigl/igl/mvc.cpp diff --git a/src/igl/mvc.h b/src/libigl/igl/mvc.h index 3c7c2abcc..3c7c2abcc 100644 --- a/src/igl/mvc.h +++ b/src/libigl/igl/mvc.h diff --git a/src/igl/nchoosek.cpp b/src/libigl/igl/nchoosek.cpp index 88ab5449d..88ab5449d 100644 --- a/src/igl/nchoosek.cpp +++ b/src/libigl/igl/nchoosek.cpp diff --git a/src/igl/nchoosek.h b/src/libigl/igl/nchoosek.h index ec882e6c6..ec882e6c6 100644 --- a/src/igl/nchoosek.h +++ b/src/libigl/igl/nchoosek.h diff --git a/src/igl/next_filename.cpp b/src/libigl/igl/next_filename.cpp index b453a149a..b453a149a 100644 --- a/src/igl/next_filename.cpp +++ b/src/libigl/igl/next_filename.cpp diff --git a/src/igl/next_filename.h b/src/libigl/igl/next_filename.h index 2aa3094da..2aa3094da 100644 --- a/src/igl/next_filename.h +++ b/src/libigl/igl/next_filename.h diff --git a/src/igl/normal_derivative.cpp b/src/libigl/igl/normal_derivative.cpp index d943fe0e2..d943fe0e2 100644 --- a/src/igl/normal_derivative.cpp +++ b/src/libigl/igl/normal_derivative.cpp diff --git a/src/igl/normal_derivative.h b/src/libigl/igl/normal_derivative.h index 861b55555..861b55555 100644 --- a/src/igl/normal_derivative.h +++ b/src/libigl/igl/normal_derivative.h diff --git a/src/igl/normalize_quat.cpp b/src/libigl/igl/normalize_quat.cpp index f110d6b75..f110d6b75 100644 --- a/src/igl/normalize_quat.cpp +++ b/src/libigl/igl/normalize_quat.cpp diff --git a/src/igl/normalize_quat.h b/src/libigl/igl/normalize_quat.h index e97759b17..e97759b17 100644 --- a/src/igl/normalize_quat.h +++ b/src/libigl/igl/normalize_quat.h diff --git a/src/igl/normalize_row_lengths.cpp b/src/libigl/igl/normalize_row_lengths.cpp index 3d7e566e8..3d7e566e8 100644 --- a/src/igl/normalize_row_lengths.cpp +++ b/src/libigl/igl/normalize_row_lengths.cpp diff --git a/src/igl/normalize_row_lengths.h b/src/libigl/igl/normalize_row_lengths.h index c305c0f65..c305c0f65 100644 --- a/src/igl/normalize_row_lengths.h +++ b/src/libigl/igl/normalize_row_lengths.h diff --git a/src/igl/normalize_row_sums.cpp b/src/libigl/igl/normalize_row_sums.cpp index 1204e073d..1204e073d 100644 --- a/src/igl/normalize_row_sums.cpp +++ b/src/libigl/igl/normalize_row_sums.cpp diff --git a/src/igl/normalize_row_sums.h b/src/libigl/igl/normalize_row_sums.h index a832e82a6..a832e82a6 100644 --- a/src/igl/normalize_row_sums.h +++ b/src/libigl/igl/normalize_row_sums.h diff --git a/src/igl/null.cpp b/src/libigl/igl/null.cpp index b2291f454..b2291f454 100644 --- a/src/igl/null.cpp +++ b/src/libigl/igl/null.cpp diff --git a/src/igl/null.h b/src/libigl/igl/null.h index 2349217fb..2349217fb 100644 --- a/src/igl/null.h +++ b/src/libigl/igl/null.h diff --git a/src/igl/octree.cpp b/src/libigl/igl/octree.cpp index 6ed95d846..6ed95d846 100644 --- a/src/igl/octree.cpp +++ b/src/libigl/igl/octree.cpp diff --git a/src/igl/octree.h b/src/libigl/igl/octree.h index 425d86b2d..425d86b2d 100644 --- a/src/igl/octree.h +++ b/src/libigl/igl/octree.h diff --git a/src/igl/on_boundary.cpp b/src/libigl/igl/on_boundary.cpp index 3fb70ec59..3fb70ec59 100644 --- a/src/igl/on_boundary.cpp +++ b/src/libigl/igl/on_boundary.cpp diff --git a/src/igl/on_boundary.h b/src/libigl/igl/on_boundary.h index c4dab1706..c4dab1706 100644 --- a/src/igl/on_boundary.h +++ b/src/libigl/igl/on_boundary.h diff --git a/src/igl/opengl/MeshGL.cpp b/src/libigl/igl/opengl/MeshGL.cpp index f49924324..f49924324 100644 --- a/src/igl/opengl/MeshGL.cpp +++ b/src/libigl/igl/opengl/MeshGL.cpp diff --git a/src/igl/opengl/MeshGL.h b/src/libigl/igl/opengl/MeshGL.h index 74c358903..74c358903 100644 --- a/src/igl/opengl/MeshGL.h +++ b/src/libigl/igl/opengl/MeshGL.h diff --git a/src/igl/opengl/ViewerCore.cpp b/src/libigl/igl/opengl/ViewerCore.cpp index fc5f4664b..fc5f4664b 100644 --- a/src/igl/opengl/ViewerCore.cpp +++ b/src/libigl/igl/opengl/ViewerCore.cpp diff --git a/src/igl/opengl/ViewerCore.h b/src/libigl/igl/opengl/ViewerCore.h index 94d3367e0..94d3367e0 100644 --- a/src/igl/opengl/ViewerCore.h +++ b/src/libigl/igl/opengl/ViewerCore.h diff --git a/src/igl/opengl/ViewerData.cpp b/src/libigl/igl/opengl/ViewerData.cpp index 0a7f2c44b..0a7f2c44b 100644 --- a/src/igl/opengl/ViewerData.cpp +++ b/src/libigl/igl/opengl/ViewerData.cpp diff --git a/src/igl/opengl/ViewerData.h b/src/libigl/igl/opengl/ViewerData.h index b3ec9178c..b3ec9178c 100644 --- a/src/igl/opengl/ViewerData.h +++ b/src/libigl/igl/opengl/ViewerData.h diff --git a/src/igl/opengl/bind_vertex_attrib_array.cpp b/src/libigl/igl/opengl/bind_vertex_attrib_array.cpp index 4aa807c18..4aa807c18 100644 --- a/src/igl/opengl/bind_vertex_attrib_array.cpp +++ b/src/libigl/igl/opengl/bind_vertex_attrib_array.cpp diff --git a/src/igl/opengl/bind_vertex_attrib_array.h b/src/libigl/igl/opengl/bind_vertex_attrib_array.h index 4e9443136..4e9443136 100644 --- a/src/igl/opengl/bind_vertex_attrib_array.h +++ b/src/libigl/igl/opengl/bind_vertex_attrib_array.h diff --git a/src/igl/opengl/create_index_vbo.cpp b/src/libigl/igl/opengl/create_index_vbo.cpp index 76f6248c0..76f6248c0 100644 --- a/src/igl/opengl/create_index_vbo.cpp +++ b/src/libigl/igl/opengl/create_index_vbo.cpp diff --git a/src/igl/opengl/create_index_vbo.h b/src/libigl/igl/opengl/create_index_vbo.h index e48f3a489..e48f3a489 100644 --- a/src/igl/opengl/create_index_vbo.h +++ b/src/libigl/igl/opengl/create_index_vbo.h diff --git a/src/igl/opengl/create_mesh_vbo.cpp b/src/libigl/igl/opengl/create_mesh_vbo.cpp index 3876e1dfa..3876e1dfa 100644 --- a/src/igl/opengl/create_mesh_vbo.cpp +++ b/src/libigl/igl/opengl/create_mesh_vbo.cpp diff --git a/src/igl/opengl/create_mesh_vbo.h b/src/libigl/igl/opengl/create_mesh_vbo.h index ecb303b09..ecb303b09 100644 --- a/src/igl/opengl/create_mesh_vbo.h +++ b/src/libigl/igl/opengl/create_mesh_vbo.h diff --git a/src/igl/opengl/create_shader_program.cpp b/src/libigl/igl/opengl/create_shader_program.cpp index 6c4b31a2f..6c4b31a2f 100644 --- a/src/igl/opengl/create_shader_program.cpp +++ b/src/libigl/igl/opengl/create_shader_program.cpp diff --git a/src/igl/opengl/create_shader_program.h b/src/libigl/igl/opengl/create_shader_program.h index 5dfdc701d..5dfdc701d 100644 --- a/src/igl/opengl/create_shader_program.h +++ b/src/libigl/igl/opengl/create_shader_program.h diff --git a/src/igl/opengl/create_vector_vbo.cpp b/src/libigl/igl/opengl/create_vector_vbo.cpp index 8690359b7..8690359b7 100644 --- a/src/igl/opengl/create_vector_vbo.cpp +++ b/src/libigl/igl/opengl/create_vector_vbo.cpp diff --git a/src/igl/opengl/create_vector_vbo.h b/src/libigl/igl/opengl/create_vector_vbo.h index 757c1a199..757c1a199 100644 --- a/src/igl/opengl/create_vector_vbo.h +++ b/src/libigl/igl/opengl/create_vector_vbo.h diff --git a/src/igl/opengl/destroy_shader_program.cpp b/src/libigl/igl/opengl/destroy_shader_program.cpp index 2ceace7c2..2ceace7c2 100644 --- a/src/igl/opengl/destroy_shader_program.cpp +++ b/src/libigl/igl/opengl/destroy_shader_program.cpp diff --git a/src/igl/opengl/destroy_shader_program.h b/src/libigl/igl/opengl/destroy_shader_program.h index 5d53d8c3e..5d53d8c3e 100644 --- a/src/igl/opengl/destroy_shader_program.h +++ b/src/libigl/igl/opengl/destroy_shader_program.h diff --git a/src/igl/opengl/gl.h b/src/libigl/igl/opengl/gl.h index fc037c198..fc037c198 100644 --- a/src/igl/opengl/gl.h +++ b/src/libigl/igl/opengl/gl.h diff --git a/src/igl/opengl/gl_type_size.cpp b/src/libigl/igl/opengl/gl_type_size.cpp index 0fd02bf05..0fd02bf05 100644 --- a/src/igl/opengl/gl_type_size.cpp +++ b/src/libigl/igl/opengl/gl_type_size.cpp diff --git a/src/igl/opengl/gl_type_size.h b/src/libigl/igl/opengl/gl_type_size.h index a74119549..a74119549 100644 --- a/src/igl/opengl/gl_type_size.h +++ b/src/libigl/igl/opengl/gl_type_size.h diff --git a/src/igl/opengl/glfw/Viewer.cpp b/src/libigl/igl/opengl/glfw/Viewer.cpp index 76d1604a0..76d1604a0 100644 --- a/src/igl/opengl/glfw/Viewer.cpp +++ b/src/libigl/igl/opengl/glfw/Viewer.cpp diff --git a/src/igl/opengl/glfw/Viewer.h b/src/libigl/igl/opengl/glfw/Viewer.h index 35aa7dfa2..35aa7dfa2 100644 --- a/src/igl/opengl/glfw/Viewer.h +++ b/src/libigl/igl/opengl/glfw/Viewer.h diff --git a/src/igl/opengl/glfw/ViewerPlugin.h b/src/libigl/igl/opengl/glfw/ViewerPlugin.h index 9ba7903a8..9ba7903a8 100644 --- a/src/igl/opengl/glfw/ViewerPlugin.h +++ b/src/libigl/igl/opengl/glfw/ViewerPlugin.h diff --git a/src/igl/opengl/glfw/background_window.cpp b/src/libigl/igl/opengl/glfw/background_window.cpp index 964202cc2..964202cc2 100644 --- a/src/igl/opengl/glfw/background_window.cpp +++ b/src/libigl/igl/opengl/glfw/background_window.cpp diff --git a/src/igl/opengl/glfw/background_window.h b/src/libigl/igl/opengl/glfw/background_window.h index a37515b89..a37515b89 100644 --- a/src/igl/opengl/glfw/background_window.h +++ b/src/libigl/igl/opengl/glfw/background_window.h diff --git a/src/igl/opengl/glfw/imgui/ImGuiHelpers.h b/src/libigl/igl/opengl/glfw/imgui/ImGuiHelpers.h index 892274b0f..892274b0f 100644 --- a/src/igl/opengl/glfw/imgui/ImGuiHelpers.h +++ b/src/libigl/igl/opengl/glfw/imgui/ImGuiHelpers.h diff --git a/src/igl/opengl/glfw/imgui/ImGuiMenu.cpp b/src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.cpp index 627e055cb..627e055cb 100644 --- a/src/igl/opengl/glfw/imgui/ImGuiMenu.cpp +++ b/src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.cpp diff --git a/src/igl/opengl/glfw/imgui/ImGuiMenu.h b/src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.h index e7144a675..e7144a675 100644 --- a/src/igl/opengl/glfw/imgui/ImGuiMenu.h +++ b/src/libigl/igl/opengl/glfw/imgui/ImGuiMenu.h diff --git a/src/igl/opengl/glfw/map_texture.cpp b/src/libigl/igl/opengl/glfw/map_texture.cpp index 7975d87d4..7975d87d4 100644 --- a/src/igl/opengl/glfw/map_texture.cpp +++ b/src/libigl/igl/opengl/glfw/map_texture.cpp diff --git a/src/igl/opengl/glfw/map_texture.h b/src/libigl/igl/opengl/glfw/map_texture.h index ee3b30a45..ee3b30a45 100644 --- a/src/igl/opengl/glfw/map_texture.h +++ b/src/libigl/igl/opengl/glfw/map_texture.h diff --git a/src/igl/opengl/init_render_to_texture.cpp b/src/libigl/igl/opengl/init_render_to_texture.cpp index 7fbcfea10..7fbcfea10 100644 --- a/src/igl/opengl/init_render_to_texture.cpp +++ b/src/libigl/igl/opengl/init_render_to_texture.cpp diff --git a/src/igl/opengl/init_render_to_texture.h b/src/libigl/igl/opengl/init_render_to_texture.h index ae854e770..ae854e770 100644 --- a/src/igl/opengl/init_render_to_texture.h +++ b/src/libigl/igl/opengl/init_render_to_texture.h diff --git a/src/igl/opengl/load_shader.cpp b/src/libigl/igl/opengl/load_shader.cpp index 0ee0a978f..0ee0a978f 100644 --- a/src/igl/opengl/load_shader.cpp +++ b/src/libigl/igl/opengl/load_shader.cpp diff --git a/src/igl/opengl/load_shader.h b/src/libigl/igl/opengl/load_shader.h index 6c234d8fc..6c234d8fc 100644 --- a/src/igl/opengl/load_shader.h +++ b/src/libigl/igl/opengl/load_shader.h diff --git a/src/igl/opengl/print_program_info_log.cpp b/src/libigl/igl/opengl/print_program_info_log.cpp index 41b37b7fb..41b37b7fb 100644 --- a/src/igl/opengl/print_program_info_log.cpp +++ b/src/libigl/igl/opengl/print_program_info_log.cpp diff --git a/src/igl/opengl/print_program_info_log.h b/src/libigl/igl/opengl/print_program_info_log.h index 43bcc0974..43bcc0974 100644 --- a/src/igl/opengl/print_program_info_log.h +++ b/src/libigl/igl/opengl/print_program_info_log.h diff --git a/src/igl/opengl/print_shader_info_log.cpp b/src/libigl/igl/opengl/print_shader_info_log.cpp index 2d3554387..2d3554387 100644 --- a/src/igl/opengl/print_shader_info_log.cpp +++ b/src/libigl/igl/opengl/print_shader_info_log.cpp diff --git a/src/igl/opengl/print_shader_info_log.h b/src/libigl/igl/opengl/print_shader_info_log.h index 5a571fb11..5a571fb11 100644 --- a/src/igl/opengl/print_shader_info_log.h +++ b/src/libigl/igl/opengl/print_shader_info_log.h diff --git a/src/igl/opengl/report_gl_error.cpp b/src/libigl/igl/opengl/report_gl_error.cpp index 2dcc0b632..2dcc0b632 100644 --- a/src/igl/opengl/report_gl_error.cpp +++ b/src/libigl/igl/opengl/report_gl_error.cpp diff --git a/src/igl/opengl/report_gl_error.h b/src/libigl/igl/opengl/report_gl_error.h index 70e5c7d74..70e5c7d74 100644 --- a/src/igl/opengl/report_gl_error.h +++ b/src/libigl/igl/opengl/report_gl_error.h diff --git a/src/igl/opengl/uniform_type_to_string.cpp b/src/libigl/igl/opengl/uniform_type_to_string.cpp index b2f9a2fdb..b2f9a2fdb 100644 --- a/src/igl/opengl/uniform_type_to_string.cpp +++ b/src/libigl/igl/opengl/uniform_type_to_string.cpp diff --git a/src/igl/opengl/uniform_type_to_string.h b/src/libigl/igl/opengl/uniform_type_to_string.h index ed0a93e90..ed0a93e90 100644 --- a/src/igl/opengl/uniform_type_to_string.h +++ b/src/libigl/igl/opengl/uniform_type_to_string.h diff --git a/src/igl/opengl/vertex_array.cpp b/src/libigl/igl/opengl/vertex_array.cpp index c07113ad3..c07113ad3 100644 --- a/src/igl/opengl/vertex_array.cpp +++ b/src/libigl/igl/opengl/vertex_array.cpp diff --git a/src/igl/opengl/vertex_array.h b/src/libigl/igl/opengl/vertex_array.h index 1342a9c90..1342a9c90 100644 --- a/src/igl/opengl/vertex_array.h +++ b/src/libigl/igl/opengl/vertex_array.h diff --git a/src/igl/opengl2/MouseController.h b/src/libigl/igl/opengl2/MouseController.h index eb38802ad..eb38802ad 100644 --- a/src/igl/opengl2/MouseController.h +++ b/src/libigl/igl/opengl2/MouseController.h diff --git a/src/igl/opengl2/RotateWidget.h b/src/libigl/igl/opengl2/RotateWidget.h index f2900979a..f2900979a 100644 --- a/src/igl/opengl2/RotateWidget.h +++ b/src/libigl/igl/opengl2/RotateWidget.h diff --git a/src/igl/opengl2/TranslateWidget.h b/src/libigl/igl/opengl2/TranslateWidget.h index 7ab06e228..7ab06e228 100644 --- a/src/igl/opengl2/TranslateWidget.h +++ b/src/libigl/igl/opengl2/TranslateWidget.h diff --git a/src/igl/opengl2/draw_beach_ball.cpp b/src/libigl/igl/opengl2/draw_beach_ball.cpp index a661ce4ae..a661ce4ae 100644 --- a/src/igl/opengl2/draw_beach_ball.cpp +++ b/src/libigl/igl/opengl2/draw_beach_ball.cpp diff --git a/src/igl/opengl2/draw_beach_ball.h b/src/libigl/igl/opengl2/draw_beach_ball.h index d430dc5ed..d430dc5ed 100644 --- a/src/igl/opengl2/draw_beach_ball.h +++ b/src/libigl/igl/opengl2/draw_beach_ball.h diff --git a/src/igl/opengl2/draw_floor.cpp b/src/libigl/igl/opengl2/draw_floor.cpp index 61fa47491..61fa47491 100644 --- a/src/igl/opengl2/draw_floor.cpp +++ b/src/libigl/igl/opengl2/draw_floor.cpp diff --git a/src/igl/opengl2/draw_floor.h b/src/libigl/igl/opengl2/draw_floor.h index 3f06fa9b0..3f06fa9b0 100644 --- a/src/igl/opengl2/draw_floor.h +++ b/src/libigl/igl/opengl2/draw_floor.h diff --git a/src/igl/opengl2/draw_mesh.cpp b/src/libigl/igl/opengl2/draw_mesh.cpp index aeaed12f0..aeaed12f0 100644 --- a/src/igl/opengl2/draw_mesh.cpp +++ b/src/libigl/igl/opengl2/draw_mesh.cpp diff --git a/src/igl/opengl2/draw_mesh.h b/src/libigl/igl/opengl2/draw_mesh.h index ea1559c20..ea1559c20 100644 --- a/src/igl/opengl2/draw_mesh.h +++ b/src/libigl/igl/opengl2/draw_mesh.h diff --git a/src/igl/opengl2/draw_point.cpp b/src/libigl/igl/opengl2/draw_point.cpp index 910fcc716..910fcc716 100644 --- a/src/igl/opengl2/draw_point.cpp +++ b/src/libigl/igl/opengl2/draw_point.cpp diff --git a/src/igl/opengl2/draw_point.h b/src/libigl/igl/opengl2/draw_point.h index 2c7cc1c7d..2c7cc1c7d 100644 --- a/src/igl/opengl2/draw_point.h +++ b/src/libigl/igl/opengl2/draw_point.h diff --git a/src/igl/opengl2/draw_rectangular_marquee.cpp b/src/libigl/igl/opengl2/draw_rectangular_marquee.cpp index 73f97c844..73f97c844 100644 --- a/src/igl/opengl2/draw_rectangular_marquee.cpp +++ b/src/libigl/igl/opengl2/draw_rectangular_marquee.cpp diff --git a/src/igl/opengl2/draw_rectangular_marquee.h b/src/libigl/igl/opengl2/draw_rectangular_marquee.h index bbb2e3f18..bbb2e3f18 100644 --- a/src/igl/opengl2/draw_rectangular_marquee.h +++ b/src/libigl/igl/opengl2/draw_rectangular_marquee.h diff --git a/src/igl/opengl2/draw_skeleton_3d.cpp b/src/libigl/igl/opengl2/draw_skeleton_3d.cpp index a0ca6139a..a0ca6139a 100644 --- a/src/igl/opengl2/draw_skeleton_3d.cpp +++ b/src/libigl/igl/opengl2/draw_skeleton_3d.cpp diff --git a/src/igl/opengl2/draw_skeleton_3d.h b/src/libigl/igl/opengl2/draw_skeleton_3d.h index 7bbb59717..7bbb59717 100644 --- a/src/igl/opengl2/draw_skeleton_3d.h +++ b/src/libigl/igl/opengl2/draw_skeleton_3d.h diff --git a/src/igl/opengl2/draw_skeleton_vector_graphics.cpp b/src/libigl/igl/opengl2/draw_skeleton_vector_graphics.cpp index e45706120..e45706120 100644 --- a/src/igl/opengl2/draw_skeleton_vector_graphics.cpp +++ b/src/libigl/igl/opengl2/draw_skeleton_vector_graphics.cpp diff --git a/src/igl/opengl2/draw_skeleton_vector_graphics.h b/src/libigl/igl/opengl2/draw_skeleton_vector_graphics.h index 8091cbb78..8091cbb78 100644 --- a/src/igl/opengl2/draw_skeleton_vector_graphics.h +++ b/src/libigl/igl/opengl2/draw_skeleton_vector_graphics.h diff --git a/src/igl/opengl2/flare_textures.h b/src/libigl/igl/opengl2/flare_textures.h index 0455195eb..0455195eb 100644 --- a/src/igl/opengl2/flare_textures.h +++ b/src/libigl/igl/opengl2/flare_textures.h diff --git a/src/igl/opengl2/gl.h b/src/libigl/igl/opengl2/gl.h index 7147c9289..7147c9289 100644 --- a/src/igl/opengl2/gl.h +++ b/src/libigl/igl/opengl2/gl.h diff --git a/src/igl/opengl2/glext.h b/src/libigl/igl/opengl2/glext.h index 78ff45fea..78ff45fea 100644 --- a/src/igl/opengl2/glext.h +++ b/src/libigl/igl/opengl2/glext.h diff --git a/src/igl/opengl2/glu.h b/src/libigl/igl/opengl2/glu.h index d4ab5e16c..d4ab5e16c 100644 --- a/src/igl/opengl2/glu.h +++ b/src/libigl/igl/opengl2/glu.h diff --git a/src/igl/opengl2/lens_flare.cpp b/src/libigl/igl/opengl2/lens_flare.cpp index c99f634c8..c99f634c8 100644 --- a/src/igl/opengl2/lens_flare.cpp +++ b/src/libigl/igl/opengl2/lens_flare.cpp diff --git a/src/igl/opengl2/lens_flare.h b/src/libigl/igl/opengl2/lens_flare.h index 280c27b69..280c27b69 100644 --- a/src/igl/opengl2/lens_flare.h +++ b/src/libigl/igl/opengl2/lens_flare.h diff --git a/src/igl/opengl2/model_proj_viewport.cpp b/src/libigl/igl/opengl2/model_proj_viewport.cpp index 9fec32a49..9fec32a49 100644 --- a/src/igl/opengl2/model_proj_viewport.cpp +++ b/src/libigl/igl/opengl2/model_proj_viewport.cpp diff --git a/src/igl/opengl2/model_proj_viewport.h b/src/libigl/igl/opengl2/model_proj_viewport.h index 025247ae7..025247ae7 100644 --- a/src/igl/opengl2/model_proj_viewport.h +++ b/src/libigl/igl/opengl2/model_proj_viewport.h diff --git a/src/igl/opengl2/print_gl_get.cpp b/src/libigl/igl/opengl2/print_gl_get.cpp index 7182dc558..7182dc558 100644 --- a/src/igl/opengl2/print_gl_get.cpp +++ b/src/libigl/igl/opengl2/print_gl_get.cpp diff --git a/src/igl/opengl2/print_gl_get.h b/src/libigl/igl/opengl2/print_gl_get.h index 0db5298e9..0db5298e9 100644 --- a/src/igl/opengl2/print_gl_get.h +++ b/src/libigl/igl/opengl2/print_gl_get.h diff --git a/src/igl/opengl2/project.cpp b/src/libigl/igl/opengl2/project.cpp index a953197b7..a953197b7 100644 --- a/src/igl/opengl2/project.cpp +++ b/src/libigl/igl/opengl2/project.cpp diff --git a/src/igl/opengl2/project.h b/src/libigl/igl/opengl2/project.h index befd09007..befd09007 100644 --- a/src/igl/opengl2/project.h +++ b/src/libigl/igl/opengl2/project.h diff --git a/src/igl/opengl2/right_axis.cpp b/src/libigl/igl/opengl2/right_axis.cpp index a0b905176..a0b905176 100644 --- a/src/igl/opengl2/right_axis.cpp +++ b/src/libigl/igl/opengl2/right_axis.cpp diff --git a/src/igl/opengl2/right_axis.h b/src/libigl/igl/opengl2/right_axis.h index 4e6787cdd..4e6787cdd 100644 --- a/src/igl/opengl2/right_axis.h +++ b/src/libigl/igl/opengl2/right_axis.h diff --git a/src/igl/opengl2/shine_textures.h b/src/libigl/igl/opengl2/shine_textures.h index 05001989d..05001989d 100644 --- a/src/igl/opengl2/shine_textures.h +++ b/src/libigl/igl/opengl2/shine_textures.h diff --git a/src/igl/opengl2/sort_triangles.cpp b/src/libigl/igl/opengl2/sort_triangles.cpp index ae9671099..ae9671099 100644 --- a/src/igl/opengl2/sort_triangles.cpp +++ b/src/libigl/igl/opengl2/sort_triangles.cpp diff --git a/src/igl/opengl2/sort_triangles.h b/src/libigl/igl/opengl2/sort_triangles.h index 53fd3e809..53fd3e809 100644 --- a/src/igl/opengl2/sort_triangles.h +++ b/src/libigl/igl/opengl2/sort_triangles.h diff --git a/src/igl/opengl2/unproject.cpp b/src/libigl/igl/opengl2/unproject.cpp index f6b0013fe..f6b0013fe 100644 --- a/src/igl/opengl2/unproject.cpp +++ b/src/libigl/igl/opengl2/unproject.cpp diff --git a/src/igl/opengl2/unproject.h b/src/libigl/igl/opengl2/unproject.h index 00de13077..00de13077 100644 --- a/src/igl/opengl2/unproject.h +++ b/src/libigl/igl/opengl2/unproject.h diff --git a/src/igl/opengl2/unproject_to_zero_plane.cpp b/src/libigl/igl/opengl2/unproject_to_zero_plane.cpp index 1c2945886..1c2945886 100644 --- a/src/igl/opengl2/unproject_to_zero_plane.cpp +++ b/src/libigl/igl/opengl2/unproject_to_zero_plane.cpp diff --git a/src/igl/opengl2/unproject_to_zero_plane.h b/src/libigl/igl/opengl2/unproject_to_zero_plane.h index d76337e20..d76337e20 100644 --- a/src/igl/opengl2/unproject_to_zero_plane.h +++ b/src/libigl/igl/opengl2/unproject_to_zero_plane.h diff --git a/src/igl/opengl2/up_axis.cpp b/src/libigl/igl/opengl2/up_axis.cpp index c6b3c02a0..c6b3c02a0 100644 --- a/src/igl/opengl2/up_axis.cpp +++ b/src/libigl/igl/opengl2/up_axis.cpp diff --git a/src/igl/opengl2/up_axis.h b/src/libigl/igl/opengl2/up_axis.h index 2c042fb2c..2c042fb2c 100644 --- a/src/igl/opengl2/up_axis.h +++ b/src/libigl/igl/opengl2/up_axis.h diff --git a/src/igl/opengl2/view_axis.cpp b/src/libigl/igl/opengl2/view_axis.cpp index 5145cd207..5145cd207 100644 --- a/src/igl/opengl2/view_axis.cpp +++ b/src/libigl/igl/opengl2/view_axis.cpp diff --git a/src/igl/opengl2/view_axis.h b/src/libigl/igl/opengl2/view_axis.h index ab324cbad..ab324cbad 100644 --- a/src/igl/opengl2/view_axis.h +++ b/src/libigl/igl/opengl2/view_axis.h diff --git a/src/igl/orient_outward.cpp b/src/libigl/igl/orient_outward.cpp index 522745bc4..522745bc4 100644 --- a/src/igl/orient_outward.cpp +++ b/src/libigl/igl/orient_outward.cpp diff --git a/src/igl/orient_outward.h b/src/libigl/igl/orient_outward.h index 197c8b950..197c8b950 100644 --- a/src/igl/orient_outward.h +++ b/src/libigl/igl/orient_outward.h diff --git a/src/igl/orientable_patches.cpp b/src/libigl/igl/orientable_patches.cpp index fa2ea1bd4..fa2ea1bd4 100644 --- a/src/igl/orientable_patches.cpp +++ b/src/libigl/igl/orientable_patches.cpp diff --git a/src/igl/orientable_patches.h b/src/libigl/igl/orientable_patches.h index a74284ac5..a74284ac5 100644 --- a/src/igl/orientable_patches.h +++ b/src/libigl/igl/orientable_patches.h diff --git a/src/igl/oriented_facets.cpp b/src/libigl/igl/oriented_facets.cpp index 722679335..722679335 100644 --- a/src/igl/oriented_facets.cpp +++ b/src/libigl/igl/oriented_facets.cpp diff --git a/src/igl/oriented_facets.h b/src/libigl/igl/oriented_facets.h index b0a66ef08..b0a66ef08 100644 --- a/src/igl/oriented_facets.h +++ b/src/libigl/igl/oriented_facets.h diff --git a/src/igl/orth.cpp b/src/libigl/igl/orth.cpp index 467a4993e..467a4993e 100644 --- a/src/igl/orth.cpp +++ b/src/libigl/igl/orth.cpp diff --git a/src/igl/orth.h b/src/libigl/igl/orth.h index a77cd6593..a77cd6593 100644 --- a/src/igl/orth.h +++ b/src/libigl/igl/orth.h diff --git a/src/igl/ortho.cpp b/src/libigl/igl/ortho.cpp index e634eed74..e634eed74 100644 --- a/src/igl/ortho.cpp +++ b/src/libigl/igl/ortho.cpp diff --git a/src/igl/ortho.h b/src/libigl/igl/ortho.h index 70b9cab4d..70b9cab4d 100644 --- a/src/igl/ortho.h +++ b/src/libigl/igl/ortho.h diff --git a/src/igl/outer_element.cpp b/src/libigl/igl/outer_element.cpp index 2ce837780..2ce837780 100644 --- a/src/igl/outer_element.cpp +++ b/src/libigl/igl/outer_element.cpp diff --git a/src/igl/outer_element.h b/src/libigl/igl/outer_element.h index 6fbaf9c5d..6fbaf9c5d 100644 --- a/src/igl/outer_element.h +++ b/src/libigl/igl/outer_element.h diff --git a/src/igl/parallel_for.h b/src/libigl/igl/parallel_for.h index 458adace5..458adace5 100644 --- a/src/igl/parallel_for.h +++ b/src/libigl/igl/parallel_for.h diff --git a/src/igl/parallel_transport_angles.cpp b/src/libigl/igl/parallel_transport_angles.cpp index 0e3803df2..0e3803df2 100644 --- a/src/igl/parallel_transport_angles.cpp +++ b/src/libigl/igl/parallel_transport_angles.cpp diff --git a/src/igl/parallel_transport_angles.h b/src/libigl/igl/parallel_transport_angles.h index e37d7f373..e37d7f373 100644 --- a/src/igl/parallel_transport_angles.h +++ b/src/libigl/igl/parallel_transport_angles.h diff --git a/src/igl/partition.cpp b/src/libigl/igl/partition.cpp index d2ef34c94..d2ef34c94 100644 --- a/src/igl/partition.cpp +++ b/src/libigl/igl/partition.cpp diff --git a/src/igl/partition.h b/src/libigl/igl/partition.h index 167ebd0d7..167ebd0d7 100644 --- a/src/igl/partition.h +++ b/src/libigl/igl/partition.h diff --git a/src/igl/parula.cpp b/src/libigl/igl/parula.cpp index b3daaa5e7..b3daaa5e7 100644 --- a/src/igl/parula.cpp +++ b/src/libigl/igl/parula.cpp diff --git a/src/igl/parula.h b/src/libigl/igl/parula.h index 55cbd447f..55cbd447f 100644 --- a/src/igl/parula.h +++ b/src/libigl/igl/parula.h diff --git a/src/igl/path_to_executable.cpp b/src/libigl/igl/path_to_executable.cpp index 509a763d6..509a763d6 100644 --- a/src/igl/path_to_executable.cpp +++ b/src/libigl/igl/path_to_executable.cpp diff --git a/src/igl/path_to_executable.h b/src/libigl/igl/path_to_executable.h index 169c3400b..169c3400b 100644 --- a/src/igl/path_to_executable.h +++ b/src/libigl/igl/path_to_executable.h diff --git a/src/igl/pathinfo.cpp b/src/libigl/igl/pathinfo.cpp index 110535cd8..110535cd8 100644 --- a/src/igl/pathinfo.cpp +++ b/src/libigl/igl/pathinfo.cpp diff --git a/src/igl/pathinfo.h b/src/libigl/igl/pathinfo.h index b59e48157..b59e48157 100644 --- a/src/igl/pathinfo.h +++ b/src/libigl/igl/pathinfo.h diff --git a/src/igl/per_corner_normals.cpp b/src/libigl/igl/per_corner_normals.cpp index 5d2aa6aff..5d2aa6aff 100644 --- a/src/igl/per_corner_normals.cpp +++ b/src/libigl/igl/per_corner_normals.cpp diff --git a/src/igl/per_corner_normals.h b/src/libigl/igl/per_corner_normals.h index f93f7eb46..f93f7eb46 100644 --- a/src/igl/per_corner_normals.h +++ b/src/libigl/igl/per_corner_normals.h diff --git a/src/igl/per_edge_normals.cpp b/src/libigl/igl/per_edge_normals.cpp index 8aa71791d..8aa71791d 100644 --- a/src/igl/per_edge_normals.cpp +++ b/src/libigl/igl/per_edge_normals.cpp diff --git a/src/igl/per_edge_normals.h b/src/libigl/igl/per_edge_normals.h index b40d72976..b40d72976 100644 --- a/src/igl/per_edge_normals.h +++ b/src/libigl/igl/per_edge_normals.h diff --git a/src/igl/per_face_normals.cpp b/src/libigl/igl/per_face_normals.cpp index d3de7ff95..d3de7ff95 100644 --- a/src/igl/per_face_normals.cpp +++ b/src/libigl/igl/per_face_normals.cpp diff --git a/src/igl/per_face_normals.h b/src/libigl/igl/per_face_normals.h index 220e5e9a6..220e5e9a6 100644 --- a/src/igl/per_face_normals.h +++ b/src/libigl/igl/per_face_normals.h diff --git a/src/igl/per_vertex_attribute_smoothing.cpp b/src/libigl/igl/per_vertex_attribute_smoothing.cpp index ecf2b4e82..ecf2b4e82 100644 --- a/src/igl/per_vertex_attribute_smoothing.cpp +++ b/src/libigl/igl/per_vertex_attribute_smoothing.cpp diff --git a/src/igl/per_vertex_attribute_smoothing.h b/src/libigl/igl/per_vertex_attribute_smoothing.h index 662810236..662810236 100644 --- a/src/igl/per_vertex_attribute_smoothing.h +++ b/src/libigl/igl/per_vertex_attribute_smoothing.h diff --git a/src/igl/per_vertex_normals.cpp b/src/libigl/igl/per_vertex_normals.cpp index c3bbda193..c3bbda193 100644 --- a/src/igl/per_vertex_normals.cpp +++ b/src/libigl/igl/per_vertex_normals.cpp diff --git a/src/igl/per_vertex_normals.h b/src/libigl/igl/per_vertex_normals.h index be4ba0461..be4ba0461 100644 --- a/src/igl/per_vertex_normals.h +++ b/src/libigl/igl/per_vertex_normals.h diff --git a/src/igl/per_vertex_point_to_plane_quadrics.cpp b/src/libigl/igl/per_vertex_point_to_plane_quadrics.cpp index 6d1be71b0..6d1be71b0 100644 --- a/src/igl/per_vertex_point_to_plane_quadrics.cpp +++ b/src/libigl/igl/per_vertex_point_to_plane_quadrics.cpp diff --git a/src/igl/per_vertex_point_to_plane_quadrics.h b/src/libigl/igl/per_vertex_point_to_plane_quadrics.h index 3e9eb3abf..3e9eb3abf 100644 --- a/src/igl/per_vertex_point_to_plane_quadrics.h +++ b/src/libigl/igl/per_vertex_point_to_plane_quadrics.h diff --git a/src/igl/piecewise_constant_winding_number.cpp b/src/libigl/igl/piecewise_constant_winding_number.cpp index 4bf7d76f8..4bf7d76f8 100644 --- a/src/igl/piecewise_constant_winding_number.cpp +++ b/src/libigl/igl/piecewise_constant_winding_number.cpp diff --git a/src/igl/piecewise_constant_winding_number.h b/src/libigl/igl/piecewise_constant_winding_number.h index ebbeb6e98..ebbeb6e98 100644 --- a/src/igl/piecewise_constant_winding_number.h +++ b/src/libigl/igl/piecewise_constant_winding_number.h diff --git a/src/igl/pinv.cpp b/src/libigl/igl/pinv.cpp index acf6a1913..acf6a1913 100644 --- a/src/igl/pinv.cpp +++ b/src/libigl/igl/pinv.cpp diff --git a/src/igl/pinv.h b/src/libigl/igl/pinv.h index 045a17da2..045a17da2 100644 --- a/src/igl/pinv.h +++ b/src/libigl/igl/pinv.h diff --git a/src/igl/planarize_quad_mesh.cpp b/src/libigl/igl/planarize_quad_mesh.cpp index d3c06be62..d3c06be62 100644 --- a/src/igl/planarize_quad_mesh.cpp +++ b/src/libigl/igl/planarize_quad_mesh.cpp diff --git a/src/igl/planarize_quad_mesh.h b/src/libigl/igl/planarize_quad_mesh.h index 0de7bf389..0de7bf389 100644 --- a/src/igl/planarize_quad_mesh.h +++ b/src/libigl/igl/planarize_quad_mesh.h diff --git a/src/igl/ply.h b/src/libigl/igl/ply.h index 60f2b29de..60f2b29de 100644 --- a/src/igl/ply.h +++ b/src/libigl/igl/ply.h diff --git a/src/igl/png/readPNG.cpp b/src/libigl/igl/png/readPNG.cpp index 8d42ad8d9..8d42ad8d9 100644 --- a/src/igl/png/readPNG.cpp +++ b/src/libigl/igl/png/readPNG.cpp diff --git a/src/igl/png/readPNG.h b/src/libigl/igl/png/readPNG.h index 65adf2c6c..65adf2c6c 100644 --- a/src/igl/png/readPNG.h +++ b/src/libigl/igl/png/readPNG.h diff --git a/src/igl/png/render_to_png.cpp b/src/libigl/igl/png/render_to_png.cpp index 6533ad9ab..6533ad9ab 100644 --- a/src/igl/png/render_to_png.cpp +++ b/src/libigl/igl/png/render_to_png.cpp diff --git a/src/igl/png/render_to_png.h b/src/libigl/igl/png/render_to_png.h index 508e12b1f..508e12b1f 100644 --- a/src/igl/png/render_to_png.h +++ b/src/libigl/igl/png/render_to_png.h diff --git a/src/igl/png/render_to_png_async.cpp b/src/libigl/igl/png/render_to_png_async.cpp index 033701e63..033701e63 100644 --- a/src/igl/png/render_to_png_async.cpp +++ b/src/libigl/igl/png/render_to_png_async.cpp diff --git a/src/igl/png/render_to_png_async.h b/src/libigl/igl/png/render_to_png_async.h index c4ac07c64..c4ac07c64 100644 --- a/src/igl/png/render_to_png_async.h +++ b/src/libigl/igl/png/render_to_png_async.h diff --git a/src/igl/png/texture_from_file.cpp b/src/libigl/igl/png/texture_from_file.cpp index 60e8c795c..60e8c795c 100644 --- a/src/igl/png/texture_from_file.cpp +++ b/src/libigl/igl/png/texture_from_file.cpp diff --git a/src/igl/png/texture_from_file.h b/src/libigl/igl/png/texture_from_file.h index 8852d101e..8852d101e 100644 --- a/src/igl/png/texture_from_file.h +++ b/src/libigl/igl/png/texture_from_file.h diff --git a/src/igl/png/texture_from_png.cpp b/src/libigl/igl/png/texture_from_png.cpp index fde3c002c..fde3c002c 100644 --- a/src/igl/png/texture_from_png.cpp +++ b/src/libigl/igl/png/texture_from_png.cpp diff --git a/src/igl/png/texture_from_png.h b/src/libigl/igl/png/texture_from_png.h index db8c1988e..db8c1988e 100644 --- a/src/igl/png/texture_from_png.h +++ b/src/libigl/igl/png/texture_from_png.h diff --git a/src/igl/png/writePNG.cpp b/src/libigl/igl/png/writePNG.cpp index 9ab68d775..9ab68d775 100644 --- a/src/igl/png/writePNG.cpp +++ b/src/libigl/igl/png/writePNG.cpp diff --git a/src/igl/png/writePNG.h b/src/libigl/igl/png/writePNG.h index b0623249f..b0623249f 100644 --- a/src/igl/png/writePNG.h +++ b/src/libigl/igl/png/writePNG.h diff --git a/src/igl/point_in_circle.cpp b/src/libigl/igl/point_in_circle.cpp index 9c26d8c0d..9c26d8c0d 100644 --- a/src/igl/point_in_circle.cpp +++ b/src/libigl/igl/point_in_circle.cpp diff --git a/src/igl/point_in_circle.h b/src/libigl/igl/point_in_circle.h index f19344c40..f19344c40 100644 --- a/src/igl/point_in_circle.h +++ b/src/libigl/igl/point_in_circle.h diff --git a/src/igl/point_in_poly.cpp b/src/libigl/igl/point_in_poly.cpp index f0b07edf9..f0b07edf9 100644 --- a/src/igl/point_in_poly.cpp +++ b/src/libigl/igl/point_in_poly.cpp diff --git a/src/igl/point_in_poly.h b/src/libigl/igl/point_in_poly.h index 2b9c6e51b..2b9c6e51b 100644 --- a/src/igl/point_in_poly.h +++ b/src/libigl/igl/point_in_poly.h diff --git a/src/igl/point_mesh_squared_distance.cpp b/src/libigl/igl/point_mesh_squared_distance.cpp index 57dd9aa14..57dd9aa14 100644 --- a/src/igl/point_mesh_squared_distance.cpp +++ b/src/libigl/igl/point_mesh_squared_distance.cpp diff --git a/src/igl/point_mesh_squared_distance.h b/src/libigl/igl/point_mesh_squared_distance.h index 0635288a3..0635288a3 100644 --- a/src/igl/point_mesh_squared_distance.h +++ b/src/libigl/igl/point_mesh_squared_distance.h diff --git a/src/igl/point_simplex_squared_distance.cpp b/src/libigl/igl/point_simplex_squared_distance.cpp index e2bc34d28..e2bc34d28 100644 --- a/src/igl/point_simplex_squared_distance.cpp +++ b/src/libigl/igl/point_simplex_squared_distance.cpp diff --git a/src/igl/point_simplex_squared_distance.h b/src/libigl/igl/point_simplex_squared_distance.h index 0cc871cf0..0cc871cf0 100644 --- a/src/igl/point_simplex_squared_distance.h +++ b/src/libigl/igl/point_simplex_squared_distance.h diff --git a/src/igl/polar_dec.cpp b/src/libigl/igl/polar_dec.cpp index cdd358a07..cdd358a07 100644 --- a/src/igl/polar_dec.cpp +++ b/src/libigl/igl/polar_dec.cpp diff --git a/src/igl/polar_dec.h b/src/libigl/igl/polar_dec.h index 2b995eabe..2b995eabe 100644 --- a/src/igl/polar_dec.h +++ b/src/libigl/igl/polar_dec.h diff --git a/src/igl/polar_svd.cpp b/src/libigl/igl/polar_svd.cpp index 962a754fb..962a754fb 100644 --- a/src/igl/polar_svd.cpp +++ b/src/libigl/igl/polar_svd.cpp diff --git a/src/igl/polar_svd.h b/src/libigl/igl/polar_svd.h index 13d3f3873..13d3f3873 100644 --- a/src/igl/polar_svd.h +++ b/src/libigl/igl/polar_svd.h diff --git a/src/igl/polar_svd3x3.cpp b/src/libigl/igl/polar_svd3x3.cpp index c0d972aca..c0d972aca 100644 --- a/src/igl/polar_svd3x3.cpp +++ b/src/libigl/igl/polar_svd3x3.cpp diff --git a/src/igl/polar_svd3x3.h b/src/libigl/igl/polar_svd3x3.h index a579774e0..a579774e0 100644 --- a/src/igl/polar_svd3x3.h +++ b/src/libigl/igl/polar_svd3x3.h diff --git a/src/igl/polygon_mesh_to_triangle_mesh.cpp b/src/libigl/igl/polygon_mesh_to_triangle_mesh.cpp index 2ea43238b..2ea43238b 100644 --- a/src/igl/polygon_mesh_to_triangle_mesh.cpp +++ b/src/libigl/igl/polygon_mesh_to_triangle_mesh.cpp diff --git a/src/igl/polygon_mesh_to_triangle_mesh.h b/src/libigl/igl/polygon_mesh_to_triangle_mesh.h index 7d8f16e82..7d8f16e82 100644 --- a/src/igl/polygon_mesh_to_triangle_mesh.h +++ b/src/libigl/igl/polygon_mesh_to_triangle_mesh.h diff --git a/src/igl/principal_curvature.cpp b/src/libigl/igl/principal_curvature.cpp index 5712130a0..5712130a0 100644 --- a/src/igl/principal_curvature.cpp +++ b/src/libigl/igl/principal_curvature.cpp diff --git a/src/igl/principal_curvature.h b/src/libigl/igl/principal_curvature.h index 958e58418..958e58418 100644 --- a/src/igl/principal_curvature.h +++ b/src/libigl/igl/principal_curvature.h diff --git a/src/igl/print_ijv.cpp b/src/libigl/igl/print_ijv.cpp index 38b1dd22a..38b1dd22a 100644 --- a/src/igl/print_ijv.cpp +++ b/src/libigl/igl/print_ijv.cpp diff --git a/src/igl/print_ijv.h b/src/libigl/igl/print_ijv.h index e45c1a76c..e45c1a76c 100644 --- a/src/igl/print_ijv.h +++ b/src/libigl/igl/print_ijv.h diff --git a/src/igl/print_vector.cpp b/src/libigl/igl/print_vector.cpp index b47753216..b47753216 100644 --- a/src/igl/print_vector.cpp +++ b/src/libigl/igl/print_vector.cpp diff --git a/src/igl/print_vector.h b/src/libigl/igl/print_vector.h index ab2dd018c..ab2dd018c 100644 --- a/src/igl/print_vector.h +++ b/src/libigl/igl/print_vector.h diff --git a/src/igl/procrustes.cpp b/src/libigl/igl/procrustes.cpp index 659eea340..659eea340 100644 --- a/src/igl/procrustes.cpp +++ b/src/libigl/igl/procrustes.cpp diff --git a/src/igl/procrustes.h b/src/libigl/igl/procrustes.h index 5ce00db49..5ce00db49 100644 --- a/src/igl/procrustes.h +++ b/src/libigl/igl/procrustes.h diff --git a/src/igl/project.cpp b/src/libigl/igl/project.cpp index e57004f3c..e57004f3c 100644 --- a/src/igl/project.cpp +++ b/src/libigl/igl/project.cpp diff --git a/src/igl/project.h b/src/libigl/igl/project.h index e2ee27a15..e2ee27a15 100644 --- a/src/igl/project.h +++ b/src/libigl/igl/project.h diff --git a/src/igl/project_isometrically_to_plane.cpp b/src/libigl/igl/project_isometrically_to_plane.cpp index 537629caa..537629caa 100644 --- a/src/igl/project_isometrically_to_plane.cpp +++ b/src/libigl/igl/project_isometrically_to_plane.cpp diff --git a/src/igl/project_isometrically_to_plane.h b/src/libigl/igl/project_isometrically_to_plane.h index 388f6c307..388f6c307 100644 --- a/src/igl/project_isometrically_to_plane.h +++ b/src/libigl/igl/project_isometrically_to_plane.h diff --git a/src/igl/project_to_line.cpp b/src/libigl/igl/project_to_line.cpp index a7f3a690e..a7f3a690e 100644 --- a/src/igl/project_to_line.cpp +++ b/src/libigl/igl/project_to_line.cpp diff --git a/src/igl/project_to_line.h b/src/libigl/igl/project_to_line.h index d11399a76..d11399a76 100644 --- a/src/igl/project_to_line.h +++ b/src/libigl/igl/project_to_line.h diff --git a/src/igl/project_to_line_segment.cpp b/src/libigl/igl/project_to_line_segment.cpp index 71866fa33..71866fa33 100644 --- a/src/igl/project_to_line_segment.cpp +++ b/src/libigl/igl/project_to_line_segment.cpp diff --git a/src/igl/project_to_line_segment.h b/src/libigl/igl/project_to_line_segment.h index 2fe33f2d4..2fe33f2d4 100644 --- a/src/igl/project_to_line_segment.h +++ b/src/libigl/igl/project_to_line_segment.h diff --git a/src/igl/pseudonormal_test.cpp b/src/libigl/igl/pseudonormal_test.cpp index b56fdf7ba..b56fdf7ba 100644 --- a/src/igl/pseudonormal_test.cpp +++ b/src/libigl/igl/pseudonormal_test.cpp diff --git a/src/igl/pseudonormal_test.h b/src/libigl/igl/pseudonormal_test.h index fc07946fb..fc07946fb 100644 --- a/src/igl/pseudonormal_test.h +++ b/src/libigl/igl/pseudonormal_test.h diff --git a/src/igl/pso.cpp b/src/libigl/igl/pso.cpp index bf24a3a8c..bf24a3a8c 100644 --- a/src/igl/pso.cpp +++ b/src/libigl/igl/pso.cpp diff --git a/src/igl/pso.h b/src/libigl/igl/pso.h index d2a2ccdff..d2a2ccdff 100644 --- a/src/igl/pso.h +++ b/src/libigl/igl/pso.h diff --git a/src/igl/qslim.cpp b/src/libigl/igl/qslim.cpp index e76db5f0b..e76db5f0b 100644 --- a/src/igl/qslim.cpp +++ b/src/libigl/igl/qslim.cpp diff --git a/src/igl/qslim.h b/src/libigl/igl/qslim.h index c1cd9bd44..c1cd9bd44 100644 --- a/src/igl/qslim.h +++ b/src/libigl/igl/qslim.h diff --git a/src/igl/qslim_optimal_collapse_edge_callbacks.cpp b/src/libigl/igl/qslim_optimal_collapse_edge_callbacks.cpp index ff3fbd045..ff3fbd045 100644 --- a/src/igl/qslim_optimal_collapse_edge_callbacks.cpp +++ b/src/libigl/igl/qslim_optimal_collapse_edge_callbacks.cpp diff --git a/src/igl/qslim_optimal_collapse_edge_callbacks.h b/src/libigl/igl/qslim_optimal_collapse_edge_callbacks.h index 2625eadf5..2625eadf5 100644 --- a/src/igl/qslim_optimal_collapse_edge_callbacks.h +++ b/src/libigl/igl/qslim_optimal_collapse_edge_callbacks.h diff --git a/src/igl/quad_planarity.cpp b/src/libigl/igl/quad_planarity.cpp index 2e0e4773e..2e0e4773e 100644 --- a/src/igl/quad_planarity.cpp +++ b/src/libigl/igl/quad_planarity.cpp diff --git a/src/igl/quad_planarity.h b/src/libigl/igl/quad_planarity.h index 0d78b4e35..0d78b4e35 100644 --- a/src/igl/quad_planarity.h +++ b/src/libigl/igl/quad_planarity.h diff --git a/src/igl/quadric_binary_plus_operator.cpp b/src/libigl/igl/quadric_binary_plus_operator.cpp index eb3fd695e..eb3fd695e 100644 --- a/src/igl/quadric_binary_plus_operator.cpp +++ b/src/libigl/igl/quadric_binary_plus_operator.cpp diff --git a/src/igl/quadric_binary_plus_operator.h b/src/libigl/igl/quadric_binary_plus_operator.h index 3c6b845d8..3c6b845d8 100644 --- a/src/igl/quadric_binary_plus_operator.h +++ b/src/libigl/igl/quadric_binary_plus_operator.h diff --git a/src/igl/quat_conjugate.cpp b/src/libigl/igl/quat_conjugate.cpp index 5856ea72d..5856ea72d 100644 --- a/src/igl/quat_conjugate.cpp +++ b/src/libigl/igl/quat_conjugate.cpp diff --git a/src/igl/quat_conjugate.h b/src/libigl/igl/quat_conjugate.h index 32ccb3b5b..32ccb3b5b 100644 --- a/src/igl/quat_conjugate.h +++ b/src/libigl/igl/quat_conjugate.h diff --git a/src/igl/quat_mult.cpp b/src/libigl/igl/quat_mult.cpp index beb7baba5..beb7baba5 100644 --- a/src/igl/quat_mult.cpp +++ b/src/libigl/igl/quat_mult.cpp diff --git a/src/igl/quat_mult.h b/src/libigl/igl/quat_mult.h index 4a7ba654f..4a7ba654f 100644 --- a/src/igl/quat_mult.h +++ b/src/libigl/igl/quat_mult.h diff --git a/src/igl/quat_to_axis_angle.cpp b/src/libigl/igl/quat_to_axis_angle.cpp index 1aa59fad6..1aa59fad6 100644 --- a/src/igl/quat_to_axis_angle.cpp +++ b/src/libigl/igl/quat_to_axis_angle.cpp diff --git a/src/igl/quat_to_axis_angle.h b/src/libigl/igl/quat_to_axis_angle.h index 77ea10e5c..77ea10e5c 100644 --- a/src/igl/quat_to_axis_angle.h +++ b/src/libigl/igl/quat_to_axis_angle.h diff --git a/src/igl/quat_to_mat.cpp b/src/libigl/igl/quat_to_mat.cpp index 22ec07b94..22ec07b94 100644 --- a/src/igl/quat_to_mat.cpp +++ b/src/libigl/igl/quat_to_mat.cpp diff --git a/src/igl/quat_to_mat.h b/src/libigl/igl/quat_to_mat.h index 4291b291e..4291b291e 100644 --- a/src/igl/quat_to_mat.h +++ b/src/libigl/igl/quat_to_mat.h diff --git a/src/igl/quats_to_column.cpp b/src/libigl/igl/quats_to_column.cpp index a4a88a666..a4a88a666 100644 --- a/src/igl/quats_to_column.cpp +++ b/src/libigl/igl/quats_to_column.cpp diff --git a/src/igl/quats_to_column.h b/src/libigl/igl/quats_to_column.h index 4a7795ae1..4a7795ae1 100644 --- a/src/igl/quats_to_column.h +++ b/src/libigl/igl/quats_to_column.h diff --git a/src/igl/ramer_douglas_peucker.cpp b/src/libigl/igl/ramer_douglas_peucker.cpp index 0dd1a40a3..0dd1a40a3 100644 --- a/src/igl/ramer_douglas_peucker.cpp +++ b/src/libigl/igl/ramer_douglas_peucker.cpp diff --git a/src/igl/ramer_douglas_peucker.h b/src/libigl/igl/ramer_douglas_peucker.h index dcfe47e85..dcfe47e85 100644 --- a/src/igl/ramer_douglas_peucker.h +++ b/src/libigl/igl/ramer_douglas_peucker.h diff --git a/src/igl/random_dir.cpp b/src/libigl/igl/random_dir.cpp index f30783418..f30783418 100644 --- a/src/igl/random_dir.cpp +++ b/src/libigl/igl/random_dir.cpp diff --git a/src/igl/random_dir.h b/src/libigl/igl/random_dir.h index 78027db05..78027db05 100644 --- a/src/igl/random_dir.h +++ b/src/libigl/igl/random_dir.h diff --git a/src/igl/random_points_on_mesh.cpp b/src/libigl/igl/random_points_on_mesh.cpp index b28135ad1..b28135ad1 100644 --- a/src/igl/random_points_on_mesh.cpp +++ b/src/libigl/igl/random_points_on_mesh.cpp diff --git a/src/igl/random_points_on_mesh.h b/src/libigl/igl/random_points_on_mesh.h index 7cde24f3c..7cde24f3c 100644 --- a/src/igl/random_points_on_mesh.h +++ b/src/libigl/igl/random_points_on_mesh.h diff --git a/src/igl/random_quaternion.cpp b/src/libigl/igl/random_quaternion.cpp index 2d042e33f..2d042e33f 100644 --- a/src/igl/random_quaternion.cpp +++ b/src/libigl/igl/random_quaternion.cpp diff --git a/src/igl/random_quaternion.h b/src/libigl/igl/random_quaternion.h index dfa36022b..dfa36022b 100644 --- a/src/igl/random_quaternion.h +++ b/src/libigl/igl/random_quaternion.h diff --git a/src/igl/random_search.cpp b/src/libigl/igl/random_search.cpp index d248d73e6..d248d73e6 100644 --- a/src/igl/random_search.cpp +++ b/src/libigl/igl/random_search.cpp diff --git a/src/igl/random_search.h b/src/libigl/igl/random_search.h index 8573e88cf..8573e88cf 100644 --- a/src/igl/random_search.h +++ b/src/libigl/igl/random_search.h diff --git a/src/igl/randperm.cpp b/src/libigl/igl/randperm.cpp index d32af1760..d32af1760 100644 --- a/src/igl/randperm.cpp +++ b/src/libigl/igl/randperm.cpp diff --git a/src/igl/randperm.h b/src/libigl/igl/randperm.h index 0ba067141..0ba067141 100644 --- a/src/igl/randperm.h +++ b/src/libigl/igl/randperm.h diff --git a/src/igl/ray_box_intersect.cpp b/src/libigl/igl/ray_box_intersect.cpp index 8c6346d86..8c6346d86 100644 --- a/src/igl/ray_box_intersect.cpp +++ b/src/libigl/igl/ray_box_intersect.cpp diff --git a/src/igl/ray_box_intersect.h b/src/libigl/igl/ray_box_intersect.h index 6b6e14aaa..6b6e14aaa 100644 --- a/src/igl/ray_box_intersect.h +++ b/src/libigl/igl/ray_box_intersect.h diff --git a/src/igl/ray_mesh_intersect.cpp b/src/libigl/igl/ray_mesh_intersect.cpp index 512a35c46..512a35c46 100644 --- a/src/igl/ray_mesh_intersect.cpp +++ b/src/libigl/igl/ray_mesh_intersect.cpp diff --git a/src/igl/ray_mesh_intersect.h b/src/libigl/igl/ray_mesh_intersect.h index e081bf3bb..e081bf3bb 100644 --- a/src/igl/ray_mesh_intersect.h +++ b/src/libigl/igl/ray_mesh_intersect.h diff --git a/src/igl/ray_sphere_intersect.cpp b/src/libigl/igl/ray_sphere_intersect.cpp index 8a05c2a12..8a05c2a12 100644 --- a/src/igl/ray_sphere_intersect.cpp +++ b/src/libigl/igl/ray_sphere_intersect.cpp diff --git a/src/igl/ray_sphere_intersect.h b/src/libigl/igl/ray_sphere_intersect.h index b4dfea379..b4dfea379 100644 --- a/src/igl/ray_sphere_intersect.h +++ b/src/libigl/igl/ray_sphere_intersect.h diff --git a/src/igl/raytri.c b/src/libigl/igl/raytri.c index b5e7f7b1f..b5e7f7b1f 100644 --- a/src/igl/raytri.c +++ b/src/libigl/igl/raytri.c diff --git a/src/igl/readBF.cpp b/src/libigl/igl/readBF.cpp index 03099ea7e..03099ea7e 100644 --- a/src/igl/readBF.cpp +++ b/src/libigl/igl/readBF.cpp diff --git a/src/igl/readBF.h b/src/libigl/igl/readBF.h index a2b010c85..a2b010c85 100644 --- a/src/igl/readBF.h +++ b/src/libigl/igl/readBF.h diff --git a/src/igl/readCSV.cpp b/src/libigl/igl/readCSV.cpp index eb00b1fe4..eb00b1fe4 100644 --- a/src/igl/readCSV.cpp +++ b/src/libigl/igl/readCSV.cpp diff --git a/src/igl/readCSV.h b/src/libigl/igl/readCSV.h index 480aad129..480aad129 100644 --- a/src/igl/readCSV.h +++ b/src/libigl/igl/readCSV.h diff --git a/src/igl/readDMAT.cpp b/src/libigl/igl/readDMAT.cpp index 1ae9fdd65..1ae9fdd65 100644 --- a/src/igl/readDMAT.cpp +++ b/src/libigl/igl/readDMAT.cpp diff --git a/src/igl/readDMAT.h b/src/libigl/igl/readDMAT.h index e09c492c1..e09c492c1 100644 --- a/src/igl/readDMAT.h +++ b/src/libigl/igl/readDMAT.h diff --git a/src/igl/readMESH.cpp b/src/libigl/igl/readMESH.cpp index bc912e11b..bc912e11b 100644 --- a/src/igl/readMESH.cpp +++ b/src/libigl/igl/readMESH.cpp diff --git a/src/igl/readMESH.h b/src/libigl/igl/readMESH.h index b9b763035..b9b763035 100644 --- a/src/igl/readMESH.h +++ b/src/libigl/igl/readMESH.h diff --git a/src/igl/readMSH.cpp b/src/libigl/igl/readMSH.cpp index 2335fd1cc..2335fd1cc 100644 --- a/src/igl/readMSH.cpp +++ b/src/libigl/igl/readMSH.cpp diff --git a/src/igl/readMSH.h b/src/libigl/igl/readMSH.h index 1463411d8..1463411d8 100644 --- a/src/igl/readMSH.h +++ b/src/libigl/igl/readMSH.h diff --git a/src/igl/readNODE.cpp b/src/libigl/igl/readNODE.cpp index cb775e599..cb775e599 100644 --- a/src/igl/readNODE.cpp +++ b/src/libigl/igl/readNODE.cpp diff --git a/src/igl/readNODE.h b/src/libigl/igl/readNODE.h index a4bdb4774..a4bdb4774 100644 --- a/src/igl/readNODE.h +++ b/src/libigl/igl/readNODE.h diff --git a/src/igl/readOBJ.cpp b/src/libigl/igl/readOBJ.cpp index 42173fc84..42173fc84 100644 --- a/src/igl/readOBJ.cpp +++ b/src/libigl/igl/readOBJ.cpp diff --git a/src/igl/readOBJ.h b/src/libigl/igl/readOBJ.h index 443b6fc8e..443b6fc8e 100644 --- a/src/igl/readOBJ.h +++ b/src/libigl/igl/readOBJ.h diff --git a/src/igl/readOFF.cpp b/src/libigl/igl/readOFF.cpp index 11d7e0efc..11d7e0efc 100644 --- a/src/igl/readOFF.cpp +++ b/src/libigl/igl/readOFF.cpp diff --git a/src/igl/readOFF.h b/src/libigl/igl/readOFF.h index 3d8c41fa5..3d8c41fa5 100644 --- a/src/igl/readOFF.h +++ b/src/libigl/igl/readOFF.h diff --git a/src/igl/readPLY.cpp b/src/libigl/igl/readPLY.cpp index 515b3307a..515b3307a 100644 --- a/src/igl/readPLY.cpp +++ b/src/libigl/igl/readPLY.cpp diff --git a/src/igl/readPLY.h b/src/libigl/igl/readPLY.h index bcb69eee2..bcb69eee2 100644 --- a/src/igl/readPLY.h +++ b/src/libigl/igl/readPLY.h diff --git a/src/igl/readSTL.cpp b/src/libigl/igl/readSTL.cpp index fcdeddcdd..fcdeddcdd 100644 --- a/src/igl/readSTL.cpp +++ b/src/libigl/igl/readSTL.cpp diff --git a/src/igl/readSTL.h b/src/libigl/igl/readSTL.h index ca1f7c9e5..ca1f7c9e5 100644 --- a/src/igl/readSTL.h +++ b/src/libigl/igl/readSTL.h diff --git a/src/igl/readTGF.cpp b/src/libigl/igl/readTGF.cpp index 814395b30..814395b30 100644 --- a/src/igl/readTGF.cpp +++ b/src/libigl/igl/readTGF.cpp diff --git a/src/igl/readTGF.h b/src/libigl/igl/readTGF.h index 68c5ddef8..68c5ddef8 100644 --- a/src/igl/readTGF.h +++ b/src/libigl/igl/readTGF.h diff --git a/src/igl/readWRL.cpp b/src/libigl/igl/readWRL.cpp index ce6de3e73..ce6de3e73 100644 --- a/src/igl/readWRL.cpp +++ b/src/libigl/igl/readWRL.cpp diff --git a/src/igl/readWRL.h b/src/libigl/igl/readWRL.h index 45c1fa048..45c1fa048 100644 --- a/src/igl/readWRL.h +++ b/src/libigl/igl/readWRL.h diff --git a/src/igl/read_triangle_mesh.cpp b/src/libigl/igl/read_triangle_mesh.cpp index b6e52539f..b6e52539f 100644 --- a/src/igl/read_triangle_mesh.cpp +++ b/src/libigl/igl/read_triangle_mesh.cpp diff --git a/src/igl/read_triangle_mesh.h b/src/libigl/igl/read_triangle_mesh.h index 26b84c5f1..26b84c5f1 100644 --- a/src/igl/read_triangle_mesh.h +++ b/src/libigl/igl/read_triangle_mesh.h diff --git a/src/igl/redux.h b/src/libigl/igl/redux.h index 38ce9395a..38ce9395a 100644 --- a/src/igl/redux.h +++ b/src/libigl/igl/redux.h diff --git a/src/igl/remesh_along_isoline.cpp b/src/libigl/igl/remesh_along_isoline.cpp index 7164ba8e5..7164ba8e5 100644 --- a/src/igl/remesh_along_isoline.cpp +++ b/src/libigl/igl/remesh_along_isoline.cpp diff --git a/src/igl/remesh_along_isoline.h b/src/libigl/igl/remesh_along_isoline.h index 9a7c553b2..9a7c553b2 100644 --- a/src/igl/remesh_along_isoline.h +++ b/src/libigl/igl/remesh_along_isoline.h diff --git a/src/igl/remove_duplicate_vertices.cpp b/src/libigl/igl/remove_duplicate_vertices.cpp index 815ee51f8..815ee51f8 100644 --- a/src/igl/remove_duplicate_vertices.cpp +++ b/src/libigl/igl/remove_duplicate_vertices.cpp diff --git a/src/igl/remove_duplicate_vertices.h b/src/libigl/igl/remove_duplicate_vertices.h index 9276ba729..9276ba729 100644 --- a/src/igl/remove_duplicate_vertices.h +++ b/src/libigl/igl/remove_duplicate_vertices.h diff --git a/src/igl/remove_duplicates.cpp b/src/libigl/igl/remove_duplicates.cpp index 3e97a39e1..3e97a39e1 100644 --- a/src/igl/remove_duplicates.cpp +++ b/src/libigl/igl/remove_duplicates.cpp diff --git a/src/igl/remove_duplicates.h b/src/libigl/igl/remove_duplicates.h index 0e1249ce9..0e1249ce9 100644 --- a/src/igl/remove_duplicates.h +++ b/src/libigl/igl/remove_duplicates.h diff --git a/src/igl/remove_unreferenced.cpp b/src/libigl/igl/remove_unreferenced.cpp index 3ee8260aa..3ee8260aa 100644 --- a/src/igl/remove_unreferenced.cpp +++ b/src/libigl/igl/remove_unreferenced.cpp diff --git a/src/igl/remove_unreferenced.h b/src/libigl/igl/remove_unreferenced.h index 2284190ab..2284190ab 100644 --- a/src/igl/remove_unreferenced.h +++ b/src/libigl/igl/remove_unreferenced.h diff --git a/src/igl/reorder.cpp b/src/libigl/igl/reorder.cpp index ee74b2096..ee74b2096 100644 --- a/src/igl/reorder.cpp +++ b/src/libigl/igl/reorder.cpp diff --git a/src/igl/reorder.h b/src/libigl/igl/reorder.h index 50f7d7b0f..50f7d7b0f 100644 --- a/src/igl/reorder.h +++ b/src/libigl/igl/reorder.h diff --git a/src/igl/repdiag.cpp b/src/libigl/igl/repdiag.cpp index 283ae1e75..283ae1e75 100644 --- a/src/igl/repdiag.cpp +++ b/src/libigl/igl/repdiag.cpp diff --git a/src/igl/repdiag.h b/src/libigl/igl/repdiag.h index 779443374..779443374 100644 --- a/src/igl/repdiag.h +++ b/src/libigl/igl/repdiag.h diff --git a/src/igl/repmat.cpp b/src/libigl/igl/repmat.cpp index f79840444..f79840444 100644 --- a/src/igl/repmat.cpp +++ b/src/libigl/igl/repmat.cpp diff --git a/src/igl/repmat.h b/src/libigl/igl/repmat.h index 1509875aa..1509875aa 100644 --- a/src/igl/repmat.h +++ b/src/libigl/igl/repmat.h diff --git a/src/igl/resolve_duplicated_faces.cpp b/src/libigl/igl/resolve_duplicated_faces.cpp index 3b26b8ecc..3b26b8ecc 100644 --- a/src/igl/resolve_duplicated_faces.cpp +++ b/src/libigl/igl/resolve_duplicated_faces.cpp diff --git a/src/igl/resolve_duplicated_faces.h b/src/libigl/igl/resolve_duplicated_faces.h index 03ea3d6e6..03ea3d6e6 100644 --- a/src/igl/resolve_duplicated_faces.h +++ b/src/libigl/igl/resolve_duplicated_faces.h diff --git a/src/igl/rgb_to_hsv.cpp b/src/libigl/igl/rgb_to_hsv.cpp index fbf32bfec..fbf32bfec 100644 --- a/src/igl/rgb_to_hsv.cpp +++ b/src/libigl/igl/rgb_to_hsv.cpp diff --git a/src/igl/rgb_to_hsv.h b/src/libigl/igl/rgb_to_hsv.h index ed695ad60..ed695ad60 100644 --- a/src/igl/rgb_to_hsv.h +++ b/src/libigl/igl/rgb_to_hsv.h diff --git a/src/igl/rotate_by_quat.cpp b/src/libigl/igl/rotate_by_quat.cpp index b77c812ea..b77c812ea 100644 --- a/src/igl/rotate_by_quat.cpp +++ b/src/libigl/igl/rotate_by_quat.cpp diff --git a/src/igl/rotate_by_quat.h b/src/libigl/igl/rotate_by_quat.h index b45204839..b45204839 100644 --- a/src/igl/rotate_by_quat.h +++ b/src/libigl/igl/rotate_by_quat.h diff --git a/src/igl/rotate_vectors.cpp b/src/libigl/igl/rotate_vectors.cpp index b236d79e6..b236d79e6 100644 --- a/src/igl/rotate_vectors.cpp +++ b/src/libigl/igl/rotate_vectors.cpp diff --git a/src/igl/rotate_vectors.h b/src/libigl/igl/rotate_vectors.h index a1b64bcca..a1b64bcca 100644 --- a/src/igl/rotate_vectors.h +++ b/src/libigl/igl/rotate_vectors.h diff --git a/src/igl/rotation_matrix_from_directions.cpp b/src/libigl/igl/rotation_matrix_from_directions.cpp index 4ecc1a5d9..4ecc1a5d9 100644 --- a/src/igl/rotation_matrix_from_directions.cpp +++ b/src/libigl/igl/rotation_matrix_from_directions.cpp diff --git a/src/igl/rotation_matrix_from_directions.h b/src/libigl/igl/rotation_matrix_from_directions.h index ca1397272..ca1397272 100644 --- a/src/igl/rotation_matrix_from_directions.h +++ b/src/libigl/igl/rotation_matrix_from_directions.h diff --git a/src/igl/round.cpp b/src/libigl/igl/round.cpp index acde47316..acde47316 100644 --- a/src/igl/round.cpp +++ b/src/libigl/igl/round.cpp diff --git a/src/igl/round.h b/src/libigl/igl/round.h index cdaac731b..cdaac731b 100644 --- a/src/igl/round.h +++ b/src/libigl/igl/round.h diff --git a/src/igl/rows_to_matrix.cpp b/src/libigl/igl/rows_to_matrix.cpp index 14c369e40..14c369e40 100644 --- a/src/igl/rows_to_matrix.cpp +++ b/src/libigl/igl/rows_to_matrix.cpp diff --git a/src/igl/rows_to_matrix.h b/src/libigl/igl/rows_to_matrix.h index 8f62b5a2d..8f62b5a2d 100644 --- a/src/igl/rows_to_matrix.h +++ b/src/libigl/igl/rows_to_matrix.h diff --git a/src/igl/sample_edges.cpp b/src/libigl/igl/sample_edges.cpp index a20df1426..a20df1426 100644 --- a/src/igl/sample_edges.cpp +++ b/src/libigl/igl/sample_edges.cpp diff --git a/src/igl/sample_edges.h b/src/libigl/igl/sample_edges.h index 96822736f..96822736f 100644 --- a/src/igl/sample_edges.h +++ b/src/libigl/igl/sample_edges.h diff --git a/src/igl/seam_edges.cpp b/src/libigl/igl/seam_edges.cpp index 8cbca143c..8cbca143c 100644 --- a/src/igl/seam_edges.cpp +++ b/src/libigl/igl/seam_edges.cpp diff --git a/src/igl/seam_edges.h b/src/libigl/igl/seam_edges.h index 15c82826c..15c82826c 100644 --- a/src/igl/seam_edges.h +++ b/src/libigl/igl/seam_edges.h diff --git a/src/igl/segment_segment_intersect.cpp b/src/libigl/igl/segment_segment_intersect.cpp index 8438c0496..8438c0496 100644 --- a/src/igl/segment_segment_intersect.cpp +++ b/src/libigl/igl/segment_segment_intersect.cpp diff --git a/src/igl/segment_segment_intersect.h b/src/libigl/igl/segment_segment_intersect.h index 714629215..714629215 100644 --- a/src/igl/segment_segment_intersect.h +++ b/src/libigl/igl/segment_segment_intersect.h diff --git a/src/igl/serialize.h b/src/libigl/igl/serialize.h index 54967293b..54967293b 100644 --- a/src/igl/serialize.h +++ b/src/libigl/igl/serialize.h diff --git a/src/igl/setdiff.cpp b/src/libigl/igl/setdiff.cpp index 12404175a..12404175a 100644 --- a/src/igl/setdiff.cpp +++ b/src/libigl/igl/setdiff.cpp diff --git a/src/igl/setdiff.h b/src/libigl/igl/setdiff.h index 20e8d6485..20e8d6485 100644 --- a/src/igl/setdiff.h +++ b/src/libigl/igl/setdiff.h diff --git a/src/igl/setunion.cpp b/src/libigl/igl/setunion.cpp index eb0e721d8..eb0e721d8 100644 --- a/src/igl/setunion.cpp +++ b/src/libigl/igl/setunion.cpp diff --git a/src/igl/setunion.h b/src/libigl/igl/setunion.h index f28bff653..f28bff653 100644 --- a/src/igl/setunion.h +++ b/src/libigl/igl/setunion.h diff --git a/src/igl/setxor.cpp b/src/libigl/igl/setxor.cpp index 5429abdc2..5429abdc2 100644 --- a/src/igl/setxor.cpp +++ b/src/libigl/igl/setxor.cpp diff --git a/src/igl/setxor.h b/src/libigl/igl/setxor.h index bbd1089fa..bbd1089fa 100644 --- a/src/igl/setxor.h +++ b/src/libigl/igl/setxor.h diff --git a/src/igl/shape_diameter_function.cpp b/src/libigl/igl/shape_diameter_function.cpp index db061fe39..db061fe39 100644 --- a/src/igl/shape_diameter_function.cpp +++ b/src/libigl/igl/shape_diameter_function.cpp diff --git a/src/igl/shape_diameter_function.h b/src/libigl/igl/shape_diameter_function.h index 5460cda7b..5460cda7b 100644 --- a/src/igl/shape_diameter_function.h +++ b/src/libigl/igl/shape_diameter_function.h diff --git a/src/igl/shapeup.cpp b/src/libigl/igl/shapeup.cpp index f352d22bf..f352d22bf 100644 --- a/src/igl/shapeup.cpp +++ b/src/libigl/igl/shapeup.cpp diff --git a/src/igl/shapeup.h b/src/libigl/igl/shapeup.h index 7230a8dc7..7230a8dc7 100644 --- a/src/igl/shapeup.h +++ b/src/libigl/igl/shapeup.h diff --git a/src/igl/shortest_edge_and_midpoint.cpp b/src/libigl/igl/shortest_edge_and_midpoint.cpp index db5338d0d..db5338d0d 100644 --- a/src/igl/shortest_edge_and_midpoint.cpp +++ b/src/libigl/igl/shortest_edge_and_midpoint.cpp diff --git a/src/igl/shortest_edge_and_midpoint.h b/src/libigl/igl/shortest_edge_and_midpoint.h index 45a4a2abf..45a4a2abf 100644 --- a/src/igl/shortest_edge_and_midpoint.h +++ b/src/libigl/igl/shortest_edge_and_midpoint.h diff --git a/src/igl/signed_angle.cpp b/src/libigl/igl/signed_angle.cpp index 69f8aa6f5..69f8aa6f5 100644 --- a/src/igl/signed_angle.cpp +++ b/src/libigl/igl/signed_angle.cpp diff --git a/src/igl/signed_angle.h b/src/libigl/igl/signed_angle.h index 547ba00a4..547ba00a4 100644 --- a/src/igl/signed_angle.h +++ b/src/libigl/igl/signed_angle.h diff --git a/src/igl/signed_distance.cpp b/src/libigl/igl/signed_distance.cpp index f638b1f58..f638b1f58 100644 --- a/src/igl/signed_distance.cpp +++ b/src/libigl/igl/signed_distance.cpp diff --git a/src/igl/signed_distance.h b/src/libigl/igl/signed_distance.h index 3b178d304..3b178d304 100644 --- a/src/igl/signed_distance.h +++ b/src/libigl/igl/signed_distance.h diff --git a/src/igl/simplify_polyhedron.cpp b/src/libigl/igl/simplify_polyhedron.cpp index 38ba118e7..38ba118e7 100644 --- a/src/igl/simplify_polyhedron.cpp +++ b/src/libigl/igl/simplify_polyhedron.cpp diff --git a/src/igl/simplify_polyhedron.h b/src/libigl/igl/simplify_polyhedron.h index 5b5018192..5b5018192 100644 --- a/src/igl/simplify_polyhedron.h +++ b/src/libigl/igl/simplify_polyhedron.h diff --git a/src/igl/slice.cpp b/src/libigl/igl/slice.cpp index df3a8e9ce..df3a8e9ce 100644 --- a/src/igl/slice.cpp +++ b/src/libigl/igl/slice.cpp diff --git a/src/igl/slice.h b/src/libigl/igl/slice.h index a25dfa411..a25dfa411 100644 --- a/src/igl/slice.h +++ b/src/libigl/igl/slice.h diff --git a/src/igl/slice_cached.cpp b/src/libigl/igl/slice_cached.cpp index e0f13d804..e0f13d804 100644 --- a/src/igl/slice_cached.cpp +++ b/src/libigl/igl/slice_cached.cpp diff --git a/src/igl/slice_cached.h b/src/libigl/igl/slice_cached.h index 84ced8dc9..84ced8dc9 100644 --- a/src/igl/slice_cached.h +++ b/src/libigl/igl/slice_cached.h diff --git a/src/igl/slice_into.cpp b/src/libigl/igl/slice_into.cpp index aa12d9303..aa12d9303 100644 --- a/src/igl/slice_into.cpp +++ b/src/libigl/igl/slice_into.cpp diff --git a/src/igl/slice_into.h b/src/libigl/igl/slice_into.h index 83bd8f523..83bd8f523 100644 --- a/src/igl/slice_into.h +++ b/src/libigl/igl/slice_into.h diff --git a/src/igl/slice_mask.cpp b/src/libigl/igl/slice_mask.cpp index 63cb82045..63cb82045 100644 --- a/src/igl/slice_mask.cpp +++ b/src/libigl/igl/slice_mask.cpp diff --git a/src/igl/slice_mask.h b/src/libigl/igl/slice_mask.h index 0a0dcda7c..0a0dcda7c 100644 --- a/src/igl/slice_mask.h +++ b/src/libigl/igl/slice_mask.h diff --git a/src/igl/slice_tets.cpp b/src/libigl/igl/slice_tets.cpp index dbe042fa1..dbe042fa1 100644 --- a/src/igl/slice_tets.cpp +++ b/src/libigl/igl/slice_tets.cpp diff --git a/src/igl/slice_tets.h b/src/libigl/igl/slice_tets.h index 349c5d790..349c5d790 100644 --- a/src/igl/slice_tets.h +++ b/src/libigl/igl/slice_tets.h diff --git a/src/igl/slim.cpp b/src/libigl/igl/slim.cpp index a88674274..a88674274 100644 --- a/src/igl/slim.cpp +++ b/src/libigl/igl/slim.cpp diff --git a/src/igl/slim.h b/src/libigl/igl/slim.h index 1965e2bba..1965e2bba 100644 --- a/src/igl/slim.h +++ b/src/libigl/igl/slim.h diff --git a/src/igl/snap_points.cpp b/src/libigl/igl/snap_points.cpp index 1fc136f4c..1fc136f4c 100644 --- a/src/igl/snap_points.cpp +++ b/src/libigl/igl/snap_points.cpp diff --git a/src/igl/snap_points.h b/src/libigl/igl/snap_points.h index dbb850a79..dbb850a79 100644 --- a/src/igl/snap_points.h +++ b/src/libigl/igl/snap_points.h diff --git a/src/igl/snap_to_canonical_view_quat.cpp b/src/libigl/igl/snap_to_canonical_view_quat.cpp index 9fb01724c..9fb01724c 100644 --- a/src/igl/snap_to_canonical_view_quat.cpp +++ b/src/libigl/igl/snap_to_canonical_view_quat.cpp diff --git a/src/igl/snap_to_canonical_view_quat.h b/src/libigl/igl/snap_to_canonical_view_quat.h index 79bc3e024..79bc3e024 100644 --- a/src/igl/snap_to_canonical_view_quat.h +++ b/src/libigl/igl/snap_to_canonical_view_quat.h diff --git a/src/igl/snap_to_fixed_up.cpp b/src/libigl/igl/snap_to_fixed_up.cpp index f0fdd7de8..f0fdd7de8 100644 --- a/src/igl/snap_to_fixed_up.cpp +++ b/src/libigl/igl/snap_to_fixed_up.cpp diff --git a/src/igl/snap_to_fixed_up.h b/src/libigl/igl/snap_to_fixed_up.h index 4276fa79c..4276fa79c 100644 --- a/src/igl/snap_to_fixed_up.h +++ b/src/libigl/igl/snap_to_fixed_up.h diff --git a/src/igl/solid_angle.cpp b/src/libigl/igl/solid_angle.cpp index bbb478af3..bbb478af3 100644 --- a/src/igl/solid_angle.cpp +++ b/src/libigl/igl/solid_angle.cpp diff --git a/src/igl/solid_angle.h b/src/libigl/igl/solid_angle.h index 2ee98a247..2ee98a247 100644 --- a/src/igl/solid_angle.h +++ b/src/libigl/igl/solid_angle.h diff --git a/src/igl/sort.cpp b/src/libigl/igl/sort.cpp index 251b3063e..251b3063e 100644 --- a/src/igl/sort.cpp +++ b/src/libigl/igl/sort.cpp diff --git a/src/igl/sort.h b/src/libigl/igl/sort.h index f89f54b13..f89f54b13 100644 --- a/src/igl/sort.h +++ b/src/libigl/igl/sort.h diff --git a/src/igl/sort_angles.cpp b/src/libigl/igl/sort_angles.cpp index 486f621ea..486f621ea 100644 --- a/src/igl/sort_angles.cpp +++ b/src/libigl/igl/sort_angles.cpp diff --git a/src/igl/sort_angles.h b/src/libigl/igl/sort_angles.h index 4763c981e..4763c981e 100644 --- a/src/igl/sort_angles.h +++ b/src/libigl/igl/sort_angles.h diff --git a/src/igl/sort_triangles.cpp b/src/libigl/igl/sort_triangles.cpp index 98fd8ab1a..98fd8ab1a 100644 --- a/src/igl/sort_triangles.cpp +++ b/src/libigl/igl/sort_triangles.cpp diff --git a/src/igl/sort_triangles.h b/src/libigl/igl/sort_triangles.h index b334e6530..b334e6530 100644 --- a/src/igl/sort_triangles.h +++ b/src/libigl/igl/sort_triangles.h diff --git a/src/igl/sort_vectors_ccw.cpp b/src/libigl/igl/sort_vectors_ccw.cpp index ea613c51b..ea613c51b 100644 --- a/src/igl/sort_vectors_ccw.cpp +++ b/src/libigl/igl/sort_vectors_ccw.cpp diff --git a/src/igl/sort_vectors_ccw.h b/src/libigl/igl/sort_vectors_ccw.h index 73c2f6fba..73c2f6fba 100644 --- a/src/igl/sort_vectors_ccw.h +++ b/src/libigl/igl/sort_vectors_ccw.h diff --git a/src/igl/sortrows.cpp b/src/libigl/igl/sortrows.cpp index a5e084fd8..a5e084fd8 100644 --- a/src/igl/sortrows.cpp +++ b/src/libigl/igl/sortrows.cpp diff --git a/src/igl/sortrows.h b/src/libigl/igl/sortrows.h index c0b15f29e..c0b15f29e 100644 --- a/src/igl/sortrows.h +++ b/src/libigl/igl/sortrows.h diff --git a/src/igl/sparse.cpp b/src/libigl/igl/sparse.cpp index ed9cd4a49..ed9cd4a49 100644 --- a/src/igl/sparse.cpp +++ b/src/libigl/igl/sparse.cpp diff --git a/src/igl/sparse.h b/src/libigl/igl/sparse.h index a947978ab..a947978ab 100644 --- a/src/igl/sparse.h +++ b/src/libigl/igl/sparse.h diff --git a/src/igl/sparse_cached.cpp b/src/libigl/igl/sparse_cached.cpp index ddd65aadf..ddd65aadf 100644 --- a/src/igl/sparse_cached.cpp +++ b/src/libigl/igl/sparse_cached.cpp diff --git a/src/igl/sparse_cached.h b/src/libigl/igl/sparse_cached.h index 40d288962..40d288962 100644 --- a/src/igl/sparse_cached.h +++ b/src/libigl/igl/sparse_cached.h diff --git a/src/igl/speye.cpp b/src/libigl/igl/speye.cpp index 54af00c71..54af00c71 100644 --- a/src/igl/speye.cpp +++ b/src/libigl/igl/speye.cpp diff --git a/src/igl/speye.h b/src/libigl/igl/speye.h index 4c2425571..4c2425571 100644 --- a/src/igl/speye.h +++ b/src/libigl/igl/speye.h diff --git a/src/igl/squared_edge_lengths.cpp b/src/libigl/igl/squared_edge_lengths.cpp index d15e6c13e..d15e6c13e 100644 --- a/src/igl/squared_edge_lengths.cpp +++ b/src/libigl/igl/squared_edge_lengths.cpp diff --git a/src/igl/squared_edge_lengths.h b/src/libigl/igl/squared_edge_lengths.h index 2f374d6c3..2f374d6c3 100644 --- a/src/igl/squared_edge_lengths.h +++ b/src/libigl/igl/squared_edge_lengths.h diff --git a/src/igl/stdin_to_temp.cpp b/src/libigl/igl/stdin_to_temp.cpp index a7a7fbd70..a7a7fbd70 100644 --- a/src/igl/stdin_to_temp.cpp +++ b/src/libigl/igl/stdin_to_temp.cpp diff --git a/src/igl/stdin_to_temp.h b/src/libigl/igl/stdin_to_temp.h index ae35219ea..ae35219ea 100644 --- a/src/igl/stdin_to_temp.h +++ b/src/libigl/igl/stdin_to_temp.h diff --git a/src/igl/straighten_seams.cpp b/src/libigl/igl/straighten_seams.cpp index 0aef2b316..0aef2b316 100644 --- a/src/igl/straighten_seams.cpp +++ b/src/libigl/igl/straighten_seams.cpp diff --git a/src/igl/straighten_seams.h b/src/libigl/igl/straighten_seams.h index 2eb0e9d46..2eb0e9d46 100644 --- a/src/igl/straighten_seams.h +++ b/src/libigl/igl/straighten_seams.h diff --git a/src/igl/sum.cpp b/src/libigl/igl/sum.cpp index b994ce405..b994ce405 100644 --- a/src/igl/sum.cpp +++ b/src/libigl/igl/sum.cpp diff --git a/src/igl/sum.h b/src/libigl/igl/sum.h index 6caeac344..6caeac344 100644 --- a/src/igl/sum.h +++ b/src/libigl/igl/sum.h diff --git a/src/igl/svd3x3.cpp b/src/libigl/igl/svd3x3.cpp index dd65e0cf3..dd65e0cf3 100644 --- a/src/igl/svd3x3.cpp +++ b/src/libigl/igl/svd3x3.cpp diff --git a/src/igl/svd3x3.h b/src/libigl/igl/svd3x3.h index 900d459f4..900d459f4 100644 --- a/src/igl/svd3x3.h +++ b/src/libigl/igl/svd3x3.h diff --git a/src/igl/svd3x3_avx.cpp b/src/libigl/igl/svd3x3_avx.cpp index db56ee30a..db56ee30a 100644 --- a/src/igl/svd3x3_avx.cpp +++ b/src/libigl/igl/svd3x3_avx.cpp diff --git a/src/igl/svd3x3_avx.h b/src/libigl/igl/svd3x3_avx.h index b814acc95..b814acc95 100644 --- a/src/igl/svd3x3_avx.h +++ b/src/libigl/igl/svd3x3_avx.h diff --git a/src/igl/svd3x3_sse.cpp b/src/libigl/igl/svd3x3_sse.cpp index 2ef4e0fe8..2ef4e0fe8 100644 --- a/src/igl/svd3x3_sse.cpp +++ b/src/libigl/igl/svd3x3_sse.cpp diff --git a/src/igl/svd3x3_sse.h b/src/libigl/igl/svd3x3_sse.h index 1fcff988a..1fcff988a 100644 --- a/src/igl/svd3x3_sse.h +++ b/src/libigl/igl/svd3x3_sse.h diff --git a/src/igl/swept_volume_bounding_box.cpp b/src/libigl/igl/swept_volume_bounding_box.cpp index 7fc12e2f1..7fc12e2f1 100644 --- a/src/igl/swept_volume_bounding_box.cpp +++ b/src/libigl/igl/swept_volume_bounding_box.cpp diff --git a/src/igl/swept_volume_bounding_box.h b/src/libigl/igl/swept_volume_bounding_box.h index f44f1f77d..f44f1f77d 100644 --- a/src/igl/swept_volume_bounding_box.h +++ b/src/libigl/igl/swept_volume_bounding_box.h diff --git a/src/igl/swept_volume_signed_distance.cpp b/src/libigl/igl/swept_volume_signed_distance.cpp index 2571a7d12..2571a7d12 100644 --- a/src/igl/swept_volume_signed_distance.cpp +++ b/src/libigl/igl/swept_volume_signed_distance.cpp diff --git a/src/igl/swept_volume_signed_distance.h b/src/libigl/igl/swept_volume_signed_distance.h index 86074fb67..86074fb67 100644 --- a/src/igl/swept_volume_signed_distance.h +++ b/src/libigl/igl/swept_volume_signed_distance.h diff --git a/src/igl/trackball.cpp b/src/libigl/igl/trackball.cpp index 3a5fa2e9f..3a5fa2e9f 100644 --- a/src/igl/trackball.cpp +++ b/src/libigl/igl/trackball.cpp diff --git a/src/igl/trackball.h b/src/libigl/igl/trackball.h index 6bf79e019..6bf79e019 100644 --- a/src/igl/trackball.h +++ b/src/libigl/igl/trackball.h diff --git a/src/igl/transpose_blocks.cpp b/src/libigl/igl/transpose_blocks.cpp index 004edd7ac..004edd7ac 100644 --- a/src/igl/transpose_blocks.cpp +++ b/src/libigl/igl/transpose_blocks.cpp diff --git a/src/igl/transpose_blocks.h b/src/libigl/igl/transpose_blocks.h index 65ce89fbd..65ce89fbd 100644 --- a/src/igl/transpose_blocks.h +++ b/src/libigl/igl/transpose_blocks.h diff --git a/src/igl/triangle/cdt.cpp b/src/libigl/igl/triangle/cdt.cpp index cbe1b3e1a..cbe1b3e1a 100644 --- a/src/igl/triangle/cdt.cpp +++ b/src/libigl/igl/triangle/cdt.cpp diff --git a/src/igl/triangle/cdt.h b/src/libigl/igl/triangle/cdt.h index 9f513e853..9f513e853 100644 --- a/src/igl/triangle/cdt.h +++ b/src/libigl/igl/triangle/cdt.h diff --git a/src/igl/triangle/triangulate.cpp b/src/libigl/igl/triangle/triangulate.cpp index 5ee1d4be8..5ee1d4be8 100644 --- a/src/igl/triangle/triangulate.cpp +++ b/src/libigl/igl/triangle/triangulate.cpp diff --git a/src/igl/triangle/triangulate.h b/src/libigl/igl/triangle/triangulate.h index 90abdac9d..90abdac9d 100644 --- a/src/igl/triangle/triangulate.h +++ b/src/libigl/igl/triangle/triangulate.h diff --git a/src/igl/triangle_fan.cpp b/src/libigl/igl/triangle_fan.cpp index 35944d026..35944d026 100644 --- a/src/igl/triangle_fan.cpp +++ b/src/libigl/igl/triangle_fan.cpp diff --git a/src/igl/triangle_fan.h b/src/libigl/igl/triangle_fan.h index b56a05bc7..b56a05bc7 100644 --- a/src/igl/triangle_fan.h +++ b/src/libigl/igl/triangle_fan.h diff --git a/src/igl/triangle_triangle_adjacency.cpp b/src/libigl/igl/triangle_triangle_adjacency.cpp index 62e8fbe1c..62e8fbe1c 100644 --- a/src/igl/triangle_triangle_adjacency.cpp +++ b/src/libigl/igl/triangle_triangle_adjacency.cpp diff --git a/src/igl/triangle_triangle_adjacency.h b/src/libigl/igl/triangle_triangle_adjacency.h index 632141bd0..632141bd0 100644 --- a/src/igl/triangle_triangle_adjacency.h +++ b/src/libigl/igl/triangle_triangle_adjacency.h diff --git a/src/igl/triangles_from_strip.cpp b/src/libigl/igl/triangles_from_strip.cpp index 1db854834..1db854834 100644 --- a/src/igl/triangles_from_strip.cpp +++ b/src/libigl/igl/triangles_from_strip.cpp diff --git a/src/igl/triangles_from_strip.h b/src/libigl/igl/triangles_from_strip.h index 01ffd6402..01ffd6402 100644 --- a/src/igl/triangles_from_strip.h +++ b/src/libigl/igl/triangles_from_strip.h diff --git a/src/igl/two_axis_valuator_fixed_up.cpp b/src/libigl/igl/two_axis_valuator_fixed_up.cpp index 4ffb607f4..4ffb607f4 100644 --- a/src/igl/two_axis_valuator_fixed_up.cpp +++ b/src/libigl/igl/two_axis_valuator_fixed_up.cpp diff --git a/src/igl/two_axis_valuator_fixed_up.h b/src/libigl/igl/two_axis_valuator_fixed_up.h index 7b2e9aabf..7b2e9aabf 100644 --- a/src/igl/two_axis_valuator_fixed_up.h +++ b/src/libigl/igl/two_axis_valuator_fixed_up.h diff --git a/src/igl/uniformly_sample_two_manifold.cpp b/src/libigl/igl/uniformly_sample_two_manifold.cpp index d35f74113..d35f74113 100644 --- a/src/igl/uniformly_sample_two_manifold.cpp +++ b/src/libigl/igl/uniformly_sample_two_manifold.cpp diff --git a/src/igl/uniformly_sample_two_manifold.h b/src/libigl/igl/uniformly_sample_two_manifold.h index 2c8400e94..2c8400e94 100644 --- a/src/igl/uniformly_sample_two_manifold.h +++ b/src/libigl/igl/uniformly_sample_two_manifold.h diff --git a/src/igl/unique.cpp b/src/libigl/igl/unique.cpp index 9c5c7cb8d..9c5c7cb8d 100644 --- a/src/igl/unique.cpp +++ b/src/libigl/igl/unique.cpp diff --git a/src/igl/unique.h b/src/libigl/igl/unique.h index 8618da15e..8618da15e 100644 --- a/src/igl/unique.h +++ b/src/libigl/igl/unique.h diff --git a/src/igl/unique_edge_map.cpp b/src/libigl/igl/unique_edge_map.cpp index a69be58a0..a69be58a0 100644 --- a/src/igl/unique_edge_map.cpp +++ b/src/libigl/igl/unique_edge_map.cpp diff --git a/src/igl/unique_edge_map.h b/src/libigl/igl/unique_edge_map.h index 4915db66f..4915db66f 100644 --- a/src/igl/unique_edge_map.h +++ b/src/libigl/igl/unique_edge_map.h diff --git a/src/igl/unique_rows.cpp b/src/libigl/igl/unique_rows.cpp index 1973a80c2..1973a80c2 100644 --- a/src/igl/unique_rows.cpp +++ b/src/libigl/igl/unique_rows.cpp diff --git a/src/igl/unique_rows.h b/src/libigl/igl/unique_rows.h index c612c8b1d..c612c8b1d 100644 --- a/src/igl/unique_rows.h +++ b/src/libigl/igl/unique_rows.h diff --git a/src/igl/unique_simplices.cpp b/src/libigl/igl/unique_simplices.cpp index 463459866..463459866 100644 --- a/src/igl/unique_simplices.cpp +++ b/src/libigl/igl/unique_simplices.cpp diff --git a/src/igl/unique_simplices.h b/src/libigl/igl/unique_simplices.h index a7c13849e..a7c13849e 100644 --- a/src/igl/unique_simplices.h +++ b/src/libigl/igl/unique_simplices.h diff --git a/src/igl/unproject.cpp b/src/libigl/igl/unproject.cpp index 702d77fee..702d77fee 100644 --- a/src/igl/unproject.cpp +++ b/src/libigl/igl/unproject.cpp diff --git a/src/igl/unproject.h b/src/libigl/igl/unproject.h index f34e87513..f34e87513 100644 --- a/src/igl/unproject.h +++ b/src/libigl/igl/unproject.h diff --git a/src/igl/unproject_in_mesh.cpp b/src/libigl/igl/unproject_in_mesh.cpp index 6238aaf2a..6238aaf2a 100644 --- a/src/igl/unproject_in_mesh.cpp +++ b/src/libigl/igl/unproject_in_mesh.cpp diff --git a/src/igl/unproject_in_mesh.h b/src/libigl/igl/unproject_in_mesh.h index edb1a0e65..edb1a0e65 100644 --- a/src/igl/unproject_in_mesh.h +++ b/src/libigl/igl/unproject_in_mesh.h diff --git a/src/igl/unproject_onto_mesh.cpp b/src/libigl/igl/unproject_onto_mesh.cpp index 897d206c1..897d206c1 100644 --- a/src/igl/unproject_onto_mesh.cpp +++ b/src/libigl/igl/unproject_onto_mesh.cpp diff --git a/src/igl/unproject_onto_mesh.h b/src/libigl/igl/unproject_onto_mesh.h index 57252f99b..57252f99b 100644 --- a/src/igl/unproject_onto_mesh.h +++ b/src/libigl/igl/unproject_onto_mesh.h diff --git a/src/igl/unproject_ray.cpp b/src/libigl/igl/unproject_ray.cpp index f6eb7ebdd..f6eb7ebdd 100644 --- a/src/igl/unproject_ray.cpp +++ b/src/libigl/igl/unproject_ray.cpp diff --git a/src/igl/unproject_ray.h b/src/libigl/igl/unproject_ray.h index 4ef66f266..4ef66f266 100644 --- a/src/igl/unproject_ray.h +++ b/src/libigl/igl/unproject_ray.h diff --git a/src/igl/unzip_corners.cpp b/src/libigl/igl/unzip_corners.cpp index 0a2ed004c..0a2ed004c 100644 --- a/src/igl/unzip_corners.cpp +++ b/src/libigl/igl/unzip_corners.cpp diff --git a/src/igl/unzip_corners.h b/src/libigl/igl/unzip_corners.h index 4d7dfdf69..4d7dfdf69 100644 --- a/src/igl/unzip_corners.h +++ b/src/libigl/igl/unzip_corners.h diff --git a/src/igl/upsample.cpp b/src/libigl/igl/upsample.cpp index 8b5e3da24..8b5e3da24 100644 --- a/src/igl/upsample.cpp +++ b/src/libigl/igl/upsample.cpp diff --git a/src/igl/upsample.h b/src/libigl/igl/upsample.h index 51608aef6..51608aef6 100644 --- a/src/igl/upsample.h +++ b/src/libigl/igl/upsample.h diff --git a/src/igl/vector_area_matrix.cpp b/src/libigl/igl/vector_area_matrix.cpp index 6464c14a7..6464c14a7 100644 --- a/src/igl/vector_area_matrix.cpp +++ b/src/libigl/igl/vector_area_matrix.cpp diff --git a/src/igl/vector_area_matrix.h b/src/libigl/igl/vector_area_matrix.h index 6d385329c..6d385329c 100644 --- a/src/igl/vector_area_matrix.h +++ b/src/libigl/igl/vector_area_matrix.h diff --git a/src/igl/verbose.h b/src/libigl/igl/verbose.h index e4aa86958..e4aa86958 100644 --- a/src/igl/verbose.h +++ b/src/libigl/igl/verbose.h diff --git a/src/igl/vertex_triangle_adjacency.cpp b/src/libigl/igl/vertex_triangle_adjacency.cpp index 352d06244..352d06244 100644 --- a/src/igl/vertex_triangle_adjacency.cpp +++ b/src/libigl/igl/vertex_triangle_adjacency.cpp diff --git a/src/igl/vertex_triangle_adjacency.h b/src/libigl/igl/vertex_triangle_adjacency.h index ce67b1f3d..ce67b1f3d 100644 --- a/src/igl/vertex_triangle_adjacency.h +++ b/src/libigl/igl/vertex_triangle_adjacency.h diff --git a/src/igl/volume.cpp b/src/libigl/igl/volume.cpp index 68568cf45..68568cf45 100644 --- a/src/igl/volume.cpp +++ b/src/libigl/igl/volume.cpp diff --git a/src/igl/volume.h b/src/libigl/igl/volume.h index 2dee7cc95..2dee7cc95 100644 --- a/src/igl/volume.h +++ b/src/libigl/igl/volume.h diff --git a/src/igl/voxel_grid.cpp b/src/libigl/igl/voxel_grid.cpp index 388e58af4..388e58af4 100644 --- a/src/igl/voxel_grid.cpp +++ b/src/libigl/igl/voxel_grid.cpp diff --git a/src/igl/voxel_grid.h b/src/libigl/igl/voxel_grid.h index 4f8ac1bcb..4f8ac1bcb 100644 --- a/src/igl/voxel_grid.h +++ b/src/libigl/igl/voxel_grid.h diff --git a/src/igl/winding_number.cpp b/src/libigl/igl/winding_number.cpp index d6af18d98..d6af18d98 100644 --- a/src/igl/winding_number.cpp +++ b/src/libigl/igl/winding_number.cpp diff --git a/src/igl/winding_number.h b/src/libigl/igl/winding_number.h index 4a1c51d81..4a1c51d81 100644 --- a/src/igl/winding_number.h +++ b/src/libigl/igl/winding_number.h diff --git a/src/igl/writeBF.cpp b/src/libigl/igl/writeBF.cpp index 18dc6a934..18dc6a934 100644 --- a/src/igl/writeBF.cpp +++ b/src/libigl/igl/writeBF.cpp diff --git a/src/igl/writeBF.h b/src/libigl/igl/writeBF.h index 5ea51f1bc..5ea51f1bc 100644 --- a/src/igl/writeBF.h +++ b/src/libigl/igl/writeBF.h diff --git a/src/igl/writeDMAT.cpp b/src/libigl/igl/writeDMAT.cpp index c8f6ae0f6..c8f6ae0f6 100644 --- a/src/igl/writeDMAT.cpp +++ b/src/libigl/igl/writeDMAT.cpp diff --git a/src/igl/writeDMAT.h b/src/libigl/igl/writeDMAT.h index 08409ef67..08409ef67 100644 --- a/src/igl/writeDMAT.h +++ b/src/libigl/igl/writeDMAT.h diff --git a/src/igl/writeMESH.cpp b/src/libigl/igl/writeMESH.cpp index 27b0123cb..27b0123cb 100644 --- a/src/igl/writeMESH.cpp +++ b/src/libigl/igl/writeMESH.cpp diff --git a/src/igl/writeMESH.h b/src/libigl/igl/writeMESH.h index 4bb51418e..4bb51418e 100644 --- a/src/igl/writeMESH.h +++ b/src/libigl/igl/writeMESH.h diff --git a/src/igl/writeOBJ.cpp b/src/libigl/igl/writeOBJ.cpp index 286254174..286254174 100644 --- a/src/igl/writeOBJ.cpp +++ b/src/libigl/igl/writeOBJ.cpp diff --git a/src/igl/writeOBJ.h b/src/libigl/igl/writeOBJ.h index d515796db..d515796db 100644 --- a/src/igl/writeOBJ.h +++ b/src/libigl/igl/writeOBJ.h diff --git a/src/igl/writeOFF.cpp b/src/libigl/igl/writeOFF.cpp index 9222d76a0..9222d76a0 100644 --- a/src/igl/writeOFF.cpp +++ b/src/libigl/igl/writeOFF.cpp diff --git a/src/igl/writeOFF.h b/src/libigl/igl/writeOFF.h index 754c18a53..754c18a53 100644 --- a/src/igl/writeOFF.h +++ b/src/libigl/igl/writeOFF.h diff --git a/src/igl/writePLY.cpp b/src/libigl/igl/writePLY.cpp index 55c9b83fd..55c9b83fd 100644 --- a/src/igl/writePLY.cpp +++ b/src/libigl/igl/writePLY.cpp diff --git a/src/igl/writePLY.h b/src/libigl/igl/writePLY.h index 8b99ea1d0..8b99ea1d0 100644 --- a/src/igl/writePLY.h +++ b/src/libigl/igl/writePLY.h diff --git a/src/igl/writeSTL.cpp b/src/libigl/igl/writeSTL.cpp index d95f2a8d7..d95f2a8d7 100644 --- a/src/igl/writeSTL.cpp +++ b/src/libigl/igl/writeSTL.cpp diff --git a/src/igl/writeSTL.h b/src/libigl/igl/writeSTL.h index 1ffd20281..1ffd20281 100644 --- a/src/igl/writeSTL.h +++ b/src/libigl/igl/writeSTL.h diff --git a/src/igl/writeTGF.cpp b/src/libigl/igl/writeTGF.cpp index 65c8fc6a4..65c8fc6a4 100644 --- a/src/igl/writeTGF.cpp +++ b/src/libigl/igl/writeTGF.cpp diff --git a/src/igl/writeTGF.h b/src/libigl/igl/writeTGF.h index 999584463..999584463 100644 --- a/src/igl/writeTGF.h +++ b/src/libigl/igl/writeTGF.h diff --git a/src/igl/writeWRL.cpp b/src/libigl/igl/writeWRL.cpp index 2740d1c2f..2740d1c2f 100644 --- a/src/igl/writeWRL.cpp +++ b/src/libigl/igl/writeWRL.cpp diff --git a/src/igl/writeWRL.h b/src/libigl/igl/writeWRL.h index 5ff6a25ed..5ff6a25ed 100644 --- a/src/igl/writeWRL.h +++ b/src/libigl/igl/writeWRL.h diff --git a/src/igl/write_triangle_mesh.cpp b/src/libigl/igl/write_triangle_mesh.cpp index 3699009f5..3699009f5 100644 --- a/src/igl/write_triangle_mesh.cpp +++ b/src/libigl/igl/write_triangle_mesh.cpp diff --git a/src/igl/write_triangle_mesh.h b/src/libigl/igl/write_triangle_mesh.h index 6a7241628..6a7241628 100644 --- a/src/igl/write_triangle_mesh.h +++ b/src/libigl/igl/write_triangle_mesh.h diff --git a/src/igl/xml/ReAntTweakBarXMLSerialization.h b/src/libigl/igl/xml/ReAntTweakBarXMLSerialization.h index c43af0c80..c43af0c80 100644 --- a/src/igl/xml/ReAntTweakBarXMLSerialization.h +++ b/src/libigl/igl/xml/ReAntTweakBarXMLSerialization.h diff --git a/src/igl/xml/XMLSerializable.h b/src/libigl/igl/xml/XMLSerializable.h index 610559643..610559643 100644 --- a/src/igl/xml/XMLSerializable.h +++ b/src/libigl/igl/xml/XMLSerializable.h diff --git a/src/igl/xml/serialization_test.skip b/src/libigl/igl/xml/serialization_test.skip index 5888075c4..5888075c4 100644 --- a/src/igl/xml/serialization_test.skip +++ b/src/libigl/igl/xml/serialization_test.skip diff --git a/src/igl/xml/serialize_xml.cpp b/src/libigl/igl/xml/serialize_xml.cpp index ee6ea11bc..ee6ea11bc 100644 --- a/src/igl/xml/serialize_xml.cpp +++ b/src/libigl/igl/xml/serialize_xml.cpp diff --git a/src/igl/xml/serialize_xml.h b/src/libigl/igl/xml/serialize_xml.h index 2190f676a..2190f676a 100644 --- a/src/igl/xml/serialize_xml.h +++ b/src/libigl/igl/xml/serialize_xml.h diff --git a/src/igl/xml/writeDAE.cpp b/src/libigl/igl/xml/writeDAE.cpp index 2c2bb4301..2c2bb4301 100644 --- a/src/igl/xml/writeDAE.cpp +++ b/src/libigl/igl/xml/writeDAE.cpp diff --git a/src/igl/xml/writeDAE.h b/src/libigl/igl/xml/writeDAE.h index 731fe7255..731fe7255 100644 --- a/src/igl/xml/writeDAE.h +++ b/src/libigl/igl/xml/writeDAE.h diff --git a/src/igl/xml/write_triangle_mesh.cpp b/src/libigl/igl/xml/write_triangle_mesh.cpp index 1f3d54b8d..1f3d54b8d 100644 --- a/src/igl/xml/write_triangle_mesh.cpp +++ b/src/libigl/igl/xml/write_triangle_mesh.cpp diff --git a/src/igl/xml/write_triangle_mesh.h b/src/libigl/igl/xml/write_triangle_mesh.h index a5f8dad69..a5f8dad69 100644 --- a/src/igl/xml/write_triangle_mesh.h +++ b/src/libigl/igl/xml/write_triangle_mesh.h diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 38e663604..dc52257aa 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -189,6 +189,7 @@ target_include_directories(libslic3r PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIBNE target_link_libraries(libslic3r libnest2d admesh + libigl miniz boost_libs clipper diff --git a/src/libslic3r/GCodeTimeEstimator.cpp b/src/libslic3r/GCodeTimeEstimator.cpp index 60d7a4cdf..b87305da8 100644 --- a/src/libslic3r/GCodeTimeEstimator.cpp +++ b/src/libslic3r/GCodeTimeEstimator.cpp @@ -125,8 +125,8 @@ namespace Slic3r { trapezoid.distance = distance; trapezoid.feedrate = feedrate; - float accelerate_distance = estimate_acceleration_distance(feedrate.entry, feedrate.cruise, acceleration); - float decelerate_distance = estimate_acceleration_distance(feedrate.cruise, feedrate.exit, -acceleration); + float accelerate_distance = std::max(0.0f, estimate_acceleration_distance(feedrate.entry, feedrate.cruise, acceleration)); + float decelerate_distance = std::max(0.0f, estimate_acceleration_distance(feedrate.cruise, feedrate.exit, -acceleration)); float cruise_distance = distance - accelerate_distance - decelerate_distance; // Not enough space to reach the nominal feedrate. diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index ccc629723..accb4e286 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -1409,6 +1409,63 @@ Transformation Transformation::operator * (const Transformation& other) const return Transformation(get_matrix() * other.get_matrix()); } +Transformation Transformation::volume_to_bed_transformation(const Transformation& instance_transformation, const BoundingBoxf3& bbox) +{ + Transformation out; + + if (instance_transformation.is_scaling_uniform()) { + // No need to run the non-linear least squares fitting for uniform scaling. + // Just set the inverse. + out.set_from_transform(instance_transformation.get_matrix(true).inverse()); + } + else if (is_rotation_ninety_degrees(instance_transformation.get_rotation())) + { + // Anisotropic scaling, rotation by multiples of ninety degrees. + Eigen::Matrix3d instance_rotation_trafo = + (Eigen::AngleAxisd(instance_transformation.get_rotation().z(), Vec3d::UnitZ()) * + Eigen::AngleAxisd(instance_transformation.get_rotation().y(), Vec3d::UnitY()) * + Eigen::AngleAxisd(instance_transformation.get_rotation().x(), Vec3d::UnitX())).toRotationMatrix(); + Eigen::Matrix3d volume_rotation_trafo = + (Eigen::AngleAxisd(-instance_transformation.get_rotation().x(), Vec3d::UnitX()) * + Eigen::AngleAxisd(-instance_transformation.get_rotation().y(), Vec3d::UnitY()) * + Eigen::AngleAxisd(-instance_transformation.get_rotation().z(), Vec3d::UnitZ())).toRotationMatrix(); + + // 8 corners of the bounding box. + auto pts = Eigen::MatrixXd(8, 3); + pts(0, 0) = bbox.min.x(); pts(0, 1) = bbox.min.y(); pts(0, 2) = bbox.min.z(); + pts(1, 0) = bbox.min.x(); pts(1, 1) = bbox.min.y(); pts(1, 2) = bbox.max.z(); + pts(2, 0) = bbox.min.x(); pts(2, 1) = bbox.max.y(); pts(2, 2) = bbox.min.z(); + pts(3, 0) = bbox.min.x(); pts(3, 1) = bbox.max.y(); pts(3, 2) = bbox.max.z(); + pts(4, 0) = bbox.max.x(); pts(4, 1) = bbox.min.y(); pts(4, 2) = bbox.min.z(); + pts(5, 0) = bbox.max.x(); pts(5, 1) = bbox.min.y(); pts(5, 2) = bbox.max.z(); + pts(6, 0) = bbox.max.x(); pts(6, 1) = bbox.max.y(); pts(6, 2) = bbox.min.z(); + pts(7, 0) = bbox.max.x(); pts(7, 1) = bbox.max.y(); pts(7, 2) = bbox.max.z(); + + // Corners of the bounding box transformed into the modifier mesh coordinate space, with inverse rotation applied to the modifier. + auto qs = pts * + (instance_rotation_trafo * + Eigen::Scaling(instance_transformation.get_scaling_factor().cwiseProduct(instance_transformation.get_mirror())) * + volume_rotation_trafo).inverse().transpose(); + // Fill in scaling based on least squares fitting of the bounding box corners. + Vec3d scale; + for (int i = 0; i < 3; ++i) + scale(i) = pts.col(i).dot(qs.col(i)) / pts.col(i).dot(pts.col(i)); + + out.set_rotation(Geometry::extract_euler_angles(volume_rotation_trafo)); + out.set_scaling_factor(Vec3d(std::abs(scale(0)), std::abs(scale(1)), std::abs(scale(2)))); + out.set_mirror(Vec3d(scale(0) > 0 ? 1. : -1, scale(1) > 0 ? 1. : -1, scale(2) > 0 ? 1. : -1)); + } + else + { + // General anisotropic scaling, general rotation. + // Keep the modifier mesh in the instance coordinate system, so the modifier mesh will not be aligned with the world. + // Scale it to get the required size. + out.set_scaling_factor(instance_transformation.get_scaling_factor().cwiseInverse()); + } + + return out; +} + Eigen::Quaterniond rotation_xyz_diff(const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to) { return diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index 033c24a84..bcbe80a0d 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -258,6 +258,11 @@ public: const Transform3d& get_matrix(bool dont_translate = false, bool dont_rotate = false, bool dont_scale = false, bool dont_mirror = false) const; Transformation operator * (const Transformation& other) const; + + // Find volume transformation, so that the chained (instance_trafo * volume_trafo) will be as close to identity + // as possible in least squares norm in regard to the 8 corners of bbox. + // Bounding box is expected to be centered around zero in all axes. + static Transformation volume_to_bed_transformation(const Transformation& instance_transformation, const BoundingBoxf3& bbox); }; // Rotation when going from the first coordinate system with rotation rot_xyz_from applied diff --git a/src/libslic3r/MTUtils.hpp b/src/libslic3r/MTUtils.hpp index 0afe3563f..b261a79be 100644 --- a/src/libslic3r/MTUtils.hpp +++ b/src/libslic3r/MTUtils.hpp @@ -1,172 +1,218 @@ #ifndef MTUTILS_HPP #define MTUTILS_HPP -#include <atomic> // for std::atomic_flag and memory orders -#include <mutex> // for std::lock_guard -#include <functional> // for std::function -#include <utility> // for std::forward +#include <atomic> // for std::atomic_flag and memory orders +#include <mutex> // for std::lock_guard +#include <functional> // for std::function +#include <utility> // for std::forward #include <algorithm> namespace Slic3r { /// Handy little spin mutex for the cached meshes. /// Implements the "Lockable" concept -class SpinMutex { - std::atomic_flag m_flg; +class SpinMutex +{ + std::atomic_flag m_flg; static const /*constexpr*/ auto MO_ACQ = std::memory_order_acquire; static const /*constexpr*/ auto MO_REL = std::memory_order_release; + public: inline SpinMutex() { m_flg.clear(MO_REL); } - inline void lock() { while(m_flg.test_and_set(MO_ACQ)); } + inline void lock() { while (m_flg.test_and_set(MO_ACQ)) ; } inline bool try_lock() { return !m_flg.test_and_set(MO_ACQ); } inline void unlock() { m_flg.clear(MO_REL); } }; /// A wrapper class around arbitrary object that needs thread safe caching. -template<class T> class CachedObject { +template<class T> class CachedObject +{ public: // Method type which refreshes the object when it has been invalidated - using Setter = std::function<void(T&)>; + using Setter = std::function<void(T &)>; + private: - T m_obj; // the object itself - bool m_valid; // invalidation flag - SpinMutex m_lck; // to make the caching thread safe + T m_obj; // the object itself + bool m_valid; // invalidation flag + SpinMutex m_lck; // to make the caching thread safe - // the setter will be called just before the object's const value is about - // to be retrieved. - std::function<void(T&)> m_setter; -public: + // the setter will be called just before the object's const value is + // about to be retrieved. + std::function<void(T &)> m_setter; +public: // Forwarded constructor - template<class...Args> inline CachedObject(Setter fn, Args&&...args): - m_obj(std::forward<Args>(args)...), m_valid(false), m_setter(fn) {} - - // invalidate the value of the object. The object will be refreshed at the - // next retrieval (Setter will be called). The data that is used in - // the setter function should be guarded as well during modification so the - // modification has to take place in fn. - inline void invalidate(std::function<void()> fn) { - std::lock_guard<SpinMutex> lck(m_lck); fn(); m_valid = false; + template<class... Args> + inline CachedObject(Setter fn, Args &&... args) + : m_obj(std::forward<Args>(args)...), m_valid(false), m_setter(fn) + {} + + // invalidate the value of the object. The object will be refreshed at + // the next retrieval (Setter will be called). The data that is used in + // the setter function should be guarded as well during modification so + // the modification has to take place in fn. + inline void invalidate(std::function<void()> fn) + { + std::lock_guard<SpinMutex> lck(m_lck); + fn(); + m_valid = false; } // Get the const object properly updated. - inline const T& get() { + inline const T &get() + { std::lock_guard<SpinMutex> lck(m_lck); - if(!m_valid) { m_setter(m_obj); m_valid = true; } + if (!m_valid) { + m_setter(m_obj); + m_valid = true; + } return m_obj; } }; -/// An std compatible random access iterator which uses indices to the source -/// vector thus resistant to invalidation caused by relocations. It also "knows" -/// its container. No comparison is neccesary to the container "end()" iterator. -/// The template can be instantiated with a different value type than that of -/// the container's but the types must be compatible. E.g. a base class of the -/// contained objects is compatible. +/// An std compatible random access iterator which uses indices to the +/// source vector thus resistant to invalidation caused by relocations. It +/// also "knows" its container. No comparison is neccesary to the container +/// "end()" iterator. The template can be instantiated with a different +/// value type than that of the container's but the types must be +/// compatible. E.g. a base class of the contained objects is compatible. /// /// For a constant iterator, one can instantiate this template with a value /// type preceded with 'const'. -template<class Vector, // The container type, must be random access... +template<class Vector, // The container type, must be random access... class Value = typename Vector::value_type // The value type > -class IndexBasedIterator { +class IndexBasedIterator +{ static const size_t NONE = size_t(-1); std::reference_wrapper<Vector> m_index_ref; - size_t m_idx = NONE; -public: + size_t m_idx = NONE; - using value_type = Value; - using pointer = Value *; - using reference = Value &; - using difference_type = long; +public: + using value_type = Value; + using pointer = Value *; + using reference = Value &; + using difference_type = long; using iterator_category = std::random_access_iterator_tag; - inline explicit - IndexBasedIterator(Vector& index, size_t idx): - m_index_ref(index), m_idx(idx) {} + inline explicit IndexBasedIterator(Vector &index, size_t idx) + : m_index_ref(index), m_idx(idx) + {} // Post increment - inline IndexBasedIterator operator++(int) { - IndexBasedIterator cpy(*this); ++m_idx; return cpy; + inline IndexBasedIterator operator++(int) + { + IndexBasedIterator cpy(*this); + ++m_idx; + return cpy; } - inline IndexBasedIterator operator--(int) { - IndexBasedIterator cpy(*this); --m_idx; return cpy; + inline IndexBasedIterator operator--(int) + { + IndexBasedIterator cpy(*this); + --m_idx; + return cpy; } - inline IndexBasedIterator& operator++() { - ++m_idx; return *this; + inline IndexBasedIterator &operator++() + { + ++m_idx; + return *this; } - inline IndexBasedIterator& operator--() { - --m_idx; return *this; + inline IndexBasedIterator &operator--() + { + --m_idx; + return *this; } - inline IndexBasedIterator& operator+=(difference_type l) { - m_idx += size_t(l); return *this; + inline IndexBasedIterator &operator+=(difference_type l) + { + m_idx += size_t(l); + return *this; } - inline IndexBasedIterator operator+(difference_type l) { - auto cpy = *this; cpy += l; return cpy; + inline IndexBasedIterator operator+(difference_type l) + { + auto cpy = *this; + cpy += l; + return cpy; } - inline IndexBasedIterator& operator-=(difference_type l) { - m_idx -= size_t(l); return *this; + inline IndexBasedIterator &operator-=(difference_type l) + { + m_idx -= size_t(l); + return *this; } - inline IndexBasedIterator operator-(difference_type l) { - auto cpy = *this; cpy -= l; return cpy; + inline IndexBasedIterator operator-(difference_type l) + { + auto cpy = *this; + cpy -= l; + return cpy; } operator difference_type() { return difference_type(m_idx); } /// Tesing the end of the container... this is not possible with std /// iterators. - inline bool is_end() const { return m_idx >= m_index_ref.get().size();} + inline bool is_end() const + { + return m_idx >= m_index_ref.get().size(); + } - inline Value & operator*() const { + inline Value &operator*() const + { assert(m_idx < m_index_ref.get().size()); return m_index_ref.get().operator[](m_idx); } - inline Value * operator->() const { + inline Value *operator->() const + { assert(m_idx < m_index_ref.get().size()); return &m_index_ref.get().operator[](m_idx); } /// If both iterators point past the container, they are equal... - inline bool operator ==(const IndexBasedIterator& other) { + inline bool operator==(const IndexBasedIterator &other) + { size_t e = m_index_ref.get().size(); return m_idx == other.m_idx || (m_idx >= e && other.m_idx >= e); } - inline bool operator !=(const IndexBasedIterator& other) { + inline bool operator!=(const IndexBasedIterator &other) + { return !(*this == other); } - inline bool operator <=(const IndexBasedIterator& other) { + inline bool operator<=(const IndexBasedIterator &other) + { return (m_idx < other.m_idx) || (*this == other); } - inline bool operator <(const IndexBasedIterator& other) { + inline bool operator<(const IndexBasedIterator &other) + { return m_idx < other.m_idx && (*this != other); } - inline bool operator >=(const IndexBasedIterator& other) { + inline bool operator>=(const IndexBasedIterator &other) + { return m_idx > other.m_idx || *this == other; } - inline bool operator >(const IndexBasedIterator& other) { + inline bool operator>(const IndexBasedIterator &other) + { return m_idx > other.m_idx && *this != other; } }; /// A very simple range concept implementation with iterator-like objects. -template<class It> class Range { +template<class It> class Range +{ It from, to; -public: +public: // The class is ready for range based for loops. It begin() const { return from; } It end() const { return to; } @@ -175,15 +221,17 @@ public: using Type = It; Range() = default; - Range(It &&b, It &&e): - from(std::forward<It>(b)), to(std::forward<It>(e)) {} + Range(It &&b, It &&e) + : from(std::forward<It>(b)), to(std::forward<It>(e)) + {} // Some useful container-like methods... inline size_t size() const { return end() - begin(); } - inline bool empty() const { return size() == 0; } + inline bool empty() const { return size() == 0; } }; -template<class C> bool all_of(const C &container) { +template<class C> bool all_of(const C &container) +{ return std::all_of(container.begin(), container.end(), [](const typename C::value_type &v) { @@ -191,6 +239,15 @@ template<class C> bool all_of(const C &container) { }); } +template<class X, class Y> inline X ceil_i(X x, Y y) +{ + static_assert(std::is_integral<X>::value && + std::is_integral<Y>::value && sizeof(X) >= sizeof(Y), + ""); + + return (x % y) ? x / y + 1 : x / y; } +} // namespace Slic3r + #endif // MTUTILS_HPP diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 8e879a3e6..596f80671 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -489,21 +489,57 @@ void Model::convert_multipart_object(unsigned int max_extruders) reset_auto_extruder_id(); + bool is_single_object = (this->objects.size() == 1); + for (const ModelObject* o : this->objects) + { for (const ModelVolume* v : o->volumes) { - ModelVolume* new_v = object->add_volume(*v); - if (new_v != nullptr) + if (is_single_object) + { + // If there is only one object, just copy the volumes + ModelVolume* new_v = object->add_volume(*v); + if (new_v != nullptr) + { + new_v->name = o->name; + new_v->config.set_deserialize("extruder", get_auto_extruder_id_as_string(max_extruders)); + new_v->translate(-o->origin_translation); + } + } + else { - new_v->name = o->name; - new_v->config.set_deserialize("extruder", get_auto_extruder_id_as_string(max_extruders)); - new_v->translate(-o->origin_translation); + // If there are more than one object, put all volumes together + // Each object may contain any number of volumes and instances + // The volumes transformations are relative to the object containing them... + int counter = 1; + for (const ModelInstance* i : o->instances) + { + ModelVolume* new_v = object->add_volume(*v); + if (new_v != nullptr) + { + new_v->name = o->name + "_" + std::to_string(counter++); + new_v->config.set_deserialize("extruder", get_auto_extruder_id_as_string(max_extruders)); + new_v->translate(-o->origin_translation); + // ...so, transform everything to a common reference system (world) + new_v->set_transformation(i->get_transformation() * v->get_transformation()); + } + } } } + } + + if (is_single_object) + { + // If there is only one object, keep its instances + for (const ModelInstance* i : this->objects.front()->instances) + { + object->add_instance(*i); + } + } + else + // If there are more than one object, create a single instance + object->add_instance(); - for (const ModelInstance* i : this->objects.front()->instances) - object->add_instance(*i); - this->clear_objects(); this->objects.push_back(object); } diff --git a/src/libslic3r/ModelArrange.cpp b/src/libslic3r/ModelArrange.cpp index a440c3999..36f7e3971 100644 --- a/src/libslic3r/ModelArrange.cpp +++ b/src/libslic3r/ModelArrange.cpp @@ -2,6 +2,7 @@ #include "Model.hpp" #include "Geometry.hpp" #include "SVG.hpp" +#include "MTUtils.hpp" #include <libnest2d.h> @@ -820,15 +821,13 @@ bool arrange(Model &model, // The model with the geometries BoundingBox bbb(bed); auto& cfn = stopcondition; + + coord_t md = ceil_i(min_obj_distance, 2) - SCALED_EPSILON; - auto binbb = Box({ - static_cast<libnest2d::Coord>(bbb.min(0)), - static_cast<libnest2d::Coord>(bbb.min(1)) - }, - { - static_cast<libnest2d::Coord>(bbb.max(0)), - static_cast<libnest2d::Coord>(bbb.max(1)) - }); + auto binbb = Box({libnest2d::Coord{bbb.min(0)} - md, + libnest2d::Coord{bbb.min(1)} - md}, + {libnest2d::Coord{bbb.max(0)} + md, + libnest2d::Coord{bbb.max(1)} + md}); switch(bedhint.type) { case BedShapeType::BOX: { @@ -916,15 +915,13 @@ void find_new_position(const Model &model, BedShapeHint bedhint = bedShape(bed); BoundingBox bbb(bed); - - auto binbb = Box({ - static_cast<libnest2d::Coord>(bbb.min(0)), - static_cast<libnest2d::Coord>(bbb.min(1)) - }, - { - static_cast<libnest2d::Coord>(bbb.max(0)), - static_cast<libnest2d::Coord>(bbb.max(1)) - }); + + coord_t md = ceil_i(min_obj_distance, 2) - SCALED_EPSILON; + + auto binbb = Box({libnest2d::Coord{bbb.min(0)} - md, + libnest2d::Coord{bbb.min(1)} - md}, + {libnest2d::Coord{bbb.max(0)} + md, + libnest2d::Coord{bbb.max(1)} + md}); for(auto it = shapemap.begin(); it != shapemap.end(); ++it) { if(std::find(toadd.begin(), toadd.end(), it->first) == toadd.end()) { diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index bffc45cde..a5f93b24f 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -13,6 +13,8 @@ #define ENABLE_RENDER_SELECTION_CENTER 0 // Shows an imgui dialog with render related data #define ENABLE_RENDER_STATISTICS 0 +// Shows an imgui dialog with camera related data +#define ENABLE_CAMERA_STATISTICS 0 //==================== diff --git a/src/slic3r/Config/Version.cpp b/src/slic3r/Config/Version.cpp index fe3adfd7f..865884c6f 100644 --- a/src/slic3r/Config/Version.cpp +++ b/src/slic3r/Config/Version.cpp @@ -192,6 +192,7 @@ size_t Index::load(const boost::filesystem::path &path) { m_configs.clear(); m_vendor = path.stem().string(); + m_path = path; boost::nowide::ifstream ifs(path.string()); std::string line; diff --git a/src/slic3r/Config/Version.hpp b/src/slic3r/Config/Version.hpp index e689286af..560bc29c2 100644 --- a/src/slic3r/Config/Version.hpp +++ b/src/slic3r/Config/Version.hpp @@ -72,6 +72,9 @@ public: // if the index is valid. const_iterator recommended() const; + // Returns the filesystem path from which this index has originally been loaded + const boost::filesystem::path& path() const { return m_path; } + // Load all vendor specific indices. // Throws Slic3r::file_parser_error and the standard std file access exceptions. static std::vector<Index> load_db(); @@ -79,6 +82,7 @@ public: private: std::string m_vendor; std::vector<Version> m_configs; + boost::filesystem::path m_path; }; } // namespace Config diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 8392e534a..d73e423e0 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -9,6 +9,7 @@ #include "GUI_App.hpp" #include "PresetBundle.hpp" #include "Gizmos/GLGizmoBase.hpp" +#include "GLCanvas3D.hpp" #include <GL/glew.h> @@ -211,7 +212,7 @@ const double Bed3D::Axes::ArrowLength = 5.0; Bed3D::Axes::Axes() : origin(Vec3d::Zero()) -, length(Vec3d::Zero()) +, length(25.0 * Vec3d::Ones()) { m_quadric = ::gluNewQuadric(); if (m_quadric != nullptr) @@ -273,6 +274,7 @@ void Bed3D::Axes::render_axis(double length) const Bed3D::Bed3D() : m_type(Custom) + , m_requires_canvas_update(false) #if ENABLE_TEXTURES_FROM_SVG , m_vbo_id(0) #endif // ENABLE_TEXTURES_FROM_SVG @@ -290,7 +292,7 @@ bool Bed3D::set_shape(const Pointfs& shape) m_shape = shape; m_type = new_type; - calc_bounding_box(); + calc_bounding_boxes(); ExPolygon poly; for (const Vec2d& p : m_shape) @@ -311,7 +313,7 @@ bool Bed3D::set_shape(const Pointfs& shape) // Set the origin and size for painting of the coordinate system axes. m_axes.origin = Vec3d(0.0, 0.0, (double)GROUND_Z); - m_axes.length = 0.1 * get_bounding_box().max_size() * Vec3d::Ones(); + m_axes.length = 0.1 * m_bounding_box.max_size() * Vec3d::Ones(); // Let the calee to update the UI. return true; @@ -328,27 +330,26 @@ Point Bed3D::point_projection(const Point& point) const } #if ENABLE_TEXTURES_FROM_SVG -void Bed3D::render(float theta, bool useVBOs, float scale_factor) const +void Bed3D::render(GLCanvas3D* canvas, float theta, bool useVBOs, float scale_factor) const { m_scale_factor = scale_factor; EType type = useVBOs ? m_type : Custom; switch (type) - { case MK2: { - render_prusa("mk2", theta > 90.0f); + render_prusa(canvas, "mk2", theta > 90.0f); break; } case MK3: { - render_prusa("mk3", theta > 90.0f); + render_prusa(canvas, "mk3", theta > 90.0f); break; } case SL1: { - render_prusa("sl1", theta > 90.0f); + render_prusa(canvas, "sl1", theta > 90.0f); break; } default: @@ -360,7 +361,7 @@ void Bed3D::render(float theta, bool useVBOs, float scale_factor) const } } #else -void Bed3D::render(float theta, bool useVBOs, float scale_factor) const +void Bed3D::render(GLCanvas3D* canvas, float theta, bool useVBOs, float scale_factor) const { m_scale_factor = scale_factor; @@ -371,17 +372,17 @@ void Bed3D::render(float theta, bool useVBOs, float scale_factor) const { case MK2: { - render_prusa("mk2", theta, useVBOs); + render_prusa(canvas, "mk2", theta, useVBOs); break; } case MK3: { - render_prusa("mk3", theta, useVBOs); + render_prusa(canvas, "mk3", theta, useVBOs); break; } case SL1: { - render_prusa("sl1", theta, useVBOs); + render_prusa(canvas, "sl1", theta, useVBOs); break; } default: @@ -400,13 +401,22 @@ void Bed3D::render_axes() const m_axes.render(); } -void Bed3D::calc_bounding_box() +void Bed3D::calc_bounding_boxes() const { m_bounding_box = BoundingBoxf3(); for (const Vec2d& p : m_shape) { m_bounding_box.merge(Vec3d(p(0), p(1), 0.0)); } + + m_extended_bounding_box = m_bounding_box; + + // extend to contain axes + m_extended_bounding_box.merge(m_axes.length + Axes::ArrowLength * Vec3d::Ones()); + + // extend to contain model, if any + if (!m_model.get_filename().empty()) + m_extended_bounding_box.merge(m_model.get_transformed_bounding_box()); } void Bed3D::calc_triangles(const ExPolygon& poly) @@ -487,41 +497,51 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const } #if ENABLE_TEXTURES_FROM_SVG -void Bed3D::render_prusa(const std::string &key, bool bottom) const +void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom) const { std::string tex_path = resources_dir() + "/icons/bed/" + key; std::string model_path = resources_dir() + "/models/" + key; - // use anisotropic filter if graphic card allows - GLfloat max_anisotropy = 0.0f; - if (glewIsSupported("GL_EXT_texture_filter_anisotropic")) - glsafe(::glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max_anisotropy)); - - // use higher resolution images if graphic card allows - GLint max_tex_size; - glsafe(::glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_tex_size)); - - // clamp or the texture generation becomes too slow - max_tex_size = std::min(max_tex_size, 8192); + // use higher resolution images if graphic card and opengl version allow + GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); std::string filename = tex_path + ".svg"; if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { - if (!m_texture.load_from_svg_file(filename, true, max_tex_size)) + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) { render_custom(); return; } - if (max_anisotropy > 0.0f) + // starts generating the main texture, compression will run asynchronously + if (!m_texture.load_from_svg_file(filename, true, true, true, max_tex_size)) { - glsafe(::glBindTexture(GL_TEXTURE_2D, m_texture.get_id())); - glsafe(::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy)); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); + render_custom(); + return; } } + else if (m_texture.unsent_compressed_data_available()) + { + // sends to gpu the already available compressed levels of the main texture + m_texture.send_compressed_data_to_gpu(); + + // the temporary texture is not needed anymore, reset it + if (m_temp_texture.get_id() != 0) + m_temp_texture.reset(); + + m_requires_canvas_update = true; + } + else if (m_requires_canvas_update && m_texture.all_compressed_data_sent_to_gpu()) + { + if (canvas != nullptr) + canvas->stop_keeping_dirty(); + + m_requires_canvas_update = false; + } if (!bottom) { @@ -539,6 +559,9 @@ void Bed3D::render_prusa(const std::string &key, bool bottom) const offset += Vec3d(0.0, 0.0, -0.03); m_model.center_around(offset); + + // update extended bounding box + calc_bounding_boxes(); } if (!m_model.get_filename().empty()) @@ -594,7 +617,12 @@ void Bed3D::render_prusa_shader(bool transparent) const GLint position_id = m_shader.get_attrib_location("v_position"); GLint tex_coords_id = m_shader.get_attrib_location("v_tex_coords"); - glsafe(::glBindTexture(GL_TEXTURE_2D, (GLuint)m_texture.get_id())); + // show the temporary texture while no compressed data is available + GLuint tex_id = (GLuint)m_temp_texture.get_id(); + if (tex_id == 0) + tex_id = (GLuint)m_texture.get_id(); + + glsafe(::glBindTexture(GL_TEXTURE_2D, tex_id)); glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); if (position_id != -1) diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index e60cdf94e..68a74f61c 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -13,6 +13,8 @@ typedef class GLUquadric GLUquadricObj; namespace Slic3r { namespace GUI { +class GLCanvas3D; + class GeometryBuffer { #if ENABLE_TEXTURES_FROM_SVG @@ -85,12 +87,17 @@ public: private: EType m_type; Pointfs m_shape; - BoundingBoxf3 m_bounding_box; + mutable BoundingBoxf3 m_bounding_box; + mutable BoundingBoxf3 m_extended_bounding_box; Polygon m_polygon; GeometryBuffer m_triangles; GeometryBuffer m_gridlines; #if ENABLE_TEXTURES_FROM_SVG mutable GLTexture m_texture; + // temporary texture shown until the main texture has still no levels compressed + mutable GLTexture m_temp_texture; + // used to trigger 3D scene update once all compressed textures have been sent to GPU + mutable bool m_requires_canvas_update; mutable Shader m_shader; mutable unsigned int m_vbo_id; #else @@ -117,20 +124,20 @@ public: // Return true if the bed shape changed, so the calee will update the UI. bool set_shape(const Pointfs& shape); - const BoundingBoxf3& get_bounding_box() const { return m_bounding_box; } + const BoundingBoxf3& get_bounding_box(bool extended) const { return extended ? m_extended_bounding_box : m_bounding_box; } bool contains(const Point& point) const; Point point_projection(const Point& point) const; - void render(float theta, bool useVBOs, float scale_factor) const; + void render(GLCanvas3D* canvas, float theta, bool useVBOs, float scale_factor) const; void render_axes() const; private: - void calc_bounding_box(); + void calc_bounding_boxes() const; void calc_triangles(const ExPolygon& poly); void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); EType detect_type(const Pointfs& shape) const; #if ENABLE_TEXTURES_FROM_SVG - void render_prusa(const std::string& key, bool bottom) const; + void render_prusa(GLCanvas3D* canvas, const std::string& key, bool bottom) const; void render_prusa_shader(bool transparent) const; #else void render_prusa(const std::string &key, float theta, bool useVBOs) const; diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 33ab1f5d1..f9a79f2d8 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -2015,7 +2015,7 @@ bool GLBed::on_init_from_file(const std::string& filename, bool useVBOs) std::string _3DScene::get_gl_info(bool format_as_html, bool extensions) { - return s_canvas_mgr.get_gl_info(format_as_html, extensions); + return Slic3r::GUI::GLCanvas3DManager::get_gl_info().to_string(format_as_html, extensions); } bool _3DScene::add_canvas(wxGLCanvas* canvas, GUI::Bed3D& bed, GUI::Camera& camera, GUI::GLToolbar& view_toolbar) diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index 0414a1ed3..d197372ab 100644 --- a/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp @@ -555,6 +555,7 @@ public: const std::string& get_filename() const { return m_filename; } const BoundingBoxf3& get_bounding_box() const { return m_volume.bounding_box; } + const BoundingBoxf3& get_transformed_bounding_box() const { return m_volume.transformed_bounding_box(); } void reset(); diff --git a/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index d4970880b..edc9845a1 100644 --- a/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp @@ -73,6 +73,9 @@ void AppConfig::set_defaults() if (get("custom_toolbar_size").empty()) set("custom_toolbar_size", "100"); + if (get("camera_type").empty()) + set("camera_type", "1"); + // Remove legacy window positions/sizes erase("", "main_frame_maximized"); erase("", "main_frame_pos"); diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index dd6cbefe1..1f8513ac2 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -2,6 +2,8 @@ #include "Camera.hpp" #include "3DScene.hpp" +#include "GUI_App.hpp" +#include "AppConfig.hpp" #include <GL/glew.h> @@ -19,32 +21,71 @@ static const float VIEW_REAR[2] = { 180.0f, 90.0f }; namespace Slic3r { namespace GUI { +const double Camera::DefaultDistance = 1000.0; +double Camera::FrustrumMinZSize = 50.0; +double Camera::FrustrumZMargin = 10.0; +double Camera::FovMinDeg = 5.0; +double Camera::FovMaxDeg = 75.0; + Camera::Camera() - : type(Ortho) - , zoom(1.0f) - , phi(45.0f) -// , distance(0.0f) + : phi(45.0f) , requires_zoom_to_bed(false) , inverted_phi(false) - , m_theta(45.0f) + , m_type(Ortho) , m_target(Vec3d::Zero()) + , m_theta(45.0f) + , m_zoom(1.0) + , m_distance(DefaultDistance) + , m_gui_scale(1.0) + , m_view_matrix(Transform3d::Identity()) + , m_projection_matrix(Transform3d::Identity()) { } std::string Camera::get_type_as_string() const { - switch (type) + switch (m_type) { - default: case Unknown: return "unknown"; -// case Perspective: -// return "perspective"; + case Perspective: + return "perspective"; + default: case Ortho: - return "ortho"; + return "orthographic"; }; } +void Camera::set_type(EType type) +{ + if (m_type != type) + { + m_type = type; + + wxGetApp().app_config->set("camera_type", std::to_string(m_type)); + wxGetApp().app_config->save(); + } +} + +void Camera::set_type(const std::string& type) +{ + if (!type.empty() && (type != "1")) + { + unsigned char type_id = atoi(type.c_str()); + if (((unsigned char)Ortho < type_id) && (type_id < (unsigned char)Num_types)) + set_type((Camera::EType)type_id); + } +} + +void Camera::select_next_type() +{ + unsigned char next = (unsigned char)m_type + 1; + if (next == (unsigned char)Num_types) + next = 1; + + set_type((EType)next); +} + void Camera::set_target(const Vec3d& target) { m_target = target; @@ -65,9 +106,20 @@ void Camera::set_theta(float theta, bool apply_limit) } } -void Camera::set_scene_box(const BoundingBoxf3& box) +void Camera::set_zoom(double zoom, const BoundingBoxf3& max_box, int canvas_w, int canvas_h) { - m_scene_box = box; + zoom = std::max(std::min(zoom, 4.0), -4.0) / 10.0; + zoom = m_zoom / (1.0 - zoom); + + // Don't allow to zoom too far outside the scene. + double zoom_min = calc_zoom_to_bounding_box_factor(max_box, canvas_w, canvas_h); + if (zoom_min > 0.0) + zoom = std::max(zoom, zoom_min * 0.7); + + // Don't allow to zoom too close to the scene. + zoom = std::min(zoom, 100.0); + + m_zoom = zoom; } bool Camera::select_view(const std::string& direction) @@ -99,6 +151,18 @@ bool Camera::select_view(const std::string& direction) return false; } +double Camera::get_fov() const +{ + switch (m_type) + { + case Perspective: + return 2.0 * Geometry::rad2deg(std::atan(1.0 / m_projection_matrix.matrix()(1, 1))); + default: + case Ortho: + return 0.0; + }; +} + void Camera::apply_viewport(int x, int y, unsigned int w, unsigned int h) const { glsafe(::glViewport(0, 0, w, h)); @@ -107,27 +171,268 @@ void Camera::apply_viewport(int x, int y, unsigned int w, unsigned int h) const void Camera::apply_view_matrix() const { + double theta_rad = Geometry::deg2rad(-(double)m_theta); + double phi_rad = Geometry::deg2rad((double)phi); + double sin_theta = ::sin(theta_rad); + Vec3d camera_pos = m_target + m_distance * Vec3d(sin_theta * ::sin(phi_rad), sin_theta * ::cos(phi_rad), ::cos(theta_rad)); + glsafe(::glMatrixMode(GL_MODELVIEW)); glsafe(::glLoadIdentity()); glsafe(::glRotatef(-m_theta, 1.0f, 0.0f, 0.0f)); // pitch - glsafe(::glRotatef(phi, 0.0f, 0.0f, 1.0f)); // yaw - glsafe(::glTranslated(-m_target(0), -m_target(1), -m_target(2))); + glsafe(::glRotatef(phi, 0.0f, 0.0f, 1.0f)); // yaw + + glsafe(::glTranslated(-camera_pos(0), -camera_pos(1), -camera_pos(2))); glsafe(::glGetDoublev(GL_MODELVIEW_MATRIX, m_view_matrix.data())); } -void Camera::apply_ortho_projection(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max) const +void Camera::apply_projection(const BoundingBoxf3& box) const { + m_distance = DefaultDistance; + double w = 0.0; + double h = 0.0; + + while (true) + { + m_frustrum_zs = calc_tight_frustrum_zs_around(box); + + w = (double)m_viewport[2]; + h = (double)m_viewport[3]; + + double two_zoom = 2.0 * m_zoom; + if (two_zoom != 0.0) + { + double inv_two_zoom = 1.0 / two_zoom; + w *= inv_two_zoom; + h *= inv_two_zoom; + } + + switch (m_type) + { + default: + case Ortho: + { + m_gui_scale = 1.0; + break; + } + case Perspective: + { + // scale near plane to keep w and h constant on the plane at z = m_distance + double scale = m_frustrum_zs.first / m_distance; + w *= scale; + h *= scale; + m_gui_scale = scale; + break; + } + } + + if (m_type == Perspective) + { + double fov_rad = 2.0 * std::atan(h / m_frustrum_zs.first); + double fov_deg = Geometry::rad2deg(fov_rad); + + // adjust camera distance to keep fov in a limited range + if (fov_deg > FovMaxDeg + 0.001) + { + double new_near_z = h / ::tan(0.5 * Geometry::deg2rad(FovMaxDeg)); + m_distance += (new_near_z - m_frustrum_zs.first); + apply_view_matrix(); + } + else if (fov_deg < FovMinDeg - 0.001) + { + double new_near_z = h / ::tan(0.5 * Geometry::deg2rad(FovMinDeg)); + m_distance += (new_near_z - m_frustrum_zs.first); + apply_view_matrix(); + } + else + break; + } + else + break; + } + glsafe(::glMatrixMode(GL_PROJECTION)); glsafe(::glLoadIdentity()); - glsafe(::glOrtho(x_min, x_max, y_min, y_max, z_min, z_max)); - glsafe(::glGetDoublev(GL_PROJECTION_MATRIX, m_projection_matrix.data())); + switch (m_type) + { + default: + case Ortho: + { + glsafe(::glOrtho(-w, w, -h, h, m_frustrum_zs.first, m_frustrum_zs.second)); + break; + } + case Perspective: + { + glsafe(::glFrustum(-w, w, -h, h, m_frustrum_zs.first, m_frustrum_zs.second)); + break; + } + } + glsafe(::glGetDoublev(GL_PROJECTION_MATRIX, m_projection_matrix.data())); glsafe(::glMatrixMode(GL_MODELVIEW)); } +void Camera::zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h) +{ + // Calculate the zoom factor needed to adjust the view around the given box. + double zoom = calc_zoom_to_bounding_box_factor(box, canvas_w, canvas_h); + if (zoom > 0.0) + { + m_zoom = zoom; + // center view around box center + m_target = box.center(); + } +} + +#if ENABLE_CAMERA_STATISTICS +void Camera::debug_render() const +{ + ImGuiWrapper& imgui = *wxGetApp().imgui(); + imgui.set_next_window_bg_alpha(0.5f); + imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); + + std::string type = get_type_as_string(); + Vec3f position = get_position().cast<float>(); + Vec3f target = m_target.cast<float>(); + float distance = (float)get_distance(); + Vec3f forward = get_dir_forward().cast<float>(); + Vec3f right = get_dir_right().cast<float>(); + Vec3f up = get_dir_up().cast<float>(); + float nearZ = (float)m_frustrum_zs.first; + float farZ = (float)m_frustrum_zs.second; + float deltaZ = farZ - nearZ; + float zoom = (float)m_zoom; + float fov = (float)get_fov(); + float gui_scale = (float)get_gui_scale(); + + ImGui::InputText("Type", const_cast<char*>(type.data()), type.length(), ImGuiInputTextFlags_ReadOnly); + ImGui::Separator(); + ImGui::InputFloat3("Position", position.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat3("Target", target.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat("Distance", &distance, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::Separator(); + ImGui::InputFloat3("Forward", forward.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat3("Right", right.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat3("Up", up.data(), "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::Separator(); + ImGui::InputFloat("Near Z", &nearZ, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat("Far Z", &farZ, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat("Delta Z", &deltaZ, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::Separator(); + ImGui::InputFloat("Zoom", &zoom, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::InputFloat("Fov", &fov, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + ImGui::Separator(); + ImGui::InputFloat("GUI scale", &gui_scale, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); + imgui.end(); +} +#endif // ENABLE_CAMERA_STATISTICS + +std::pair<double, double> Camera::calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const +{ + std::pair<double, double> ret = std::make_pair(DBL_MAX, -DBL_MAX); + + Vec3d bb_min = box.min; + Vec3d bb_max = box.max; + + // box vertices in world space + std::vector<Vec3d> vertices; + vertices.reserve(8); + vertices.push_back(bb_min); + vertices.emplace_back(bb_max(0), bb_min(1), bb_min(2)); + vertices.emplace_back(bb_max(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_min(1), bb_max(2)); + vertices.emplace_back(bb_max(0), bb_min(1), bb_max(2)); + vertices.push_back(bb_max); + vertices.emplace_back(bb_min(0), bb_max(1), bb_max(2)); + + // set the Z range in eye coordinates (negative Zs are in front of the camera) + for (const Vec3d& v : vertices) + { + double z = -(m_view_matrix * v)(2); + ret.first = std::min(ret.first, z); + ret.second = std::max(ret.second, z); + } + + // apply margin + ret.first -= FrustrumZMargin; + ret.second += FrustrumZMargin; + + // ensure min size + if (ret.second - ret.first < FrustrumMinZSize) + { + double mid_z = 0.5 * (ret.first + ret.second); + double half_size = 0.5 * FrustrumMinZSize; + ret.first = mid_z - half_size; + ret.second = mid_z + half_size; + } + + return ret; +} + +double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h) const +{ + double max_bb_size = box.max_size(); + if (max_bb_size == 0.0) + return -1.0; + + // project the box vertices on a plane perpendicular to the camera forward axis + // then calculates the vertices coordinate on this plane along the camera xy axes + + // ensure that the view matrix is updated + apply_view_matrix(); + + Vec3d right = get_dir_right(); + Vec3d up = get_dir_up(); + Vec3d forward = get_dir_forward(); + + Vec3d bb_min = box.min; + Vec3d bb_max = box.max; + Vec3d bb_center = box.center(); + + // box vertices in world space + std::vector<Vec3d> vertices; + vertices.reserve(8); + vertices.push_back(bb_min); + vertices.emplace_back(bb_max(0), bb_min(1), bb_min(2)); + vertices.emplace_back(bb_max(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_min(1), bb_max(2)); + vertices.emplace_back(bb_max(0), bb_min(1), bb_max(2)); + vertices.push_back(bb_max); + vertices.emplace_back(bb_min(0), bb_max(1), bb_max(2)); + + double max_x = 0.0; + double max_y = 0.0; + + // margin factor to give some empty space around the box + double margin_factor = 1.25; + + for (const Vec3d& v : vertices) + { + // project vertex on the plane perpendicular to camera forward axis + Vec3d pos(v(0) - bb_center(0), v(1) - bb_center(1), v(2) - bb_center(2)); + Vec3d proj_on_plane = pos - pos.dot(forward) * forward; + + // calculates vertex coordinate along camera xy axes + double x_on_plane = proj_on_plane.dot(right); + double y_on_plane = proj_on_plane.dot(up); + + max_x = std::max(max_x, std::abs(x_on_plane)); + max_y = std::max(max_y, std::abs(y_on_plane)); + } + + if ((max_x == 0.0) || (max_y == 0.0)) + return -1.0f; + + max_x *= margin_factor; + max_y *= margin_factor; + + return std::min((double)canvas_w / (2.0 * max_x), (double)canvas_h / (2.0 * max_y)); +} + } // GUI } // Slic3r diff --git a/src/slic3r/GUI/Camera.hpp b/src/slic3r/GUI/Camera.hpp index 1c75ef4b6..bd2541ce2 100644 --- a/src/slic3r/GUI/Camera.hpp +++ b/src/slic3r/GUI/Camera.hpp @@ -9,44 +9,64 @@ namespace GUI { struct Camera { + static const double DefaultDistance; + static double FrustrumMinZSize; + static double FrustrumZMargin; + static double FovMinDeg; + static double FovMaxDeg; + enum EType : unsigned char { Unknown, -// Perspective, Ortho, + Perspective, Num_types }; - EType type; - float zoom; float phi; -// float distance; bool requires_zoom_to_bed; bool inverted_phi; private: + EType m_type; Vec3d m_target; float m_theta; + double m_zoom; + // Distance between camera position and camera target measured along the camera Z axis + mutable double m_distance; + mutable double m_gui_scale; mutable std::array<int, 4> m_viewport; mutable Transform3d m_view_matrix; mutable Transform3d m_projection_matrix; + mutable std::pair<double, double> m_frustrum_zs; BoundingBoxf3 m_scene_box; public: Camera(); + EType get_type() const { return m_type; } std::string get_type_as_string() const; + void set_type(EType type); + void set_type(const std::string& type); + void select_next_type(); const Vec3d& get_target() const { return m_target; } void set_target(const Vec3d& target); + double get_distance() const { return m_distance; } + double get_gui_scale() const { return m_gui_scale; } + float get_theta() const { return m_theta; } void set_theta(float theta, bool apply_limit); + double get_zoom() const { return m_zoom; } + void set_zoom(double zoom, const BoundingBoxf3& max_box, int canvas_w, int canvas_h); + void set_zoom(double zoom) { m_zoom = zoom; } + const BoundingBoxf3& get_scene_box() const { return m_scene_box; } - void set_scene_box(const BoundingBoxf3& box); + void set_scene_box(const BoundingBoxf3& box) { m_scene_box = box; } bool select_view(const std::string& direction); @@ -60,9 +80,26 @@ public: Vec3d get_position() const { return m_view_matrix.matrix().inverse().block(0, 3, 3, 1); } + double get_near_z() const { return m_frustrum_zs.first; } + double get_far_z() const { return m_frustrum_zs.second; } + + double get_fov() const; + void apply_viewport(int x, int y, unsigned int w, unsigned int h) const; void apply_view_matrix() const; - void apply_ortho_projection(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max) const; + void apply_projection(const BoundingBoxf3& box) const; + + void zoom_to_box(const BoundingBoxf3& box, int canvas_w, int canvas_h); + +#if ENABLE_CAMERA_STATISTICS + void debug_render() const; +#endif // ENABLE_CAMERA_STATISTICS + +private: + // returns tight values for nearZ and farZ plane around the given bounding box + // the camera MUST be outside of the bounding box in eye coordinate of the given box + std::pair<double, double> calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const; + double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h) const; }; } // GUI diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp index b400e27ea..15a09aa71 100644 --- a/src/slic3r/GUI/FirmwareDialog.cpp +++ b/src/slic3r/GUI/FirmwareDialog.cpp @@ -5,11 +5,14 @@ #include <stdexcept> #include <boost/format.hpp> #include <boost/asio.hpp> -#include <boost/filesystem/path.hpp> -#include <boost/filesystem/fstream.hpp> +#include <boost/filesystem.hpp> #include <boost/log/trivial.hpp> #include <boost/optional.hpp> +#if _WIN32 + #include <regex> +#endif + #include "libslic3r/Utils.hpp" #include "avrdude/avrdude-slic3r.hpp" #include "GUI.hpp" @@ -104,7 +107,7 @@ struct FirmwareDialog::priv // GUI elements wxComboBox *port_picker; - wxStaticText *port_autodetect; + wxStaticText *txt_port_autodetect; wxFilePickerCtrl *hex_picker; wxStaticText *txt_status; wxGauge *progressbar; @@ -131,6 +134,7 @@ struct FirmwareDialog::priv // Data std::vector<SerialPortInfo> ports; optional<SerialPortInfo> port; + bool port_autodetect; HexFile hex_file; // This is a shared pointer holding the background AvrDude task @@ -147,6 +151,7 @@ struct FirmwareDialog::priv btn_flash_label_flashing(_(L("Cancel"))), label_status_flashing(_(L("Flashing in progress. Please do not disconnect the printer!"))), timer_pulse(q), + port_autodetect(false), progress_tasks_done(0), progress_tasks_bar(0), user_cancelled(false), @@ -158,7 +163,8 @@ struct FirmwareDialog::priv void set_txt_status(const wxString &label); void flashing_start(unsigned tasks); void flashing_done(AvrDudeComplete complete); - void enable_port_picker(bool enable); + void set_autodetect(bool autodetect); + void update_flash_enabled(); void load_hex_file(const wxString &path); void queue_event(AvrdudeEvent aevt, wxString message); @@ -171,6 +177,7 @@ struct FirmwareDialog::priv void prepare_mk2(); void prepare_mk3(); void prepare_avr109(Avr109Pid usb_pid); + bool get_serial_port(); void perform_upload(); void user_cancel(); @@ -211,8 +218,10 @@ void FirmwareDialog::priv::find_serial_ports() idx = i; break; } - if (idx != -1) + if (idx != -1) { port_picker->SetSelection(idx); + update_flash_enabled(); + } } } } @@ -277,20 +286,30 @@ void FirmwareDialog::priv::flashing_done(AvrDudeComplete complete) } } -void FirmwareDialog::priv::enable_port_picker(bool enable) +void FirmwareDialog::priv::set_autodetect(bool autodetect) { - port_picker->Show(enable); - btn_rescan->Show(enable); - port_autodetect->Show(! enable); + port_autodetect = autodetect; + + port_picker->Show(!autodetect); + btn_rescan->Show(!autodetect); + txt_port_autodetect->Show(autodetect); q->Layout(); fit_no_shrink(); } +void FirmwareDialog::priv::update_flash_enabled() +{ + const bool hex_exists = wxFileExists(hex_picker->GetPath()); + const bool port_valid = port_autodetect || get_serial_port(); + + btn_flash->Enable(hex_exists && port_valid); +} + void FirmwareDialog::priv::load_hex_file(const wxString &path) { hex_file = HexFile(path.wx_str()); - const bool auto_lookup = hex_file.device == HexFile::DEV_MM_CONTROL || hex_file.device == HexFile::DEV_CW1; - enable_port_picker(! auto_lookup); + const bool autodetect = hex_file.device == HexFile::DEV_MM_CONTROL || hex_file.device == HexFile::DEV_CW1; + set_autodetect(autodetect); } void FirmwareDialog::priv::queue_event(AvrdudeEvent aevt, wxString message) @@ -553,6 +572,31 @@ void FirmwareDialog::priv::prepare_avr109(Avr109Pid usb_pid) } +bool FirmwareDialog::priv::get_serial_port() +{ + const int selection = port_picker->GetSelection(); + if (selection != wxNOT_FOUND) { + port = this->ports[selection]; + } else { + // User has supplied a custom filename + + std::string path_u8 = GUI::into_u8(port_picker->GetValue()); +#ifdef _WIN32 + static const std::regex com_pattern("COM[0-9]+", std::regex::icase); + std::smatch matches; + if (std::regex_match(path_u8, matches, com_pattern)) { +#else + if (fs::is_other(fs::path(path_u8))) { +#endif + port = SerialPortInfo(std::move(path_u8)); + } else { + port = boost::none; + } + } + + return !!port; +} + void FirmwareDialog::priv::perform_upload() { auto filename = hex_picker->GetPath(); @@ -560,14 +604,8 @@ void FirmwareDialog::priv::perform_upload() load_hex_file(filename); // Might already be loaded, but we want to make sure it's fresh - int selection = port_picker->GetSelection(); - if (selection != wxNOT_FOUND) { - port = this->ports[selection]; - - // Verify whether the combo box list selection equals to the combo box edit value. - if (wxString::FromUTF8(port->friendly_name.data()) != port_picker->GetValue()) { - return; - } + if (!port_autodetect && !get_serial_port()) { + return; } const bool extra_verbose = false; // For debugging @@ -769,13 +807,13 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) : auto *label_port_picker = new wxStaticText(panel, wxID_ANY, _(L("Serial port:"))); p->port_picker = new wxComboBox(panel, wxID_ANY); - p->port_autodetect = new wxStaticText(panel, wxID_ANY, _(L("Autodetected"))); + p->txt_port_autodetect = new wxStaticText(panel, wxID_ANY, _(L("Autodetected"))); p->btn_rescan = new wxButton(panel, wxID_ANY, _(L("Rescan"))); auto *port_sizer = new wxBoxSizer(wxHORIZONTAL); port_sizer->Add(p->port_picker, 1, wxEXPAND | wxRIGHT, SPACING); port_sizer->Add(p->btn_rescan, 0); - port_sizer->Add(p->port_autodetect, 1, wxEXPAND); - p->enable_port_picker(true); + port_sizer->Add(p->txt_port_autodetect, 1, wxEXPAND); + p->set_autodetect(false); auto *label_progress = new wxStaticText(panel, wxID_ANY, _(L("Progress:"))); p->progressbar = new wxGauge(panel, wxID_ANY, 1, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL | wxGA_SMOOTH); @@ -836,10 +874,13 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) : p->hex_picker->Bind(wxEVT_FILEPICKER_CHANGED, [this](wxFileDirPickerEvent& evt) { if (wxFileExists(evt.GetPath())) { this->p->load_hex_file(evt.GetPath()); - this->p->btn_flash->Enable(); } + p->update_flash_enabled(); }); + p->port_picker->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent &) { p->update_flash_enabled(); }); + p->port_picker->Bind(wxEVT_TEXT, [this](wxCommandEvent &) { p->update_flash_enabled(); }); + p->spoiler->Bind(wxEVT_COLLAPSIBLEPANE_CHANGED, [=](wxCollapsiblePaneEvent &evt) { if (evt.GetCollapsed()) { this->SetMinSize(wxSize(p->min_width, p->min_height)); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 3d9b24c11..25319e9ce 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -17,6 +17,7 @@ #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/PresetBundle.hpp" #include "slic3r/GUI/Tab.hpp" +#include "slic3r/GUI/GUI_Preview.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" @@ -299,22 +300,10 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const const Rect& bar_rect = get_bar_rect_viewport(canvas); const Rect& reset_rect = get_reset_rect_viewport(canvas); - glsafe(::glDisable(GL_DEPTH_TEST)); - - // The viewport and camera are set to complete view and glOrtho(-$x / 2, $x / 2, -$y / 2, $y / 2, -$depth, $depth), - // where x, y is the window size divided by $self->_zoom. - glsafe(::glPushMatrix()); - glsafe(::glLoadIdentity()); - _render_tooltip_texture(canvas, bar_rect, reset_rect); _render_reset_texture(reset_rect); _render_active_object_annotations(canvas, bar_rect); _render_profile(bar_rect); - - // Revert the matrices. - glsafe(::glPopMatrix()); - - glsafe(::glEnable(GL_DEPTH_TEST)); } float GLCanvas3D::LayersEditing::get_cursor_z_relative(const GLCanvas3D& canvas) @@ -369,7 +358,7 @@ Rect GLCanvas3D::LayersEditing::get_bar_rect_viewport(const GLCanvas3D& canvas) float half_w = 0.5f * (float)cnv_size.get_width(); float half_h = 0.5f * (float)cnv_size.get_height(); - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; return Rect((half_w - thickness_bar_width(canvas)) * inv_zoom, half_h * inv_zoom, half_w * inv_zoom, (-half_h + reset_button_height(canvas)) * inv_zoom); @@ -381,7 +370,7 @@ Rect GLCanvas3D::LayersEditing::get_reset_rect_viewport(const GLCanvas3D& canvas float half_w = 0.5f * (float)cnv_size.get_width(); float half_h = 0.5f * (float)cnv_size.get_height(); - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; return Rect((half_w - thickness_bar_width(canvas)) * inv_zoom, (-half_h + reset_button_height(canvas)) * inv_zoom, half_w * inv_zoom, -half_h * inv_zoom); @@ -400,7 +389,7 @@ void GLCanvas3D::LayersEditing::_render_tooltip_texture(const GLCanvas3D& canvas if (m_tooltip_texture.get_id() == 0) { std::string filename = resources_dir() + "/icons/variable_layer_height_tooltip.png"; - if (!m_tooltip_texture.load_from_file(filename, false)) + if (!m_tooltip_texture.load_from_file(filename, false, true)) return; } @@ -412,7 +401,7 @@ void GLCanvas3D::LayersEditing::_render_tooltip_texture(const GLCanvas3D& canvas const float width = (float)m_tooltip_texture.get_width() * scale; const float height = (float)m_tooltip_texture.get_height() * scale; - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; float gap = 10.0f * inv_zoom; @@ -432,7 +421,7 @@ void GLCanvas3D::LayersEditing::_render_reset_texture(const Rect& reset_rect) co if (m_reset_texture.get_id() == 0) { std::string filename = resources_dir() + "/icons/variable_layer_height_reset.png"; - if (!m_reset_texture.load_from_file(filename, false)) + if (!m_reset_texture.load_from_file(filename, false, true)) return; } @@ -727,7 +716,7 @@ void GLCanvas3D::WarningTexture::activate(WarningTexture::Warning warning, bool } } - _generate(text, canvas, red_colored); // GUI::GLTexture::reset() is called at the beginning of generate(...) + generate(text, canvas, true, red_colored); // GUI::GLTexture::reset() is called at the beginning of generate(...) // save information for rescaling m_msg_text = text; @@ -788,7 +777,7 @@ static void msw_disable_cleartype(wxFont &font) } #endif /* __WXMSW__ */ -bool GLCanvas3D::WarningTexture::_generate(const std::string& msg_utf8, const GLCanvas3D& canvas, const bool red_colored/* = false*/) +bool GLCanvas3D::WarningTexture::generate(const std::string& msg_utf8, const GLCanvas3D& canvas, bool compress, bool red_colored/* = false*/) { reset(); @@ -862,7 +851,10 @@ bool GLCanvas3D::WarningTexture::_generate(const std::string& msg_utf8, const GL glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glGenTextures(1, &m_id)); glsafe(::glBindTexture(GL_TEXTURE_2D, (GLuint)m_id)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); @@ -878,12 +870,8 @@ void GLCanvas3D::WarningTexture::render(const GLCanvas3D& canvas) const if ((m_id > 0) && (m_original_width > 0) && (m_original_height > 0) && (m_width > 0) && (m_height > 0)) { - glsafe(::glDisable(GL_DEPTH_TEST)); - glsafe(::glPushMatrix()); - glsafe(::glLoadIdentity()); - const Size& cnv_size = canvas.get_canvas_size(); - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; float left = (-0.5f * (float)m_original_width) * inv_zoom; float top = (-0.5f * (float)cnv_size.get_height() + (float)m_original_height + 2.0f) * inv_zoom; @@ -902,9 +890,6 @@ void GLCanvas3D::WarningTexture::render(const GLCanvas3D& canvas) const uvs.right_top = { uv_right, uv_top }; GLTexture::render_sub_texture(m_id, left, right, bottom, top, uvs); - - glsafe(::glPopMatrix()); - glsafe(::glEnable(GL_DEPTH_TEST)); } } @@ -913,7 +898,7 @@ void GLCanvas3D::WarningTexture::msw_rescale(const GLCanvas3D& canvas) if (m_msg_text.empty()) return; - _generate(m_msg_text, canvas, m_is_colored_red); + generate(m_msg_text, canvas, true, m_is_colored_red); } const unsigned char GLCanvas3D::LegendTexture::Squares_Border_Color[3] = { 64, 64, 64 }; @@ -956,7 +941,7 @@ void GLCanvas3D::LegendTexture::fill_color_print_legend_values(const GCodePrevie } } -bool GLCanvas3D::LegendTexture::generate(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors, const GLCanvas3D& canvas) +bool GLCanvas3D::LegendTexture::generate(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors, const GLCanvas3D& canvas, bool compress) { reset(); @@ -1145,7 +1130,10 @@ bool GLCanvas3D::LegendTexture::generate(const GCodePreviewData& preview_data, c glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glGenTextures(1, &m_id)); glsafe(::glBindTexture(GL_TEXTURE_2D, (GLuint)m_id)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); @@ -1158,12 +1146,8 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const { if ((m_id > 0) && (m_original_width > 0) && (m_original_height > 0) && (m_width > 0) && (m_height > 0)) { - glsafe(::glDisable(GL_DEPTH_TEST)); - glsafe(::glPushMatrix()); - glsafe(::glLoadIdentity()); - const Size& cnv_size = canvas.get_canvas_size(); - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; float left = (-0.5f * (float)cnv_size.get_width()) * inv_zoom; float top = (0.5f * (float)cnv_size.get_height()) * inv_zoom; @@ -1182,9 +1166,6 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const uvs.right_top = { uv_right, uv_top }; GLTexture::render_sub_texture(m_id, left, right, bottom, top, uvs); - - glsafe(::glPopMatrix()); - glsafe(::glEnable(GL_DEPTH_TEST)); } } @@ -1209,6 +1190,7 @@ wxDEFINE_EVENT(EVT_GLCANVAS_UPDATE_BED_SHAPE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_TAB, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_RESETGIZMOS, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, wxKeyEvent); +wxDEFINE_EVENT(EVT_GLCANVAS_EDIT_COLOR_CHANGE, wxKeyEvent); GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar& view_toolbar) : m_canvas(canvas) @@ -1227,6 +1209,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar #endif // ENABLE_SVG_ICONS , m_use_clipping_planes(false) , m_sidebar_field("") + , m_keep_dirty(false) , m_config(nullptr) , m_process(nullptr) , m_model(nullptr) @@ -1444,6 +1427,8 @@ void GLCanvas3D::bed_shape_changed() m_camera.set_scene_box(scene_bounding_box()); m_camera.requires_zoom_to_bed = true; m_dirty = true; + if (m_bed.is_prusa()) + start_keeping_dirty(); } void GLCanvas3D::set_color_by(const std::string& value) @@ -1465,7 +1450,7 @@ BoundingBoxf3 GLCanvas3D::volumes_bounding_box() const BoundingBoxf3 GLCanvas3D::scene_bounding_box() const { BoundingBoxf3 bb = volumes_bounding_box(); - bb.merge(m_bed.get_bounding_box()); + bb.merge(m_bed.get_bounding_box(false)); if (m_config != nullptr) { @@ -1473,6 +1458,7 @@ BoundingBoxf3 GLCanvas3D::scene_bounding_box() const bb.min(2) = std::min(bb.min(2), -h); bb.max(2) = std::max(bb.max(2), h); } + return bb; } @@ -1548,20 +1534,20 @@ void GLCanvas3D::allow_multisample(bool allow) void GLCanvas3D::zoom_to_bed() { - _zoom_to_bounding_box(m_bed.get_bounding_box()); + _zoom_to_box(m_bed.get_bounding_box(false)); } void GLCanvas3D::zoom_to_volumes() { m_apply_zoom_to_volumes_filter = true; - _zoom_to_bounding_box(volumes_bounding_box()); + _zoom_to_box(volumes_bounding_box()); m_apply_zoom_to_volumes_filter = false; } void GLCanvas3D::zoom_to_selection() { if (!m_selection.is_empty()) - _zoom_to_bounding_box(m_selection.get_bounding_box()); + _zoom_to_box(m_selection.get_bounding_box()); } void GLCanvas3D::select_view(const std::string& direction) @@ -1622,6 +1608,7 @@ void GLCanvas3D::render() } m_camera.apply_view_matrix(); + m_camera.apply_projection(_max_bounding_box(true)); GLfloat position_cam[4] = { 1.0f, 0.0f, 1.0f, 0.0f }; glsafe(::glLightfv(GL_LIGHT1, GL_POSITION, position_cam)); @@ -1683,29 +1670,31 @@ void GLCanvas3D::render() m_rectangle_selection.render(*this); // draw overlays - _render_gizmos_overlay(); - _render_warning_texture(); - _render_legend_texture(); -#if !ENABLE_SVG_ICONS - _resize_toolbars(); -#endif // !ENABLE_SVG_ICONS - _render_toolbar(); - _render_view_toolbar(); - if ((m_layers_editing.last_object_id >= 0) && (m_layers_editing.object_max_z() > 0.0f)) - m_layers_editing.render_overlay(*this); + _render_overlays(); #if ENABLE_RENDER_STATISTICS ImGuiWrapper& imgui = *wxGetApp().imgui(); imgui.set_next_window_bg_alpha(0.5f); imgui.begin(std::string("Render statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); - imgui.text(_(L("Last frame")) +": "); + imgui.text("Last frame: "); ImGui::SameLine(); imgui.text(std::to_string(m_render_stats.last_frame)); ImGui::SameLine(); - imgui.text(" "+_(L("ms"))); + imgui.text(" ms"); + ImGui::Separator(); + imgui.text("Compressed textures: "); + ImGui::SameLine(); + imgui.text(GLCanvas3DManager::are_compressed_textures_supported() ? "supported" : "not supported"); + imgui.text("Max texture size: "); + ImGui::SameLine(); + imgui.text(std::to_string(GLCanvas3DManager::get_gl_info().get_max_tex_size())); imgui.end(); #endif // ENABLE_RENDER_STATISTICS +#if ENABLE_CAMERA_STATISTICS + m_camera.debug_render(); +#endif // ENABLE_CAMERA_STATISTICS + wxGetApp().imgui()->render(); m_canvas->SwapBuffers(); @@ -2309,6 +2298,9 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt) return; _refresh_if_shown_on_screen(); + + if (m_keep_dirty) + m_dirty = true; } void GLCanvas3D::on_char(wxKeyEvent& evt) @@ -2387,17 +2379,29 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) case '4': { select_view("rear"); break; } case '5': { select_view("left"); break; } case '6': { select_view("right"); break; } - case '+': { post_event(Event<int>(EVT_GLCANVAS_INCREASE_INSTANCES, +1)); break; } - case '-': { post_event(Event<int>(EVT_GLCANVAS_INCREASE_INSTANCES, -1)); break; } + case '+': { + if (dynamic_cast<Preview*>(m_canvas->GetParent()) != nullptr) + post_event(wxKeyEvent(EVT_GLCANVAS_EDIT_COLOR_CHANGE, evt)); + else + post_event(Event<int>(EVT_GLCANVAS_INCREASE_INSTANCES, +1)); + break; } + case '-': { + if (dynamic_cast<Preview*>(m_canvas->GetParent()) != nullptr) + post_event(wxKeyEvent(EVT_GLCANVAS_EDIT_COLOR_CHANGE, evt)); + else + post_event(Event<int>(EVT_GLCANVAS_INCREASE_INSTANCES, -1)); + break; } case '?': { post_event(SimpleEvent(EVT_GLCANVAS_QUESTION_MARK)); break; } case 'A': case 'a': { post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE)); break; } case 'B': case 'b': { zoom_to_bed(); break; } case 'I': - case 'i': { set_camera_zoom(1.0f); break; } + case 'i': { set_camera_zoom(1.0); break; } + case 'K': + case 'k': { m_camera.select_next_type(); m_dirty = true; break; } case 'O': - case 'o': { set_camera_zoom(-1.0f); break; } + case 'o': { set_camera_zoom(-1.0); break; } case 'Z': case 'z': { m_selection.is_empty() ? zoom_to_volumes() : zoom_to_selection(); break; } default: { evt.Skip(); break; } @@ -2472,15 +2476,10 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) else if (keyCode == WXK_LEFT || keyCode == WXK_RIGHT || keyCode == WXK_UP || - keyCode == WXK_DOWN || - keyCode == '+' || - keyCode == WXK_NUMPAD_ADD || - keyCode == '-' || - keyCode == 390 || - keyCode == WXK_DELETE || - keyCode == WXK_BACK ) + keyCode == WXK_DOWN ) { - post_event(wxKeyEvent(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, evt)); + if (dynamic_cast<Preview*>(m_canvas->GetParent()) != nullptr) + post_event(wxKeyEvent(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, evt)); } } } @@ -2523,7 +2522,7 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt) m_layers_editing.band_width = std::max(std::min(m_layers_editing.band_width * (1.0f + 0.1f * (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta()), 10.0f), 1.5f); if (m_canvas != nullptr) m_canvas->Refresh(); - + return; } } @@ -2534,8 +2533,7 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt) return; // Calculate the zoom delta and apply it to the current zoom factor - float zoom = (float)evt.GetWheelRotation() / (float)evt.GetWheelDelta(); - set_camera_zoom(zoom); + set_camera_zoom((double)evt.GetWheelRotation() / (double)evt.GetWheelDelta()); } void GLCanvas3D::on_timer(wxTimerEvent& evt) @@ -3287,21 +3285,11 @@ void GLCanvas3D::do_mirror() post_event(SimpleEvent(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS)); } -void GLCanvas3D::set_camera_zoom(float zoom) +void GLCanvas3D::set_camera_zoom(double zoom) { - zoom = std::max(std::min(zoom, 4.0f), -4.0f) / 10.0f; - zoom = m_camera.zoom / (1.0f - zoom); - - // Don't allow to zoom too far outside the scene. - float zoom_min = _get_zoom_to_bounding_box_factor(_max_bounding_box()); - if (zoom_min > 0.0f) - zoom = std::max(zoom, zoom_min * 0.7f); - - // Don't allow to zoom too close to the scene. - zoom = std::min(zoom, 100.0f); - - m_camera.zoom = zoom; - _refresh_if_shown_on_screen(); + const Size& cnv_size = get_canvas_size(); + m_camera.set_zoom(zoom, _max_bounding_box(false), cnv_size.get_width(), cnv_size.get_height()); + m_dirty = true; } void GLCanvas3D::update_gizmos_on_off_state() @@ -3335,8 +3323,7 @@ void GLCanvas3D::update_ui_from_settings() if (new_scaling != orig_scaling) { BOOST_LOG_TRIVIAL(debug) << "GLCanvas3D: Scaling factor: " << new_scaling; - m_camera.zoom /= orig_scaling; - m_camera.zoom *= new_scaling; + m_camera.set_zoom(m_camera.get_zoom() * new_scaling / orig_scaling); _refresh_if_shown_on_screen(); } #endif @@ -3383,7 +3370,7 @@ Linef3 GLCanvas3D::mouse_ray(const Point& mouse_pos) double GLCanvas3D::get_size_proportional_to_max_bed_size(double factor) const { - return factor * m_bed.get_bounding_box().max_size(); + return factor * m_bed.get_bounding_box(false).max_size(); } void GLCanvas3D::set_cursor(ECursorType type) @@ -3501,7 +3488,7 @@ bool GLCanvas3D::_init_toolbar() item.tooltip = _utf8(L("Copy")) + " [" + GUI::shortkey_ctrl_prefix() + "C]"; item.sprite_id = 4; item.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_COPY)); }; - item.enabled_state_callback = []()->bool { return wxGetApp().plater()->can_copy(); }; + item.enabled_state_callback = []()->bool { return wxGetApp().plater()->can_copy_to_clipboard(); }; if (!m_toolbar.add_item(item)) return false; @@ -3512,7 +3499,7 @@ bool GLCanvas3D::_init_toolbar() item.tooltip = _utf8(L("Paste")) + " [" + GUI::shortkey_ctrl_prefix() + "V]"; item.sprite_id = 5; item.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_PASTE)); }; - item.enabled_state_callback = []()->bool { return wxGetApp().plater()->can_paste(); }; + item.enabled_state_callback = []()->bool { return wxGetApp().plater()->can_paste_from_clipboard(); }; if (!m_toolbar.add_item(item)) return false; @@ -3614,143 +3601,25 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h) // ensures that this canvas is current _set_current(); - m_camera.apply_viewport(0, 0, w, h); - - const BoundingBoxf3& bbox = _max_bounding_box(); - - switch (m_camera.type) - { - case Camera::Ortho: - { - float w2 = w; - float h2 = h; - float two_zoom = 2.0f * m_camera.zoom; - if (two_zoom != 0.0f) - { - float inv_two_zoom = 1.0f / two_zoom; - w2 *= inv_two_zoom; - h2 *= inv_two_zoom; - } - - // FIXME: calculate a tighter value for depth will improve z-fighting - // Set at least some minimum depth in case the bounding box is empty to avoid an OpenGL driver error. - float depth = std::max(1.f, 5.0f * (float)bbox.max_size()); - m_camera.apply_ortho_projection(-w2, w2, -h2, h2, -depth, depth); - break; - } -// case Camera::Perspective: -// { -// float bbox_r = (float)bbox.radius(); -// float fov = PI * 45.0f / 180.0f; -// float fov_tan = tan(0.5f * fov); -// float cam_distance = 0.5f * bbox_r / fov_tan; -// m_camera.distance = cam_distance; -// -// float nr = cam_distance - bbox_r * 1.1f; -// float fr = cam_distance + bbox_r * 1.1f; -// if (nr < 1.0f) -// nr = 1.0f; -// -// if (fr < nr + 1.0f) -// fr = nr + 1.0f; -// -// float h2 = fov_tan * nr; -// float w2 = h2 * w / h; -// ::glFrustum(-w2, w2, -h2, h2, nr, fr); -// -// break; -// } - default: - { - throw std::runtime_error("Invalid camera type."); - break; - } - } + // updates camera + m_camera.apply_viewport(0, 0, w, h); m_dirty = false; } -BoundingBoxf3 GLCanvas3D::_max_bounding_box() const +BoundingBoxf3 GLCanvas3D::_max_bounding_box(bool include_bed_model) const { BoundingBoxf3 bb = volumes_bounding_box(); - bb.merge(m_bed.get_bounding_box()); + bb.merge(m_bed.get_bounding_box(include_bed_model)); return bb; } -void GLCanvas3D::_zoom_to_bounding_box(const BoundingBoxf3& bbox) -{ - // Calculate the zoom factor needed to adjust viewport to bounding box. - float zoom = _get_zoom_to_bounding_box_factor(bbox); - if (zoom > 0.0f) - { - m_camera.zoom = zoom; - // center view around bounding box center - m_camera.set_target(bbox.center()); - m_dirty = true; - } -} - -float GLCanvas3D::_get_zoom_to_bounding_box_factor(const BoundingBoxf3& bbox) const +void GLCanvas3D::_zoom_to_box(const BoundingBoxf3& box) { - float max_bb_size = bbox.max_size(); - if (max_bb_size == 0.0f) - return -1.0f; - - // project the bbox vertices on a plane perpendicular to the camera forward axis - // then calculates the vertices coordinate on this plane along the camera xy axes - - // we need the view matrix, we let opengl calculate it (same as done in render()) - m_camera.apply_view_matrix(); - - Vec3d right = m_camera.get_dir_right(); - Vec3d up = m_camera.get_dir_up(); - Vec3d forward = m_camera.get_dir_forward(); - - Vec3d bb_min = bbox.min; - Vec3d bb_max = bbox.max; - Vec3d bb_center = bbox.center(); - - // bbox vertices in world space - std::vector<Vec3d> vertices; - vertices.reserve(8); - vertices.push_back(bb_min); - vertices.emplace_back(bb_max(0), bb_min(1), bb_min(2)); - vertices.emplace_back(bb_max(0), bb_max(1), bb_min(2)); - vertices.emplace_back(bb_min(0), bb_max(1), bb_min(2)); - vertices.emplace_back(bb_min(0), bb_min(1), bb_max(2)); - vertices.emplace_back(bb_max(0), bb_min(1), bb_max(2)); - vertices.push_back(bb_max); - vertices.emplace_back(bb_min(0), bb_max(1), bb_max(2)); - - double max_x = 0.0; - double max_y = 0.0; - - // margin factor to give some empty space around the bbox - double margin_factor = 1.25; - - for (const Vec3d& v : vertices) - { - // project vertex on the plane perpendicular to camera forward axis - Vec3d pos(v(0) - bb_center(0), v(1) - bb_center(1), v(2) - bb_center(2)); - Vec3d proj_on_plane = pos - pos.dot(forward) * forward; - - // calculates vertex coordinate along camera xy axes - double x_on_plane = proj_on_plane.dot(right); - double y_on_plane = proj_on_plane.dot(up); - - max_x = std::max(max_x, margin_factor * std::abs(x_on_plane)); - max_y = std::max(max_y, margin_factor * std::abs(y_on_plane)); - } - - if ((max_x == 0.0) || (max_y == 0.0)) - return -1.0f; - - max_x *= 2.0; - max_y *= 2.0; - const Size& cnv_size = get_canvas_size(); - return (float)std::min((double)cnv_size.get_width() / max_x, (double)cnv_size.get_height() / max_y); + m_camera.zoom_to_box(box, cnv_size.get_width(), cnv_size.get_height()); + m_dirty = true; } void GLCanvas3D::_refresh_if_shown_on_screen() @@ -3936,7 +3805,7 @@ void GLCanvas3D::_render_bed(float theta) const #if ENABLE_RETINA_GL scale_factor = m_retina_helper->get_scale_factor(); #endif // ENABLE_RETINA_GL - m_bed.render(theta, m_use_VBOs, scale_factor); + m_bed.render(const_cast<GLCanvas3D*>(this), theta, m_use_VBOs, scale_factor); } void GLCanvas3D::_render_axes() const @@ -3965,7 +3834,7 @@ void GLCanvas3D::_render_objects() const if (m_config != nullptr) { - const BoundingBoxf3& bed_bb = m_bed.get_bounding_box(); + const BoundingBoxf3& bed_bb = m_bed.get_bounding_box(false); m_volumes.set_print_box((float)bed_bb.min(0), (float)bed_bb.min(1), 0.0f, (float)bed_bb.max(0), (float)bed_bb.max(1), (float)m_config->opt_float("max_print_height")); m_volumes.check_outside_state(m_config, nullptr); } @@ -4047,6 +3916,32 @@ void GLCanvas3D::_render_selection_center() const } #endif // ENABLE_RENDER_SELECTION_CENTER +void GLCanvas3D::_render_overlays() const +{ + glsafe(::glDisable(GL_DEPTH_TEST)); + glsafe(::glPushMatrix()); + glsafe(::glLoadIdentity()); + // ensure that the textures are renderered inside the frustrum + glsafe(::glTranslated(0.0, 0.0, -(m_camera.get_near_z() + 0.5))); + // ensure that the overlay fits the frustrum near z plane + double gui_scale = m_camera.get_gui_scale(); + glsafe(::glScaled(gui_scale, gui_scale, 1.0)); + + _render_gizmos_overlay(); + _render_warning_texture(); + _render_legend_texture(); +#if !ENABLE_SVG_ICONS + _resize_toolbars(); +#endif // !ENABLE_SVG_ICONS + _render_toolbar(); + _render_view_toolbar(); + + if ((m_layers_editing.last_object_id >= 0) && (m_layers_editing.object_max_z() > 0.0f)) + m_layers_editing.render_overlay(*this); + + glsafe(::glPopMatrix()); +} + void GLCanvas3D::_render_warning_texture() const { m_warning_texture.render(*this); @@ -4143,7 +4038,7 @@ void GLCanvas3D::_render_toolbar() const #endif // ENABLE_RETINA_GL Size cnv_size = get_canvas_size(); - float zoom = m_camera.zoom; + float zoom = (float)m_camera.get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; GLToolbar::Layout::EOrientation orientation = m_toolbar.get_layout_orientation(); @@ -4211,7 +4106,7 @@ void GLCanvas3D::_render_view_toolbar() const #endif // ENABLE_RETINA_GL Size cnv_size = get_canvas_size(); - float zoom = m_camera.zoom; + float zoom = (float)m_camera.get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; // places the toolbar on the bottom-left corner of the 3d scene @@ -5704,7 +5599,7 @@ std::vector<float> GLCanvas3D::_parse_colors(const std::vector<std::string>& col void GLCanvas3D::_generate_legend_texture(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors) { - m_legend_texture.generate(preview_data, tool_colors, *this); + m_legend_texture.generate(preview_data, tool_colors, *this, true); } void GLCanvas3D::_set_warning_texture(WarningTexture::Warning warning, bool state) diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 96bb56bd9..d39a910b3 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -125,6 +125,7 @@ wxDECLARE_EVENT(EVT_GLCANVAS_UPDATE_BED_SHAPE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_TAB, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_RESETGIZMOS, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, wxKeyEvent); +wxDECLARE_EVENT(EVT_GLCANVAS_EDIT_COLOR_CHANGE, wxKeyEvent); class GLCanvas3D { @@ -375,7 +376,7 @@ class GLCanvas3D std::vector<Warning> m_warnings; // Generates the texture with given text. - bool _generate(const std::string& msg, const GLCanvas3D& canvas, const bool red_colored = false); + bool generate(const std::string& msg, const GLCanvas3D& canvas, bool compress, bool red_colored = false); }; class LegendTexture : public GUI::GLTexture @@ -398,7 +399,7 @@ class GLCanvas3D void fill_color_print_legend_values(const GCodePreviewData& preview_data, const GLCanvas3D& canvas, std::vector<std::pair<double, double>>& cp_legend_values); - bool generate(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors, const GLCanvas3D& canvas); + bool generate(const GCodePreviewData& preview_data, const std::vector<float>& tool_colors, const GLCanvas3D& canvas, bool compress); void render(const GLCanvas3D& canvas) const; }; @@ -442,6 +443,7 @@ private: bool m_use_clipping_planes; mutable SlaCap m_sla_caps[2]; std::string m_sidebar_field; + bool m_keep_dirty; mutable GLVolumeCollection m_volumes; Selection m_selection; @@ -598,7 +600,7 @@ public: void do_flatten(); void do_mirror(); - void set_camera_zoom(float zoom); + void set_camera_zoom(double zoom); void update_gizmos_on_off_state(); void reset_all_gizmos() { m_gizmos.reset_all_states(); } @@ -628,6 +630,9 @@ public: void set_cursor(ECursorType type); void msw_rescale(); + void start_keeping_dirty() { m_keep_dirty = true; } + void stop_keeping_dirty() { m_keep_dirty = false; } + private: bool _is_shown_on_screen() const; @@ -636,10 +641,9 @@ private: bool _set_current(); void _resize(unsigned int w, unsigned int h); - BoundingBoxf3 _max_bounding_box() const; + BoundingBoxf3 _max_bounding_box(bool include_bed_model) const; - void _zoom_to_bounding_box(const BoundingBoxf3& bbox); - float _get_zoom_to_bounding_box_factor(const BoundingBoxf3& bbox) const; + void _zoom_to_box(const BoundingBoxf3& box); void _refresh_if_shown_on_screen(); @@ -653,6 +657,7 @@ private: #if ENABLE_RENDER_SELECTION_CENTER void _render_selection_center() const; #endif // ENABLE_RENDER_SELECTION_CENTER + void _render_overlays() const; void _render_warning_texture() const; void _render_legend_texture() const; void _render_volumes_for_picking() const; diff --git a/src/slic3r/GUI/GLCanvas3DManager.cpp b/src/slic3r/GUI/GLCanvas3DManager.cpp index e409bed0d..4f64b4e87 100644 --- a/src/slic3r/GUI/GLCanvas3DManager.cpp +++ b/src/slic3r/GUI/GLCanvas3DManager.cpp @@ -15,40 +15,112 @@ #include <string> #include <iostream> +#ifdef __APPLE__ +#include "../Utils/MacDarkMode.hpp" +#endif // __APPLE__ + namespace Slic3r { namespace GUI { GLCanvas3DManager::GLInfo::GLInfo() - : version("") - , glsl_version("") - , vendor("") - , renderer("") + : m_detected(false) + , m_version("") + , m_glsl_version("") + , m_vendor("") + , m_renderer("") + , m_max_tex_size(0) + , m_max_anisotropy(0.0f) +{ +} + +const std::string& GLCanvas3DManager::GLInfo::get_version() const +{ + if (!m_detected) + detect(); + + return m_version; +} + +const std::string& GLCanvas3DManager::GLInfo::get_glsl_version() const +{ + if (!m_detected) + detect(); + + return m_glsl_version; +} + +const std::string& GLCanvas3DManager::GLInfo::get_vendor() const +{ + if (!m_detected) + detect(); + + return m_vendor; +} + +const std::string& GLCanvas3DManager::GLInfo::get_renderer() const { + if (!m_detected) + detect(); + + return m_renderer; +} + +int GLCanvas3DManager::GLInfo::get_max_tex_size() const +{ + if (!m_detected) + detect(); + + // clamp to avoid the texture generation become too slow and use too much GPU memory +#ifdef __APPLE__ + // and use smaller texture for non retina systems + return (Slic3r::GUI::mac_max_scaling_factor() > 1.0) ? std::min(m_max_tex_size, 8192) : std::min(m_max_tex_size / 2, 4096); +#else + // and use smaller texture for older OpenGL versions + return is_version_greater_or_equal_to(3, 0) ? std::min(m_max_tex_size, 8192) : std::min(m_max_tex_size / 2, 4096); +#endif // __APPLE__ +} + +float GLCanvas3DManager::GLInfo::get_max_anisotropy() const +{ + if (!m_detected) + detect(); + + return m_max_anisotropy; } -void GLCanvas3DManager::GLInfo::detect() +void GLCanvas3DManager::GLInfo::detect() const { const char* data = (const char*)::glGetString(GL_VERSION); if (data != nullptr) - version = data; + m_version = data; data = (const char*)::glGetString(GL_SHADING_LANGUAGE_VERSION); if (data != nullptr) - glsl_version = data; + m_glsl_version = data; data = (const char*)::glGetString(GL_VENDOR); if (data != nullptr) - vendor = data; + m_vendor = data; data = (const char*)::glGetString(GL_RENDERER); if (data != nullptr) - renderer = data; + m_renderer = data; + + glsafe(::glGetIntegerv(GL_MAX_TEXTURE_SIZE, &m_max_tex_size)); + + if (GLEW_EXT_texture_filter_anisotropic) + glsafe(::glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &m_max_anisotropy)); + + m_detected = true; } bool GLCanvas3DManager::GLInfo::is_version_greater_or_equal_to(unsigned int major, unsigned int minor) const { + if (!m_detected) + detect(); + std::vector<std::string> tokens; - boost::split(tokens, version, boost::is_any_of(" "), boost::token_compress_on); + boost::split(tokens, m_version, boost::is_any_of(" "), boost::token_compress_on); if (tokens.empty()) return false; @@ -75,6 +147,9 @@ bool GLCanvas3DManager::GLInfo::is_version_greater_or_equal_to(unsigned int majo std::string GLCanvas3DManager::GLInfo::to_string(bool format_as_html, bool extensions) const { + if (!m_detected) + detect(); + std::stringstream out; std::string h2_start = format_as_html ? "<b>" : ""; @@ -84,10 +159,10 @@ std::string GLCanvas3DManager::GLInfo::to_string(bool format_as_html, bool exten std::string line_end = format_as_html ? "<br>" : "\n"; out << h2_start << "OpenGL installation" << h2_end << line_end; - out << b_start << "GL version: " << b_end << (version.empty() ? "N/A" : version) << line_end; - out << b_start << "Vendor: " << b_end << (vendor.empty() ? "N/A" : vendor) << line_end; - out << b_start << "Renderer: " << b_end << (renderer.empty() ? "N/A" : renderer) << line_end; - out << b_start << "GLSL version: " << b_end << (glsl_version.empty() ? "N/A" : glsl_version) << line_end; + out << b_start << "GL version: " << b_end << (m_version.empty() ? "N/A" : m_version) << line_end; + out << b_start << "Vendor: " << b_end << (m_vendor.empty() ? "N/A" : m_vendor) << line_end; + out << b_start << "Renderer: " << b_end << (m_renderer.empty() ? "N/A" : m_renderer) << line_end; + out << b_start << "GLSL version: " << b_end << (m_glsl_version.empty() ? "N/A" : m_glsl_version) << line_end; if (extensions) { @@ -111,6 +186,8 @@ std::string GLCanvas3DManager::GLInfo::to_string(bool format_as_html, bool exten } GLCanvas3DManager::EMultisampleState GLCanvas3DManager::s_multisample = GLCanvas3DManager::MS_Unknown; +bool GLCanvas3DManager::s_compressed_textures_supported = false; +GLCanvas3DManager::GLInfo GLCanvas3DManager::s_gl_info; GLCanvas3DManager::GLCanvas3DManager() : m_context(nullptr) @@ -134,7 +211,7 @@ bool GLCanvas3DManager::add(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLTo if (canvas == nullptr) return false; - if (_get_canvas(canvas) != m_canvases.end()) + if (do_get_canvas(canvas) != m_canvases.end()) return false; GLCanvas3D* canvas3D = new GLCanvas3D(canvas, bed, camera, view_toolbar); @@ -159,7 +236,7 @@ bool GLCanvas3DManager::add(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLTo bool GLCanvas3DManager::remove(wxGLCanvas* canvas) { - CanvasesMap::iterator it = _get_canvas(canvas); + CanvasesMap::iterator it = do_get_canvas(canvas); if (it == m_canvases.end()) return false; @@ -190,31 +267,29 @@ void GLCanvas3DManager::init_gl() if (!m_gl_initialized) { glewInit(); - m_gl_info.detect(); const AppConfig* config = GUI::get_app_config(); m_use_legacy_opengl = (config == nullptr) || (config->get("use_legacy_opengl") == "1"); - m_use_VBOs = !m_use_legacy_opengl && m_gl_info.is_version_greater_or_equal_to(2, 0); + m_use_VBOs = !m_use_legacy_opengl && s_gl_info.is_version_greater_or_equal_to(2, 0); m_gl_initialized = true; + if (GLEW_EXT_texture_compression_s3tc) + s_compressed_textures_supported = true; + else + s_compressed_textures_supported = false; } } -std::string GLCanvas3DManager::get_gl_info(bool format_as_html, bool extensions) const -{ - return m_gl_info.to_string(format_as_html, extensions); -} - bool GLCanvas3DManager::init(wxGLCanvas* canvas) { - CanvasesMap::const_iterator it = _get_canvas(canvas); + CanvasesMap::const_iterator it = do_get_canvas(canvas); if (it != m_canvases.end()) - return (it->second != nullptr) ? _init(*it->second) : false; + return (it->second != nullptr) ? init(*it->second) : false; else return false; } GLCanvas3D* GLCanvas3DManager::get_canvas(wxGLCanvas* canvas) { - CanvasesMap::const_iterator it = _get_canvas(canvas); + CanvasesMap::const_iterator it = do_get_canvas(canvas); return (it != m_canvases.end()) ? it->second : nullptr; } @@ -224,29 +299,28 @@ wxGLCanvas* GLCanvas3DManager::create_wxglcanvas(wxWindow *parent) if (s_multisample == MS_Unknown) { - _detect_multisample(attribList); - // debug output - std::cout << "Multisample " << (can_multisample() ? "enabled" : "disabled") << std::endl; + detect_multisample(attribList); +// // debug output +// std::cout << "Multisample " << (can_multisample() ? "enabled" : "disabled") << std::endl; } - if (! can_multisample()) { + if (! can_multisample()) attribList[4] = 0; - } return new wxGLCanvas(parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS); } -GLCanvas3DManager::CanvasesMap::iterator GLCanvas3DManager::_get_canvas(wxGLCanvas* canvas) +GLCanvas3DManager::CanvasesMap::iterator GLCanvas3DManager::do_get_canvas(wxGLCanvas* canvas) { return (canvas == nullptr) ? m_canvases.end() : m_canvases.find(canvas); } -GLCanvas3DManager::CanvasesMap::const_iterator GLCanvas3DManager::_get_canvas(wxGLCanvas* canvas) const +GLCanvas3DManager::CanvasesMap::const_iterator GLCanvas3DManager::do_get_canvas(wxGLCanvas* canvas) const { return (canvas == nullptr) ? m_canvases.end() : m_canvases.find(canvas); } -bool GLCanvas3DManager::_init(GLCanvas3D& canvas) +bool GLCanvas3DManager::init(GLCanvas3D& canvas) { if (!m_gl_initialized) init_gl(); @@ -254,7 +328,7 @@ bool GLCanvas3DManager::_init(GLCanvas3D& canvas) return canvas.init(m_use_VBOs, m_use_legacy_opengl); } -void GLCanvas3DManager::_detect_multisample(int* attribList) +void GLCanvas3DManager::detect_multisample(int* attribList) { int wxVersion = wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + wxRELEASE_NUMBER; const AppConfig* app_config = GUI::get_app_config(); diff --git a/src/slic3r/GUI/GLCanvas3DManager.hpp b/src/slic3r/GUI/GLCanvas3DManager.hpp index 75647e6b2..26c2558d0 100644 --- a/src/slic3r/GUI/GLCanvas3DManager.hpp +++ b/src/slic3r/GUI/GLCanvas3DManager.hpp @@ -29,21 +29,39 @@ struct Camera; class GLCanvas3DManager { - struct GLInfo +public: + class GLInfo { - std::string version; - std::string glsl_version; - std::string vendor; - std::string renderer; + mutable bool m_detected; + + mutable std::string m_version; + mutable std::string m_glsl_version; + mutable std::string m_vendor; + mutable std::string m_renderer; + + mutable int m_max_tex_size; + mutable float m_max_anisotropy; + public: GLInfo(); - void detect(); + const std::string& get_version() const; + const std::string& get_glsl_version() const; + const std::string& get_vendor() const; + const std::string& get_renderer() const; + + int get_max_tex_size() const; + float get_max_anisotropy() const; + bool is_version_greater_or_equal_to(unsigned int major, unsigned int minor) const; std::string to_string(bool format_as_html, bool extensions) const; + + private: + void detect() const; }; +private: enum EMultisampleState : unsigned char { MS_Unknown, @@ -55,11 +73,12 @@ class GLCanvas3DManager CanvasesMap m_canvases; wxGLContext* m_context; - GLInfo m_gl_info; + static GLInfo s_gl_info; bool m_gl_initialized; bool m_use_legacy_opengl; bool m_use_VBOs; static EMultisampleState s_multisample; + static bool s_compressed_textures_supported; public: GLCanvas3DManager(); @@ -72,21 +91,24 @@ public: unsigned int count() const; void init_gl(); - std::string get_gl_info(bool format_as_html, bool extensions) const; bool init(wxGLCanvas* canvas); GLCanvas3D* get_canvas(wxGLCanvas* canvas); static bool can_multisample() { return s_multisample == MS_Enabled; } + static bool are_compressed_textures_supported() { return s_compressed_textures_supported; } + static wxGLCanvas* create_wxglcanvas(wxWindow *parent); + static const GLInfo& get_gl_info() { return s_gl_info; } + private: - CanvasesMap::iterator _get_canvas(wxGLCanvas* canvas); - CanvasesMap::const_iterator _get_canvas(wxGLCanvas* canvas) const; + CanvasesMap::iterator do_get_canvas(wxGLCanvas* canvas); + CanvasesMap::const_iterator do_get_canvas(wxGLCanvas* canvas) const; - bool _init(GLCanvas3D& canvas); - static void _detect_multisample(int* attribList); + bool init(GLCanvas3D& canvas); + static void detect_multisample(int* attribList); }; } // namespace GUI diff --git a/src/slic3r/GUI/GLSelectionRectangle.cpp b/src/slic3r/GUI/GLSelectionRectangle.cpp index 9684bb5ec..327cb1fde 100644 --- a/src/slic3r/GUI/GLSelectionRectangle.cpp +++ b/src/slic3r/GUI/GLSelectionRectangle.cpp @@ -68,7 +68,7 @@ namespace GUI { if (!is_dragging()) return; - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; Size cnv_size = canvas.get_canvas_size(); diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 2fff0869a..171a5c885 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -12,6 +12,10 @@ #include <vector> #include <algorithm> +#include <thread> + +#define STB_DXT_IMPLEMENTATION +#include "stb_dxt/stb_dxt.h" #include "nanosvg/nanosvg.h" #include "nanosvg/nanosvgrast.h" @@ -21,6 +25,99 @@ namespace Slic3r { namespace GUI { +void GLTexture::Compressor::reset() +{ + // force compression completion, if any + m_abort_compressing = true; + // wait for compression completion, if any + while (m_is_compressing) {} + + m_levels.clear(); +} + +void GLTexture::Compressor::add_level(unsigned int w, unsigned int h, const std::vector<unsigned char>& data) +{ + m_levels.emplace_back(w, h, data); +} + +void GLTexture::Compressor::start_compressing() +{ + m_is_compressing = true; + m_abort_compressing = false; + std::thread t(&GLTexture::Compressor::compress, this); + t.detach(); +} + +bool GLTexture::Compressor::unsent_compressed_data_available() const +{ + for (const Level& level : m_levels) + { + if (!level.sent_to_gpu && level.compressed) + return true; + } + + return false; +} + +void GLTexture::Compressor::send_compressed_data_to_gpu() +{ + // this method should be called inside the main thread of Slicer or a new OpenGL context (sharing resources) would be needed + + glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); + glsafe(::glBindTexture(GL_TEXTURE_2D, m_texture.m_id)); + for (int i = 0; i < (int)m_levels.size(); ++i) + { + Level& level = m_levels[i]; + if (!level.sent_to_gpu && level.compressed) + { + glsafe(::glCompressedTexSubImage2D(GL_TEXTURE_2D, (GLint)i, 0, 0, (GLsizei)level.w, (GLsizei)level.h, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)level.compressed_data.size(), (const GLvoid*)level.compressed_data.data())); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, i)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, (i > 0) ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR)); + level.sent_to_gpu = true; + // we are done with the compressed data, we can discard it + level.compressed_data.clear(); + level.compressed = false; + } + } + glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); +} + +bool GLTexture::Compressor::all_compressed_data_sent_to_gpu() const +{ + for (const Level& level : m_levels) + { + if (!level.sent_to_gpu) + return false; + } + + return true; +} + +void GLTexture::Compressor::compress() +{ + // reference: https://github.com/Cyan4973/RygsDXTc + + for (Level& level : m_levels) + { + if (m_abort_compressing) + break; + + // stb_dxt library, despite claiming that the needed size of the destination buffer is equal to (source buffer size)/4, + // crashes if doing so, so we start with twice the required size + level.compressed_data = std::vector<unsigned char>(level.w * level.h * 2, 0); + int compressed_size = 0; + rygCompress(level.compressed_data.data(), level.src_data.data(), level.w, level.h, 1, compressed_size); + level.compressed_data.resize(compressed_size); + + // we are done with the source data, we can discard it + level.src_data.clear(); + level.compressed = true; + } + + m_is_compressing = false; + m_abort_compressing = false; +} + GLTexture::Quad_UVs GLTexture::FullTextureUVs = { { 0.0f, 1.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f } }; GLTexture::GLTexture() @@ -28,6 +125,7 @@ GLTexture::GLTexture() , m_width(0) , m_height(0) , m_source("") + , m_compressor(*this) { } @@ -36,7 +134,7 @@ GLTexture::~GLTexture() reset(); } -bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps) +bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bool compress) { reset(); @@ -44,12 +142,12 @@ bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps) return false; if (boost::algorithm::iends_with(filename, ".png")) - return load_from_png(filename, use_mipmaps); + return load_from_png(filename, use_mipmaps, compress); else return false; } -bool GLTexture::load_from_svg_file(const std::string& filename, bool use_mipmaps, unsigned int max_size_px) +bool GLTexture::load_from_svg_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) { reset(); @@ -57,12 +155,12 @@ bool GLTexture::load_from_svg_file(const std::string& filename, bool use_mipmaps return false; if (boost::algorithm::iends_with(filename, ".svg")) - return load_from_svg(filename, use_mipmaps, max_size_px); + return load_from_svg(filename, use_mipmaps, compress, apply_anisotropy, max_size_px); else return false; } -bool GLTexture::load_from_svg_files_as_sprites_array(const std::vector<std::string>& filenames, const std::vector<std::pair<int, bool>>& states, unsigned int sprite_size_px) +bool GLTexture::load_from_svg_files_as_sprites_array(const std::vector<std::string>& filenames, const std::vector<std::pair<int, bool>>& states, unsigned int sprite_size_px, bool compress) { reset(); @@ -178,7 +276,10 @@ bool GLTexture::load_from_svg_files_as_sprites_array(const std::vector<std::stri glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glGenTextures(1, &m_id)); glsafe(::glBindTexture(GL_TEXTURE_2D, m_id)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); @@ -222,6 +323,7 @@ void GLTexture::reset() m_width = 0; m_height = 0; m_source = ""; + m_compressor.reset(); } void GLTexture::render_texture(unsigned int tex_id, float left, float right, float bottom, float top) @@ -252,7 +354,7 @@ void GLTexture::render_sub_texture(unsigned int tex_id, float left, float right, glsafe(::glDisable(GL_BLEND)); } -unsigned int GLTexture::generate_mipmaps(wxImage& image) +unsigned int GLTexture::generate_mipmaps(wxImage& image, bool compress) { int w = image.GetWidth(); int h = image.GetHeight(); @@ -284,13 +386,16 @@ unsigned int GLTexture::generate_mipmaps(wxImage& image) data[data_id + 3] = (img_alpha != nullptr) ? img_alpha[i] : 255; } - glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); } return (unsigned int)level; } -bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps) +bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, bool compress) { // Load a PNG with an alpha channel. wxImage image; @@ -335,11 +440,14 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps) glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glGenTextures(1, &m_id)); glsafe(::glBindTexture(GL_TEXTURE_2D, m_id)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); if (use_mipmaps) { // we manually generate mipmaps because glGenerateMipmap() function is not reliable on all graphics cards - unsigned int levels_count = generate_mipmaps(image); + unsigned int levels_count = generate_mipmaps(image, compress); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, levels_count)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); } @@ -357,8 +465,10 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps) return true; } -bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, unsigned int max_size_px) +bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) { + bool compression_enabled = compress && GLEW_EXT_texture_compression_s3tc; + NSVGimage* image = nsvgParseFromFile(filename.c_str(), "px", 96.0f); if (image == nullptr) { @@ -371,6 +481,20 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, uns m_width = (int)(scale * image->width); m_height = (int)(scale * image->height); + + if (compression_enabled) + { + // the stb_dxt compression library seems to like only texture sizes which are a multiple of 4 + int width_rem = m_width % 4; + int height_rem = m_height % 4; + + if (width_rem != 0) + m_width += (4 - width_rem); + + if (height_rem != 0) + m_height += (4 - height_rem); + } + int n_pixels = m_width * m_height; if (n_pixels <= 0) @@ -397,14 +521,32 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, uns glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glGenTextures(1, &m_id)); glsafe(::glBindTexture(GL_TEXTURE_2D, m_id)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + + if (apply_anisotropy) + { + GLfloat max_anisotropy = GLCanvas3DManager::get_gl_info().get_max_anisotropy(); + if (max_anisotropy > 1.0f) + glsafe(::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy)); + } + + if (compression_enabled) + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)m_width, (unsigned int)m_height, data); + } + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (use_mipmaps) { // we manually generate mipmaps because glGenerateMipmap() function is not reliable on all graphics cards int lod_w = m_width; int lod_h = m_height; GLint level = 0; - while ((lod_w > 1) || (lod_h > 1)) + // we do not need to generate all levels down to 1x1 + while ((lod_w > 16) || (lod_h > 16)) { ++level; @@ -412,12 +554,25 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, uns lod_h = std::max(lod_h / 2, 1); scale /= 2.0f; + data.resize(lod_w * lod_h * 4); + nsvgRasterize(rast, image, 0, 0, scale, data.data(), lod_w, lod_h, lod_w * 4); - glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + if (compression_enabled) + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)lod_w, (unsigned int)lod_h, data); + } + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); } - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); + if (!compression_enabled) + { + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); + } } else { @@ -430,6 +585,10 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, uns m_source = filename; + if (compression_enabled) + // start asynchronous compression + m_compressor.start_compressing(); + nsvgDeleteRasterizer(rast); nsvgDelete(image); diff --git a/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index e00b3a3be..f4dc05a16 100644 --- a/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp @@ -11,6 +11,42 @@ namespace GUI { class GLTexture { + class Compressor + { + struct Level + { + unsigned int w; + unsigned int h; + std::vector<unsigned char> src_data; + std::vector<unsigned char> compressed_data; + bool compressed; + bool sent_to_gpu; + + Level(unsigned int w, unsigned int h, const std::vector<unsigned char>& data) : w(w), h(h), src_data(data), compressed(false), sent_to_gpu(false) {} + }; + + GLTexture& m_texture; + std::vector<Level> m_levels; + bool m_is_compressing; + bool m_abort_compressing; + + public: + explicit Compressor(GLTexture& texture) : m_texture(texture), m_is_compressing(false), m_abort_compressing(false) {} + + void reset(); + + void add_level(unsigned int w, unsigned int h, const std::vector<unsigned char>& data); + + void start_compressing(); + + bool unsent_compressed_data_available() const; + void send_compressed_data_to_gpu(); + bool all_compressed_data_sent_to_gpu() const; + + private: + void compress(); + }; + public: struct UV { @@ -33,13 +69,14 @@ namespace GUI { int m_width; int m_height; std::string m_source; + Compressor m_compressor; public: GLTexture(); virtual ~GLTexture(); - bool load_from_file(const std::string& filename, bool use_mipmaps); - bool load_from_svg_file(const std::string& filename, bool use_mipmaps, unsigned int max_size_px); + bool load_from_file(const std::string& filename, bool use_mipmaps, bool compress); + bool load_from_svg_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); // meanings of states: (std::pair<int, bool>) // first field (int): // 0 -> no changes @@ -48,7 +85,7 @@ namespace GUI { // second field (bool): // false -> no changes // true -> add background color - bool load_from_svg_files_as_sprites_array(const std::vector<std::string>& filenames, const std::vector<std::pair<int, bool>>& states, unsigned int sprite_size_px); + bool load_from_svg_files_as_sprites_array(const std::vector<std::string>& filenames, const std::vector<std::pair<int, bool>>& states, unsigned int sprite_size_px, bool compress); void reset(); unsigned int get_id() const { return m_id; } @@ -57,14 +94,21 @@ namespace GUI { const std::string& get_source() const { return m_source; } + bool unsent_compressed_data_available() const { return m_compressor.unsent_compressed_data_available(); } + void send_compressed_data_to_gpu() { m_compressor.send_compressed_data_to_gpu(); } + bool all_compressed_data_sent_to_gpu() const { return m_compressor.all_compressed_data_sent_to_gpu(); } + static void render_texture(unsigned int tex_id, float left, float right, float bottom, float top); static void render_sub_texture(unsigned int tex_id, float left, float right, float bottom, float top, const Quad_UVs& uvs); protected: - unsigned int generate_mipmaps(wxImage& image); + unsigned int generate_mipmaps(wxImage& image, bool compress); + private: - bool load_from_png(const std::string& filename, bool use_mipmaps); - bool load_from_svg(const std::string& filename, bool use_mipmaps, unsigned int max_size_px); + bool load_from_png(const std::string& filename, bool use_mipmaps, bool compress); + bool load_from_svg(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); + + friend class Compressor; }; } // namespace GUI diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index 00cbdfec7..f8082ad7e 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -194,7 +194,7 @@ bool GLToolbar::init(const ItemsIconsTexture::Metadata& icons_texture, const Bac #endif // ENABLE_SVG_ICONS if (!background_texture.filename.empty()) - res = m_background_texture.texture.load_from_file(path + background_texture.filename, false); + res = m_background_texture.texture.load_from_file(path + background_texture.filename, false, true); if (res) m_background_texture.metadata = background_texture; @@ -390,19 +390,12 @@ void GLToolbar::render(const GLCanvas3D& parent) const generate_icons_texture(); #endif // ENABLE_SVG_ICONS - glsafe(::glDisable(GL_DEPTH_TEST)); - - glsafe(::glPushMatrix()); - glsafe(::glLoadIdentity()); - switch (m_layout.type) { default: case Layout::Horizontal: { render_horizontal(parent); break; } case Layout::Vertical: { render_vertical(parent); break; } } - - glsafe(::glPopMatrix()); } bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent) @@ -614,7 +607,7 @@ std::string GLToolbar::update_hover_state_horizontal(const Vec2d& mouse_pos, GLC { // NB: mouse_pos is already scaled appropriately - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = m_layout.scale * inv_zoom; @@ -719,7 +712,7 @@ std::string GLToolbar::update_hover_state_vertical(const Vec2d& mouse_pos, GLCan { // NB: mouse_pos is already scaled appropriately - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = m_layout.scale * inv_zoom; @@ -836,7 +829,7 @@ int GLToolbar::contains_mouse_horizontal(const Vec2d& mouse_pos, const GLCanvas3 { // NB: mouse_pos is already scaled appropriately - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = m_layout.scale * inv_zoom; @@ -919,7 +912,7 @@ int GLToolbar::contains_mouse_vertical(const Vec2d& mouse_pos, const GLCanvas3D& { // NB: mouse_pos is already scaled appropriately - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = m_layout.scale * inv_zoom; @@ -1015,7 +1008,7 @@ void GLToolbar::render_horizontal(const GLCanvas3D& parent) const return; #endif // !ENABLE_SVG_ICONS - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = inv_zoom * m_layout.scale; @@ -1170,7 +1163,7 @@ void GLToolbar::render_vertical(const GLCanvas3D& parent) const return; #endif // !ENABLE_SVG_ICONS - float zoom = parent.get_camera().zoom; + float zoom = (float)parent.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; #if ENABLE_SVG_ICONS float factor = inv_zoom * m_layout.scale; @@ -1338,7 +1331,7 @@ bool GLToolbar::generate_icons_texture() const states.push_back(std::make_pair(1, true)); } - bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, (unsigned int)(m_layout.icons_size * m_layout.scale)); + bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, (unsigned int)(m_layout.icons_size * m_layout.scale), true); if (res) m_icons_texture_dirty = false; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 3aada45f3..4f1c3adc8 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -265,10 +265,8 @@ bool GUI_App::on_init_inner() } CallAfter([this] { - if (!config_wizard_startup(app_conf_exists)) { - // Only notify if there was no wizard so as not to bother too much ... - preset_updater->slic3r_update_notify(); - } + config_wizard_startup(app_conf_exists); + preset_updater->slic3r_update_notify(); preset_updater->sync(preset_bundle); }); } diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index a95b71bcb..d7d1a1af7 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -1485,66 +1485,6 @@ void ObjectList::load_part( ModelObject* model_object, } -// Find volume transformation, so that the chained (instance_trafo * volume_trafo) will be as close to identity -// as possible in least squares norm in regard to the 8 corners of bbox. -// Bounding box is expected to be centered around zero in all axes. -Geometry::Transformation volume_to_bed_transformation(const Geometry::Transformation &instance_transformation, const BoundingBoxf3 &bbox) -{ - Geometry::Transformation out; - - if (instance_transformation.is_scaling_uniform()) { - // No need to run the non-linear least squares fitting for uniform scaling. - // Just set the inverse. - out.set_from_transform(instance_transformation.get_matrix(true).inverse()); - } - else if (Geometry::is_rotation_ninety_degrees(instance_transformation.get_rotation())) - { - // Anisotropic scaling, rotation by multiples of ninety degrees. - Eigen::Matrix3d instance_rotation_trafo = - (Eigen::AngleAxisd(instance_transformation.get_rotation().z(), Vec3d::UnitZ()) * - Eigen::AngleAxisd(instance_transformation.get_rotation().y(), Vec3d::UnitY()) * - Eigen::AngleAxisd(instance_transformation.get_rotation().x(), Vec3d::UnitX())).toRotationMatrix(); - Eigen::Matrix3d volume_rotation_trafo = - (Eigen::AngleAxisd(-instance_transformation.get_rotation().x(), Vec3d::UnitX()) * - Eigen::AngleAxisd(-instance_transformation.get_rotation().y(), Vec3d::UnitY()) * - Eigen::AngleAxisd(-instance_transformation.get_rotation().z(), Vec3d::UnitZ())).toRotationMatrix(); - - // 8 corners of the bounding box. - auto pts = Eigen::MatrixXd(8, 3); - pts(0, 0) = bbox.min.x(); pts(0, 1) = bbox.min.y(); pts(0, 2) = bbox.min.z(); - pts(1, 0) = bbox.min.x(); pts(1, 1) = bbox.min.y(); pts(1, 2) = bbox.max.z(); - pts(2, 0) = bbox.min.x(); pts(2, 1) = bbox.max.y(); pts(2, 2) = bbox.min.z(); - pts(3, 0) = bbox.min.x(); pts(3, 1) = bbox.max.y(); pts(3, 2) = bbox.max.z(); - pts(4, 0) = bbox.max.x(); pts(4, 1) = bbox.min.y(); pts(4, 2) = bbox.min.z(); - pts(5, 0) = bbox.max.x(); pts(5, 1) = bbox.min.y(); pts(5, 2) = bbox.max.z(); - pts(6, 0) = bbox.max.x(); pts(6, 1) = bbox.max.y(); pts(6, 2) = bbox.min.z(); - pts(7, 0) = bbox.max.x(); pts(7, 1) = bbox.max.y(); pts(7, 2) = bbox.max.z(); - - // Corners of the bounding box transformed into the modifier mesh coordinate space, with inverse rotation applied to the modifier. - auto qs = pts * - (instance_rotation_trafo * - Eigen::Scaling(instance_transformation.get_scaling_factor().cwiseProduct(instance_transformation.get_mirror())) * - volume_rotation_trafo).inverse().transpose(); - // Fill in scaling based on least squares fitting of the bounding box corners. - Vec3d scale; - for (int i = 0; i < 3; ++ i) - scale(i) = pts.col(i).dot(qs.col(i)) / pts.col(i).dot(pts.col(i)); - - out.set_rotation(Geometry::extract_euler_angles(volume_rotation_trafo)); - out.set_scaling_factor(Vec3d(std::abs(scale(0)), std::abs(scale(1)), std::abs(scale(2)))); - out.set_mirror(Vec3d(scale(0) > 0 ? 1. : -1, scale(1) > 0 ? 1. : -1, scale(2) > 0 ? 1. : -1)); - } - else - { - // General anisotropic scaling, general rotation. - // Keep the modifier mesh in the instance coordinate system, so the modifier mesh will not be aligned with the world. - // Scale it to get the required size. - out.set_scaling_factor(instance_transformation.get_scaling_factor().cwiseInverse()); - } - - return out; -} - void ObjectList::load_generic_subobject(const std::string& type_name, const ModelVolumeType type) { const auto obj_idx = get_selected_obj_idx(); @@ -1598,7 +1538,7 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode const GLVolume* v = selection.get_volume(*selection.get_volume_idxs().begin()); // Transform the new modifier to be aligned with the print bed. const BoundingBoxf3 mesh_bb = new_volume->mesh().bounding_box(); - new_volume->set_transformation(volume_to_bed_transformation(v->get_instance_transformation(), mesh_bb)); + new_volume->set_transformation(Geometry::Transformation::volume_to_bed_transformation(v->get_instance_transformation(), mesh_bb)); // Set the modifier position. auto offset = (type_name == "Slab") ? // Slab: Lift to print bed diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index 310000ecc..372cd79ef 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -499,11 +499,13 @@ void ObjectManipulation::update_if_dirty() if (selection.requires_uniform_scale()) { m_lock_bnt->SetLock(true); - m_lock_bnt->Disable(); + m_lock_bnt->SetToolTip(_(L("You cann't use non-uniform scaling mode for multiple objects/parts selection"))); + m_lock_bnt->disable(); } else { m_lock_bnt->SetLock(m_uniform_scale); - m_lock_bnt->Enable(); + m_lock_bnt->SetToolTip(wxEmptyString); + m_lock_bnt->enable(); } { diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index ec7308382..2f5e10962 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -420,6 +420,12 @@ void Preview::move_double_slider(wxKeyEvent& evt) m_slider->OnKeyDown(evt); } +void Preview::edit_double_slider(wxKeyEvent& evt) +{ + if (m_slider) + m_slider->OnChar(evt); +} + void Preview::bind_event_handlers() { this->Bind(wxEVT_SIZE, &Preview::on_size, this); diff --git a/src/slic3r/GUI/GUI_Preview.hpp b/src/slic3r/GUI/GUI_Preview.hpp index ed4555f5c..93038b0e5 100644 --- a/src/slic3r/GUI/GUI_Preview.hpp +++ b/src/slic3r/GUI/GUI_Preview.hpp @@ -123,6 +123,7 @@ public: void msw_rescale(); void move_double_slider(wxKeyEvent& evt); + void edit_double_slider(wxKeyEvent& evt); private: bool init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view_toolbar, Model* model); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 1006d2bd1..c7435636d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -65,7 +65,7 @@ bool GLGizmosManager::init(GLCanvas3D& parent) if (!m_background_texture.metadata.filename.empty()) { - if (!m_background_texture.texture.load_from_file(resources_dir() + "/icons/" + m_background_texture.metadata.filename, false)) + if (!m_background_texture.texture.load_from_file(resources_dir() + "/icons/" + m_background_texture.metadata.filename, false, true)) { reset(); return false; @@ -531,18 +531,9 @@ void GLGizmosManager::render_overlay(const GLCanvas3D& canvas, const Selection& generate_icons_texture(); #endif // ENABLE_SVG_ICONS - glsafe(::glDisable(GL_DEPTH_TEST)); - - glsafe(::glPushMatrix()); - glsafe(::glLoadIdentity()); - do_render_overlay(canvas, selection); - - glsafe(::glPopMatrix()); } - - bool GLGizmosManager::on_mouse_wheel(wxMouseEvent& evt, GLCanvas3D& canvas) { bool processed = false; @@ -939,7 +930,7 @@ void GLGizmosManager::do_render_overlay(const GLCanvas3D& canvas, const Selectio float cnv_w = (float)canvas.get_canvas_size().get_width(); float cnv_h = (float)canvas.get_canvas_size().get_height(); - float zoom = canvas.get_camera().zoom; + float zoom = (float)canvas.get_camera().get_zoom(); float inv_zoom = (zoom != 0.0f) ? 1.0f / zoom : 0.0f; float height = get_total_overlay_height(); @@ -1160,7 +1151,7 @@ bool GLGizmosManager::generate_icons_texture() const states.push_back(std::make_pair(0, false)); states.push_back(std::make_pair(0, true)); - bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, (unsigned int)(m_overlay_icons_size * m_overlay_scale)); + bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, (unsigned int)(m_overlay_icons_size * m_overlay_scale), true); if (res) m_icons_texture_dirty = false; diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 67016077c..ca1538bf7 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -206,7 +206,7 @@ void ImGuiWrapper::new_frame() } if (m_font_texture == 0) { - init_font(); + init_font(true); } ImGui::NewFrame(); @@ -383,7 +383,7 @@ bool ImGuiWrapper::want_any_input() const return io.WantCaptureMouse || io.WantCaptureKeyboard || io.WantTextInput; } -void ImGuiWrapper::init_font() +void ImGuiWrapper::init_font(bool compress) { destroy_font(); @@ -412,7 +412,10 @@ void ImGuiWrapper::init_font() glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); glsafe(::glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels)); + if (compress && GLEW_EXT_texture_compression_s3tc) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels)); + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels)); // Store our identifier io.Fonts->TexID = (ImTextureID)(intptr_t)m_font_texture; diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index 37ef90ff3..0479e4743 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -77,7 +77,7 @@ public: bool want_any_input() const; private: - void init_font(); + void init_font(bool compress); void init_input(); void init_style(); void render_draw_data(ImDrawData *draw_data); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 347dac13e..1af658ed3 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -147,6 +147,7 @@ void KBShortcutsDialog::fill_shortcuts() plater_shortcuts.push_back(Shortcut("F", L("Press to scale selection to fit print volume\nin Gizmo scale"))); plater_shortcuts.push_back(Shortcut(alt, L("Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center"))); plater_shortcuts.push_back(Shortcut(ctrl, L("Press to activate one direction scaling in Gizmo scale"))); + plater_shortcuts.push_back(Shortcut("K", L("Change camera type"))); plater_shortcuts.push_back(Shortcut("B", L("Zoom to Bed"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to all objects in scene, if none selected"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to selected object"))); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 667dcd899..d800f6f38 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -505,10 +505,10 @@ void MainFrame::init_menubar() editMenu->AppendSeparator(); append_menu_item(editMenu, wxID_ANY, _(L("&Copy")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "C", _(L("Copy selection to clipboard")), [this](wxCommandEvent&) { m_plater->copy_selection_to_clipboard(); }, - menu_icon("copy_menu"), nullptr, [this](){return m_plater->can_copy(); }, this); + menu_icon("copy_menu"), nullptr, [this](){return m_plater->can_copy_to_clipboard(); }, this); append_menu_item(editMenu, wxID_ANY, _(L("&Paste")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "V", _(L("Paste clipboard")), [this](wxCommandEvent&) { m_plater->paste_from_clipboard(); }, - menu_icon("paste_menu"), nullptr, [this](){return m_plater->can_paste(); }, this); + menu_icon("paste_menu"), nullptr, [this](){return m_plater->can_paste_from_clipboard(); }, this); } // Window menu diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 7f95513ad..f68267cef 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1758,6 +1758,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option<ConfigOptionPoints>("bed_shape")->values); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_TAB, [this](SimpleEvent&) { select_next_view_3D(); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, [this](wxKeyEvent& evt) { preview->move_double_slider(evt); }); + preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_EDIT_COLOR_CHANGE, [this](wxKeyEvent& evt) { preview->edit_double_slider(evt); }); q->Bind(EVT_SLICING_COMPLETED, &priv::on_slicing_completed, this); q->Bind(EVT_PROCESS_COMPLETED, &priv::on_process_completed, this); @@ -1771,6 +1772,9 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) q->Layout(); set_current_panel(view3D); + + // updates camera type from .ini file + camera.set_type(get_config("camera_type")); } void Plater::priv::update(bool force_full_scene_refresh) @@ -4183,30 +4187,14 @@ void Plater::update_object_menu() { p->update_object_menu(); } void Plater::copy_selection_to_clipboard() { - p->view3D->get_canvas3d()->get_selection().copy_to_clipboard(); + if (can_copy_to_clipboard()) + p->view3D->get_canvas3d()->get_selection().copy_to_clipboard(); } void Plater::paste_from_clipboard() { - p->view3D->get_canvas3d()->get_selection().paste_from_clipboard(); -} - -bool Plater::can_paste_from_clipboard() const -{ - const Selection& selection = p->view3D->get_canvas3d()->get_selection(); - const Selection::Clipboard& clipboard = selection.get_clipboard(); - Selection::EMode mode = clipboard.get_mode(); - - if (clipboard.is_empty()) - return false; - - if ((mode == Selection::Volume) && !selection.is_from_single_instance()) - return false; - - if ((mode == Selection::Instance) && (selection.get_mode() != Selection::Instance)) - return false; - - return true; + if (can_paste_from_clipboard()) + p->view3D->get_canvas3d()->get_selection().paste_from_clipboard(); } void Plater::msw_rescale() @@ -4233,7 +4221,37 @@ bool Plater::can_split_to_objects() const { return p->can_split_to_objects(); } bool Plater::can_split_to_volumes() const { return p->can_split_to_volumes(); } bool Plater::can_arrange() const { return p->can_arrange(); } bool Plater::can_layers_editing() const { return p->can_layers_editing(); } -bool Plater::can_copy() const { return !is_selection_empty(); } -bool Plater::can_paste() const { return can_paste_from_clipboard(); } +bool Plater::can_paste_from_clipboard() const +{ + const Selection& selection = p->view3D->get_canvas3d()->get_selection(); + const Selection::Clipboard& clipboard = selection.get_clipboard(); + + if (clipboard.is_empty()) + return false; + + if ((wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() == ptSLA) && !clipboard.is_sla_compliant()) + return false; + + Selection::EMode mode = clipboard.get_mode(); + if ((mode == Selection::Volume) && !selection.is_from_single_instance()) + return false; + + if ((mode == Selection::Instance) && (selection.get_mode() != Selection::Instance)) + return false; + + return true; +} + +bool Plater::can_copy_to_clipboard() const +{ + if (is_selection_empty()) + return false; + + const Selection& selection = p->view3D->get_canvas3d()->get_selection(); + if ((wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() == ptSLA) && !selection.is_sla_compliant()) + return false; + + return true; +} }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 761bf7a05..2851af654 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -200,7 +200,6 @@ public: void copy_selection_to_clipboard(); void paste_from_clipboard(); - bool can_paste_from_clipboard() const; bool can_delete() const; bool can_delete_all() const; @@ -212,8 +211,8 @@ public: bool can_split_to_volumes() const; bool can_arrange() const; bool can_layers_editing() const; - bool can_copy() const; - bool can_paste() const; + bool can_paste_from_clipboard() const; + bool can_copy_to_clipboard() const; void msw_rescale(); diff --git a/src/slic3r/GUI/ProgressStatusBar.hpp b/src/slic3r/GUI/ProgressStatusBar.hpp index 7d624af90..413c6ffee 100644 --- a/src/slic3r/GUI/ProgressStatusBar.hpp +++ b/src/slic3r/GUI/ProgressStatusBar.hpp @@ -2,6 +2,7 @@ #define PROGRESSSTATUSBAR_HPP #include <memory> +#include <string> #include <functional> #include <string> diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 480b59ba0..97168ee04 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -47,6 +47,26 @@ Selection::VolumeCache::VolumeCache(const Geometry::Transformation& volume_trans { } +bool Selection::Clipboard::is_sla_compliant() const +{ + if (m_mode == Selection::Volume) + return false; + + for (const ModelObject* o : m_model.objects) + { + if (o->is_multiparts()) + return false; + + for (const ModelVolume* v : o->volumes) + { + if (v->is_modifier()) + return false; + } + } + + return true; +} + Selection::Selection() : m_volumes(nullptr) , m_model(nullptr) @@ -385,6 +405,20 @@ bool Selection::is_from_single_object() const return (0 <= idx) && (idx < 1000); } +bool Selection::is_sla_compliant() const +{ + if (m_mode == Volume) + return false; + + for (unsigned int i : m_list) + { + if ((*m_volumes)[i]->is_modifier) + return false; + } + + return true; +} + bool Selection::requires_uniform_scale() const { if (is_single_full_instance() || is_single_modifier() || is_single_volume()) @@ -1893,25 +1927,59 @@ bool Selection::is_from_fully_selected_instance(unsigned int volume_idx) const void Selection::paste_volumes_from_clipboard() { - int obj_idx = get_object_idx(); - if ((obj_idx < 0) || ((int)m_model->objects.size() <= obj_idx)) + int dst_obj_idx = get_object_idx(); + if ((dst_obj_idx < 0) || ((int)m_model->objects.size() <= dst_obj_idx)) + return; + + ModelObject* dst_object = m_model->objects[dst_obj_idx]; + + int dst_inst_idx = get_instance_idx(); + if ((dst_inst_idx < 0) || ((int)dst_object->instances.size() <= dst_inst_idx)) return; ModelObject* src_object = m_clipboard.get_object(0); if (src_object != nullptr) { - ModelObject* dst_object = m_model->objects[obj_idx]; + ModelInstance* dst_instance = dst_object->instances[dst_inst_idx]; + BoundingBoxf3 dst_instance_bb = dst_object->instance_bounding_box(dst_inst_idx); + Transform3d src_matrix = src_object->instances[0]->get_transformation().get_matrix(true); + Transform3d dst_matrix = dst_instance->get_transformation().get_matrix(true); + bool from_same_object = (src_object->input_file == dst_object->input_file) && src_matrix.isApprox(dst_matrix); + + // used to keep relative position of multivolume selections when pasting from another object + BoundingBoxf3 total_bb; ModelVolumePtrs volumes; for (ModelVolume* src_volume : src_object->volumes) { ModelVolume* dst_volume = dst_object->add_volume(*src_volume); dst_volume->set_new_unique_id(); - double offset = wxGetApp().plater()->canvas3D()->get_size_proportional_to_max_bed_size(0.05); - dst_volume->translate(offset, offset, 0.0); + if (from_same_object) + { +// // if the volume comes from the same object, apply the offset in world system +// double offset = wxGetApp().plater()->canvas3D()->get_size_proportional_to_max_bed_size(0.05); +// dst_volume->translate(dst_matrix.inverse() * Vec3d(offset, offset, 0.0)); + } + else + { + // if the volume comes from another object, apply the offset as done when adding modifiers + // see ObjectList::load_generic_subobject() + total_bb.merge(dst_volume->mesh().bounding_box().transformed(src_volume->get_matrix())); + } + volumes.push_back(dst_volume); } - wxGetApp().obj_list()->paste_volumes_into_list(obj_idx, volumes); + + // keeps relative position of multivolume selections + if (!from_same_object) + { + for (ModelVolume* v : volumes) + { + v->set_offset((v->get_offset() - total_bb.center()) + dst_matrix.inverse() * (Vec3d(dst_instance_bb.max(0), dst_instance_bb.min(1), dst_instance_bb.min(2)) + 0.5 * total_bb.size() - dst_instance->get_transformation().get_offset())); + } + } + + wxGetApp().obj_list()->paste_volumes_into_list(dst_obj_idx, volumes); } } diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index 5da1e477b..802f8d284 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -152,6 +152,8 @@ public: void reset() { m_model.clear_objects(); } bool is_empty() const { return m_model.objects.empty(); } + bool is_sla_compliant() const; + ModelObject* add_object() { return m_model.add_object(); } ModelObject* get_object(unsigned int id) { return (id < (unsigned int)m_model.objects.size()) ? m_model.objects[id] : nullptr; } const ModelObjectPtrs& get_objects() const { return m_model.objects; } @@ -257,6 +259,7 @@ public: bool is_mixed() const { return m_type == Mixed; } bool is_from_single_instance() const { return get_instance_idx() != -1; } bool is_from_single_object() const; + bool is_sla_compliant() const; bool contains_volume(unsigned int volume_idx) const { return m_list.find(volume_idx) != m_list.end(); } bool requires_uniform_scale() const; diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 06cf9b7d5..aed423674 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -1583,10 +1583,14 @@ DoubleSlider::DoubleSlider( wxWindow *parent, m_bmp_one_layer_unlock_off = ScalableBitmap(this, "one_layer_unlock_off.png"); m_lock_icon_dim = m_bmp_one_layer_lock_on.bmp().GetSize().x; + m_bmp_revert = ScalableBitmap(this, "undo"); + m_revert_icon_dim = m_bmp_revert.bmp().GetSize().x; + m_selection = ssUndef; // slider events Bind(wxEVT_PAINT, &DoubleSlider::OnPaint, this); + Bind(wxEVT_CHAR, &DoubleSlider::OnChar, this); Bind(wxEVT_LEFT_DOWN, &DoubleSlider::OnLeftDown, this); Bind(wxEVT_MOTION, &DoubleSlider::OnMotion, this); Bind(wxEVT_LEFT_UP, &DoubleSlider::OnLeftUp, this); @@ -1637,6 +1641,9 @@ void DoubleSlider::msw_rescale() m_bmp_one_layer_unlock_off.msw_rescale(); m_lock_icon_dim = m_bmp_one_layer_lock_on.bmp().GetSize().x; + m_bmp_revert.msw_rescale(); + m_revert_icon_dim = m_bmp_revert.bmp().GetSize().x; + SLIDER_MARGIN = 4 + Slic3r::GUI::wxGetApp().em_unit(); SetMinSize(get_min_size()); @@ -1873,8 +1880,11 @@ void DoubleSlider::render() //draw color print ticks draw_ticks(dc); - //draw color print ticks + //draw lock/unlock draw_one_layer_icon(dc); + + //draw revert bitmap (if it's shown) + draw_revert_icon(dc); } void DoubleSlider::draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoint pt_end) @@ -2101,6 +2111,24 @@ void DoubleSlider::draw_one_layer_icon(wxDC& dc) m_rect_one_layer_icon = wxRect(x_draw, y_draw, m_lock_icon_dim, m_lock_icon_dim); } +void DoubleSlider::draw_revert_icon(wxDC& dc) +{ + if (m_ticks.empty()) + return; + + int width, height; + get_size(&width, &height); + + wxCoord x_draw, y_draw; + is_horizontal() ? x_draw = width-2 : x_draw = 0.25*SLIDER_MARGIN; + is_horizontal() ? y_draw = 0.25*SLIDER_MARGIN: y_draw = height-2; + + dc.DrawBitmap(m_bmp_revert.bmp(), x_draw, y_draw); + + //update rect of the lock/unlock icon + m_rect_revert_icon = wxRect(x_draw, y_draw, m_revert_icon_dim, m_revert_icon_dim); +} + void DoubleSlider::update_thumb_rect(const wxCoord& begin_x, const wxCoord& begin_y, const SelectedSlider& selection) { const wxRect& rect = wxRect(begin_x, begin_y, m_thumb_size.x, m_thumb_size.y); @@ -2117,8 +2145,8 @@ int DoubleSlider::get_value_from_position(const wxCoord x, const wxCoord y) if (is_horizontal()) return int(double(x - SLIDER_MARGIN) / step + 0.5); - else - return int(m_min_value + double(height - SLIDER_MARGIN - y) / step + 0.5); + + return int(m_min_value + double(height - SLIDER_MARGIN - y) / step + 0.5); } void DoubleSlider::detect_selected_slider(const wxPoint& pt) @@ -2168,7 +2196,10 @@ void DoubleSlider::ChangeOneLayerLock() void DoubleSlider::OnLeftDown(wxMouseEvent& event) { + if (HasCapture()) + return; this->CaptureMouse(); + wxClientDC dc(this); wxPoint pos = event.GetLogicalPosition(dc); if (is_point_in_rect(pos, m_rect_tick_action) && m_is_enabled_tick_manipulation) { @@ -2178,6 +2209,7 @@ void DoubleSlider::OnLeftDown(wxMouseEvent& event) m_is_left_down = true; if (is_point_in_rect(pos, m_rect_one_layer_icon)) { + // switch on/off one layer mode m_is_one_layer = !m_is_one_layer; if (!m_is_one_layer) { SetLowerValue(m_min_value); @@ -2186,20 +2218,36 @@ void DoubleSlider::OnLeftDown(wxMouseEvent& event) m_selection == ssLower ? correct_lower_value() : correct_higher_value(); if (!m_selection) m_selection = ssHigher; } + else if (is_point_in_rect(pos, m_rect_revert_icon)) { + // discard all color changes + SetLowerValue(m_min_value); + SetHigherValue(m_max_value); + + m_selection == ssLower ? correct_lower_value() : correct_higher_value(); + if (!m_selection) m_selection = ssHigher; + + m_ticks.clear(); + wxPostEvent(this->GetParent(), wxCommandEvent(wxCUSTOMEVT_TICKSCHANGED)); + } else detect_selected_slider(pos); - if (!m_selection && m_is_enabled_tick_manipulation) { - const auto tick = is_point_near_tick(pos); - if (tick >= 0) + if (!m_selection) { + const int tick_val = is_point_near_tick(pos); + /* Set current thumb position to the nearest tick (if it is) + * OR to a value corresponding to the mouse click + * */ + const int mouse_val = tick_val >= 0 && m_is_enabled_tick_manipulation ? tick_val : + get_value_from_position(pos.x, pos.y); + if (mouse_val >= 0) { - if (abs(tick - m_lower_value) < abs(tick - m_higher_value)) { - SetLowerValue(tick); + if (abs(mouse_val - m_lower_value) < abs(mouse_val - m_higher_value)) { + SetLowerValue(mouse_val); correct_lower_value(); m_selection = ssLower; } else { - SetHigherValue(tick); + SetHigherValue(mouse_val); correct_higher_value(); m_selection = ssHigher; } @@ -2239,9 +2287,13 @@ void DoubleSlider::OnMotion(wxMouseEvent& event) const wxClientDC dc(this); const wxPoint pos = event.GetLogicalPosition(dc); + m_is_one_layer_icon_focesed = is_point_in_rect(pos, m_rect_one_layer_icon); + bool is_revert_icon_focused = false; + if (!m_is_left_down && !m_is_one_layer) { m_is_action_icon_focesed = is_point_in_rect(pos, m_rect_tick_action); + is_revert_icon_focused = !m_ticks.empty() && is_point_in_rect(pos, m_rect_revert_icon); } else if (m_is_left_down || m_is_right_down) { if (m_selection == ssLower) { @@ -2261,6 +2313,12 @@ void DoubleSlider::OnMotion(wxMouseEvent& event) Update(); event.Skip(); + // Set tooltips with information for each icon + const wxString tooltip = m_is_one_layer_icon_focesed ? _(L("One layer mode")) : + m_is_action_icon_focesed ? _(L("Add/Del color change")) : + is_revert_icon_focused ? _(L("Discard all color changes")) : ""; + this->SetToolTip(tooltip); + if (action) { wxCommandEvent e(wxEVT_SCROLL_CHANGED); @@ -2366,9 +2424,9 @@ void DoubleSlider::OnWheel(wxMouseEvent& event) void DoubleSlider::OnKeyDown(wxKeyEvent &event) { const int key = event.GetKeyCode(); - if (key == '+' || key == WXK_NUMPAD_ADD) + if (key == WXK_NUMPAD_ADD) action_tick(taAdd); - else if (key == '-' || key == 390 || key == WXK_DELETE || key == WXK_BACK) + else if (key == 390 || key == WXK_DELETE || key == WXK_BACK) action_tick(taDel); else if (is_horizontal()) { @@ -2387,6 +2445,8 @@ void DoubleSlider::OnKeyDown(wxKeyEvent &event) else if (key == WXK_UP || key == WXK_DOWN) move_current_thumb(key == WXK_UP); } + + event.Skip(); // !Needed to have EVT_CHAR generated as well } void DoubleSlider::OnKeyUp(wxKeyEvent &event) @@ -2398,9 +2458,20 @@ void DoubleSlider::OnKeyUp(wxKeyEvent &event) event.Skip(); } +void DoubleSlider::OnChar(wxKeyEvent& event) +{ + const int key = event.GetKeyCode(); + if (key == '+') + action_tick(taAdd); + else if (key == '-') + action_tick(taDel); +} + void DoubleSlider::OnRightDown(wxMouseEvent& event) { + if (HasCapture()) return; this->CaptureMouse(); + const wxClientDC dc(this); detect_selected_slider(event.GetLogicalPosition(dc)); if (!m_selection) @@ -2460,6 +2531,9 @@ LockButton::LockButton( wxWindow *parent, void LockButton::OnButton(wxCommandEvent& event) { + if (m_disabled) + return; + m_is_pushed = !m_is_pushed; enter_button(true); diff --git a/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 78fb7be55..081c0d48f 100644 --- a/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp @@ -727,6 +727,7 @@ public: void OnWheel(wxMouseEvent& event); void OnKeyDown(wxKeyEvent &event); void OnKeyUp(wxKeyEvent &event); + void OnChar(wxKeyEvent &event); void OnRightDown(wxMouseEvent& event); void OnRightUp(wxMouseEvent& event); @@ -741,6 +742,7 @@ protected: void draw_ticks(wxDC& dc); void draw_colored_band(wxDC& dc); void draw_one_layer_icon(wxDC& dc); + void draw_revert_icon(wxDC& dc); void draw_thumb_item(wxDC& dc, const wxPoint& pos, const SelectedSlider& selection); void draw_info_line_with_icon(wxDC& dc, const wxPoint& pos, SelectedSlider selection); void draw_thumb_text(wxDC& dc, const wxPoint& pos, const SelectedSlider& selection) const; @@ -782,6 +784,7 @@ private: ScalableBitmap m_bmp_one_layer_lock_off; ScalableBitmap m_bmp_one_layer_unlock_on; ScalableBitmap m_bmp_one_layer_unlock_off; + ScalableBitmap m_bmp_revert; SelectedSlider m_selection; bool m_is_left_down = false; bool m_is_right_down = false; @@ -795,9 +798,11 @@ private: wxRect m_rect_higher_thumb; wxRect m_rect_tick_action; wxRect m_rect_one_layer_icon; + wxRect m_rect_revert_icon; wxSize m_thumb_size; int m_tick_icon_dim; int m_lock_icon_dim; + int m_revert_icon_dim; long m_style; float m_label_koef = 1.0; @@ -837,9 +842,13 @@ public: void OnEnterBtn(wxMouseEvent& event) { enter_button(true); event.Skip(); } void OnLeaveBtn(wxMouseEvent& event) { enter_button(false); event.Skip(); } - bool IsLocked() const { return m_is_pushed; } + bool IsLocked() const { return m_is_pushed; } void SetLock(bool lock); + // create its own Enable/Disable functions to not really disabled button because of tooltip enabling + void enable() { m_disabled = false; } + void disable() { m_disabled = true; } + void msw_rescale(); protected: @@ -847,6 +856,7 @@ protected: private: bool m_is_pushed = false; + bool m_disabled = false; ScalableBitmap m_bmp_lock_on; ScalableBitmap m_bmp_lock_off; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index f34cd8db1..8c3ced31a 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -4,6 +4,7 @@ #include <thread> #include <unordered_map> #include <ostream> +#include <utility> #include <stdexcept> #include <boost/format.hpp> #include <boost/algorithm/string.hpp> @@ -45,10 +46,25 @@ static const char *INDEX_FILENAME = "index.idx"; static const char *TMP_EXTENSION = ".download"; +void copy_file_fix(const fs::path &source, const fs::path &target) +{ + static const auto perms = fs::owner_read | fs::owner_write | fs::group_read | fs::others_read; // aka 644 + + BOOST_LOG_TRIVIAL(debug) << boost::format("PresetUpdater: Copying %1% -> %2%") % source % target; + + // Make sure the file has correct permission both before and after we copy over it + if (fs::exists(target)) { + fs::permissions(target, perms); + } + fs::copy_file(source, target, fs::copy_option::overwrite_if_exists); + fs::permissions(target, perms); +} + struct Update { fs::path source; fs::path target; + Version version; std::string vendor; std::string changelog_url; @@ -61,7 +77,13 @@ struct Update , changelog_url(std::move(changelog_url)) {} - friend std::ostream& operator<<(std::ostream& os , const Update &self) { + void install() const + { + copy_file_fix(source, target); + } + + friend std::ostream& operator<<(std::ostream& os, const Update &self) + { os << "Update(" << self.source.string() << " -> " << self.target.string() << ')'; return os; } @@ -115,7 +137,6 @@ struct PresetUpdater::priv bool enabled_version_check; bool enabled_config_update; std::string version_check_url; - bool had_config_update; fs::path cache_path; fs::path rsrc_path; @@ -135,13 +156,10 @@ struct PresetUpdater::priv void check_install_indices() const; Updates get_config_updates() const; void perform_updates(Updates &&updates, bool snapshot = true) const; - - static void copy_file(const fs::path &from, const fs::path &to); }; PresetUpdater::priv::priv() : ver_slic3r(get_slic3r_version()) - , had_config_update(false) , cache_path(fs::path(Slic3r::data_dir()) / "cache") , rsrc_path(fs::path(resources_dir()) / "profiles") , vendor_path(fs::path(Slic3r::data_dir()) / "vendor") @@ -273,7 +291,7 @@ void PresetUpdater::priv::sync_config(const std::set<VendorProfile> vendors) try { new_index.load(idx_path_temp); } catch (const std::exception & /* err */) { - BOOST_LOG_TRIVIAL(error) << boost::format("Failed loading a downloaded index %1% for vendor %2%: invalid index?") % idx_path_temp % vendor.name; + BOOST_LOG_TRIVIAL(error) << boost::format("Could not load downloaded index %1% for vendor %2%: invalid index?") % idx_path_temp % vendor.name; continue; } if (new_index.version() < index.version()) { @@ -323,7 +341,7 @@ void PresetUpdater::priv::check_install_indices() const if (! fs::exists(path_in_cache)) { BOOST_LOG_TRIVIAL(info) << "Install index from resources: " << path.filename(); - copy_file(path, path_in_cache); + copy_file_fix(path, path_in_cache); } else { Index idx_rsrc, idx_cache; idx_rsrc.load(path); @@ -331,7 +349,7 @@ void PresetUpdater::priv::check_install_indices() const if (idx_cache.version() < idx_rsrc.version()) { BOOST_LOG_TRIVIAL(info) << "Update index from resources: " << path.filename(); - copy_file(path, path_in_cache); + copy_file_fix(path, path_in_cache); } } } @@ -346,6 +364,7 @@ Updates PresetUpdater::priv::get_config_updates() const for (const auto idx : index_db) { auto bundle_path = vendor_path / (idx.vendor() + ".ini"); + auto bundle_path_idx = vendor_path / idx.path().filename(); if (! fs::exists(bundle_path)) { BOOST_LOG_TRIVIAL(info) << "Bundle not present for index, skipping: " << idx.vendor(); @@ -360,8 +379,31 @@ Updates PresetUpdater::priv::get_config_updates() const const auto recommended = idx.recommended(); if (recommended == idx.end()) { BOOST_LOG_TRIVIAL(error) << boost::format("No recommended version for vendor: %1%, invalid index?") % idx.vendor(); + // XXX: what should be done here? + continue; + } + + // Load 'installed' idx, if any. + // 'Installed' indices are kept alongside the bundle in the `vendor` subdir + // for bookkeeping to remember a cancelled update and not offer it again. + if (fs::exists(bundle_path_idx)) { + Index existing_idx; + try { + existing_idx.load(bundle_path_idx); + + const auto existing_recommended = existing_idx.recommended(); + if (existing_recommended != existing_idx.end() && recommended->config_version == existing_recommended->config_version) { + // The user has already seen (and presumably rejected) this update + BOOST_LOG_TRIVIAL(info) << boost::format("Downloaded index for `%1%` is the same as installed one, not offering an update.") % idx.vendor(); + continue; + } + } catch (const std::exception & /* err */) { + BOOST_LOG_TRIVIAL(error) << boost::format("Could nto load installed index %1%") % bundle_path_idx; + } } + copy_file_fix(idx.path(), bundle_path_idx); + const auto ver_current = idx.find(vp.config_version); const bool ver_current_found = ver_current != idx.end(); if (! ver_current_found) { @@ -453,10 +495,10 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons for (const auto &update : updates.updates) { BOOST_LOG_TRIVIAL(info) << '\t' << update; - copy_file(update.source, update.target); + update.install(); PresetBundle bundle; - bundle.load_configbundle(update.target.string(), PresetBundle::LOAD_CFGBNDLE_SYSTEM); + bundle.load_configbundle(update.source.string(), PresetBundle::LOAD_CFGBNDLE_SYSTEM); BOOST_LOG_TRIVIAL(info) << boost::format("Deleting %1% conflicting presets") % (bundle.prints.size() + bundle.filaments.size() + bundle.printers.size()); @@ -491,19 +533,6 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons } } -void PresetUpdater::priv::copy_file(const fs::path &source, const fs::path &target) -{ - static const auto perms = fs::owner_read | fs::owner_write | fs::group_read | fs::others_read; // aka 644 - - // Make sure the file has correct permission both before and after we copy over it - if (fs::exists(target)) { - fs::permissions(target, perms); - } - fs::copy_file(source, target, fs::copy_option::overwrite_if_exists); - fs::permissions(target, perms); -} - - PresetUpdater::PresetUpdater() : p(new priv()) {} @@ -542,11 +571,6 @@ void PresetUpdater::slic3r_update_notify() { if (! p->enabled_version_check) { return; } - if (p->had_config_update) { - BOOST_LOG_TRIVIAL(info) << "New Slic3r version available, but there was a configuration update, notification won't be displayed"; - return; - } - auto* app_config = GUI::wxGetApp().app_config; const auto ver_online_str = app_config->get("version_online"); const auto ver_online = Semver::parse(ver_online_str); @@ -594,8 +618,6 @@ PresetUpdater::UpdateResult PresetUpdater::config_update() const incompats_map.emplace(std::make_pair(incompat.vendor, std::move(restrictions))); } - p->had_config_update = true; // This needs to be done before a dialog is shown because of OnIdle() + CallAfter() in Perl - GUI::MsgDataIncompatible dlg(std::move(incompats_map)); const auto res = dlg.ShowModal(); if (res == wxID_REPLACE) { @@ -620,8 +642,6 @@ PresetUpdater::UpdateResult PresetUpdater::config_update() const updates_msg.emplace_back(update.vendor, update.version.config_version, update.version.comment, std::move(changelog_url)); } - p->had_config_update = true; // Ditto, see above - GUI::MsgUpdateConfig dlg(updates_msg); const auto res = dlg.ShowModal(); @@ -631,7 +651,7 @@ PresetUpdater::UpdateResult PresetUpdater::config_update() const // Reload global configuration auto *app_config = GUI::wxGetApp().app_config; - GUI::wxGetApp().preset_bundle->load_presets(*app_config); + GUI::wxGetApp().preset_bundle->load_presets(*app_config); GUI::wxGetApp().load_current_presets(); return R_UPDATE_INSTALLED; } else { diff --git a/src/slic3r/Utils/Semver.hpp b/src/slic3r/Utils/Semver.hpp index 2fb4e3f4b..a755becaa 100644 --- a/src/slic3r/Utils/Semver.hpp +++ b/src/slic3r/Utils/Semver.hpp @@ -137,6 +137,11 @@ public: Semver operator-(const Minor &b) const { Semver res(*this); return res -= b; } Semver operator-(const Patch &b) const { Semver res(*this); return res -= b; } + // Stream output + friend std::ostream& operator<<(std::ostream& os, const Semver &self) { + os << self.to_string(); + return os; + } private: semver_t ver; diff --git a/src/slic3r/Utils/Serial.hpp b/src/slic3r/Utils/Serial.hpp index e4a28de09..67d64b4ec 100644 --- a/src/slic3r/Utils/Serial.hpp +++ b/src/slic3r/Utils/Serial.hpp @@ -17,6 +17,9 @@ struct SerialPortInfo { std::string friendly_name; bool is_printer = false; + SerialPortInfo() {} + SerialPortInfo(std::string port) : port(port), friendly_name(std::move(port)) {} + bool id_match(unsigned id_vendor, unsigned id_product) const { return id_vendor == this->id_vendor && id_product == this->id_product; } }; diff --git a/src/stb_dxt/stb_dxt.h b/src/stb_dxt/stb_dxt.h new file mode 100644 index 000000000..db19110f4 --- /dev/null +++ b/src/stb_dxt/stb_dxt.h @@ -0,0 +1,1049 @@ +// stb_dxt.h - Real-Time DXT1/DXT5 compressor +// Based on original by fabian "ryg" giesen v1.04 +// Custom version, modified by Yann Collet +// +/* + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + You can contact the author at : + - RygsDXTc source repository : http://code.google.com/p/rygsdxtc/ + +*/ +// use '#define STB_DXT_IMPLEMENTATION' before including to create the implementation +// +// USAGE: +// call stb_compress_dxt_block() for every block (you must pad) +// source should be a 4x4 block of RGBA data in row-major order; +// A is ignored if you specify alpha=0; you can turn on dithering +// and "high quality" using mode. +// +// version history: +// v1.06 - (cyan) implement Fabian Giesen's comments +// v1.05 - (cyan) speed optimizations +// v1.04 - (ryg) default to no rounding bias for lerped colors (as per S3TC/DX10 spec); +// single color match fix (allow for inexact color interpolation); +// optimal DXT5 index finder; "high quality" mode that runs multiple refinement steps. +// v1.03 - (stb) endianness support +// v1.02 - (stb) fix alpha encoding bug +// v1.01 - (stb) fix bug converting to RGB that messed up quality, thanks ryg & cbloom +// v1.00 - (stb) first release + +#ifndef STB_INCLUDE_STB_DXT_H +#define STB_INCLUDE_STB_DXT_H + + +//******************************************************************* +// Enable custom Optimisations +// Comment this define if you want to revert to ryg's original code +#define NEW_OPTIMISATIONS +//******************************************************************* + +// compression mode (bitflags) +#define STB_DXT_NORMAL 0 +#define STB_DXT_DITHER 1 // use dithering. dubious win. never use for normal maps and the like! +#define STB_DXT_HIGHQUAL 2 // high quality mode, does two refinement steps instead of 1. ~30-40% slower. + +// The original signature has been modified by adding the parameter compressed_size which returns +// the size in bytes of the compressed data contained into dst +void rygCompress(unsigned char *dst, unsigned char *src, int w, int h, int isDxt5, int& compressed_size); + +// TODO remove these, not working properly.. +void rygCompressYCoCg( unsigned char *dst, unsigned char *src, int w, int h ); +void linearize( unsigned char * dst, const unsigned char * src, int n ); + +void stb_compress_dxt_block(unsigned char *dest, const unsigned char *src, int alpha, int mode); +#define STB_COMPRESS_DXT_BLOCK + +#ifdef STB_DXT_IMPLEMENTATION + +// configuration options for DXT encoder. set them in the project/makefile or just define +// them at the top. + +// STB_DXT_USE_ROUNDING_BIAS +// use a rounding bias during color interpolation. this is closer to what "ideal" +// interpolation would do but doesn't match the S3TC/DX10 spec. old versions (pre-1.03) +// implicitly had this turned on. +// +// in case you're targeting a specific type of hardware (e.g. console programmers): +// NVidia and Intel GPUs (as of 2010) as well as DX9 ref use DXT decoders that are closer +// to STB_DXT_USE_ROUNDING_BIAS. AMD/ATI, S3 and DX10 ref are closer to rounding with no bias. +// you also see "(a*5 + b*3) / 8" on some old GPU designs. +// #define STB_DXT_USE_ROUNDING_BIAS + +#include <stdlib.h> +#include <math.h> +#include <stddef.h> +#include <string.h> // memset +#include <assert.h> +#include <iostream> +#include <algorithm> + + +static unsigned char stb__Expand5[32]; +static unsigned char stb__Expand6[64]; +static unsigned char stb__OMatch5[256][2]; +static unsigned char stb__OMatch6[256][2]; +static unsigned char stb__QuantRBTab[256+16]; +static unsigned char stb__QuantGTab[256+16]; + +static int stb__Mul8Bit(int a, int b) +{ + int t = a*b + 128; + return (t + (t >> 8)) >> 8; +} + +static void stb__From16Bit(unsigned char *out, unsigned short v) +{ + int rv = (v & 0xf800) >> 11; + int gv = (v & 0x07e0) >> 5; + int bv = (v & 0x001f) >> 0; + + out[0] = stb__Expand5[rv]; + out[1] = stb__Expand6[gv]; + out[2] = stb__Expand5[bv]; + out[3] = 0; +} + +static unsigned short stb__As16Bit(int r, int g, int b) +{ + return (stb__Mul8Bit(r,31) << 11) + (stb__Mul8Bit(g,63) << 5) + stb__Mul8Bit(b,31); +} + +// linear interpolation at 1/3 point between a and b, using desired rounding type +static int stb__Lerp13(int a, int b) +{ +#ifdef STB_DXT_USE_ROUNDING_BIAS + // with rounding bias + return a + stb__Mul8Bit(b-a, 0x55); +#else + // without rounding bias + // replace "/ 3" by "* 0xaaab) >> 17" if your compiler sucks or you really need every ounce of speed. + return (2*a + b) / 3; +#endif +} + +// lerp RGB color +static void stb__Lerp13RGB(unsigned char *out, unsigned char *p1, unsigned char *p2) +{ + out[0] = stb__Lerp13(p1[0], p2[0]); + out[1] = stb__Lerp13(p1[1], p2[1]); + out[2] = stb__Lerp13(p1[2], p2[2]); +} + +/****************************************************************************/ + +// compute table to reproduce constant colors as accurately as possible +static void stb__PrepareOptTable(unsigned char *Table,const unsigned char *expand,int size) +{ + int i,mn,mx; + for (i=0;i<256;i++) { + int bestErr = 256; + for (mn=0;mn<size;mn++) { + for (mx=0;mx<size;mx++) { + int mine = expand[mn]; + int maxe = expand[mx]; + int err = abs(stb__Lerp13(maxe, mine) - i); + + // DX10 spec says that interpolation must be within 3% of "correct" result, + // add this as error term. (normally we'd expect a random distribution of + // +-1.5% error, but nowhere in the spec does it say that the error has to be + // unbiased - better safe than sorry). + err += abs(maxe - mine) * 3 / 100; + + if(err < bestErr) + { + Table[i*2+0] = mx; + Table[i*2+1] = mn; + bestErr = err; + } + } + } + } +} + +static void stb__EvalColors(unsigned char *color,unsigned short c0,unsigned short c1) +{ + stb__From16Bit(color+ 0, c0); + stb__From16Bit(color+ 4, c1); + stb__Lerp13RGB(color+ 8, color+0, color+4); + stb__Lerp13RGB(color+12, color+4, color+0); +} + +// Block dithering function. Simply dithers a block to 565 RGB. +// (Floyd-Steinberg) +static void stb__DitherBlock(unsigned char *dest, unsigned char *block) +{ + int err[8],*ep1 = err,*ep2 = err+4, *et; + int ch,y; + + // process channels seperately + for (ch=0; ch<3; ++ch) { + unsigned char *bp = block+ch, *dp = dest+ch; + unsigned char *quant = (ch == 1) ? stb__QuantGTab+8 : stb__QuantRBTab+8; + memset(err, 0, sizeof(err)); + for(y=0; y<4; ++y) { + dp[ 0] = quant[bp[ 0] + ((3*ep2[1] + 5*ep2[0]) >> 4)]; + ep1[0] = bp[ 0] - dp[ 0]; + dp[ 4] = quant[bp[ 4] + ((7*ep1[0] + 3*ep2[2] + 5*ep2[1] + ep2[0]) >> 4)]; + ep1[1] = bp[ 4] - dp[ 4]; + dp[ 8] = quant[bp[ 8] + ((7*ep1[1] + 3*ep2[3] + 5*ep2[2] + ep2[1]) >> 4)]; + ep1[2] = bp[ 8] - dp[ 8]; + dp[12] = quant[bp[12] + ((7*ep1[2] + 5*ep2[3] + ep2[2]) >> 4)]; + ep1[3] = bp[12] - dp[12]; + bp += 16; + dp += 16; + et = ep1, ep1 = ep2, ep2 = et; // swap + } + } +} + +// The color matching function +static unsigned int stb__MatchColorsBlock(unsigned char *block, unsigned char *color,int dither) +{ + unsigned int mask = 0; + int dirr = color[0*4+0] - color[1*4+0]; + int dirg = color[0*4+1] - color[1*4+1]; + int dirb = color[0*4+2] - color[1*4+2]; + int dots[16]; + int stops[4]; + int i; + int c0Point, halfPoint, c3Point; + + for(i=0;i<16;i++) + dots[i] = block[i*4+0]*dirr + block[i*4+1]*dirg + block[i*4+2]*dirb; + + for(i=0;i<4;i++) + stops[i] = color[i*4+0]*dirr + color[i*4+1]*dirg + color[i*4+2]*dirb; + + // think of the colors as arranged on a line; project point onto that line, then choose + // next color out of available ones. we compute the crossover points for "best color in top + // half"/"best in bottom half" and then the same inside that subinterval. + // + // relying on this 1d approximation isn't always optimal in terms of euclidean distance, + // but it's very close and a lot faster. + // http://cbloomrants.blogspot.com/2008/12/12-08-08-dxtc-summary.html + + c0Point = (stops[1] + stops[3]) >> 1; + halfPoint = (stops[3] + stops[2]) >> 1; + c3Point = (stops[2] + stops[0]) >> 1; + + if(!dither) + { + // the version without dithering is straightforward + +#ifdef NEW_OPTIMISATIONS + const int indexMap[8] = { 0 << 30,2 << 30,0 << 30,2 << 30,3 << 30,3 << 30,1 << 30,1 << 30 }; + + for(int i=0;i<16;i++) + { + int dot = dots[i]; + mask >>= 2; + + int bits =( (dot < halfPoint) ? 4 : 0 ) + | ( (dot < c0Point) ? 2 : 0 ) + | ( (dot < c3Point) ? 1 : 0 ); + + mask |= indexMap[bits]; + } + +#else + for (i=15;i>=0;i--) { + int dot = dots[i]; + mask <<= 2; + + if(dot < halfPoint) + mask |= (dot < c0Point) ? 1 : 3; + else + mask |= (dot < c3Point) ? 2 : 0; + } +#endif + + } else { + // with floyd-steinberg dithering + int err[8],*ep1 = err,*ep2 = err+4; + int *dp = dots, y; + + c0Point <<= 4; + halfPoint <<= 4; + c3Point <<= 4; + for(i=0;i<8;i++) + err[i] = 0; + + for(y=0;y<4;y++) + { + int dot,lmask,step; + + dot = (dp[0] << 4) + (3*ep2[1] + 5*ep2[0]); + if(dot < halfPoint) + step = (dot < c0Point) ? 1 : 3; + else + step = (dot < c3Point) ? 2 : 0; + ep1[0] = dp[0] - stops[step]; + lmask = step; + + dot = (dp[1] << 4) + (7*ep1[0] + 3*ep2[2] + 5*ep2[1] + ep2[0]); + if(dot < halfPoint) + step = (dot < c0Point) ? 1 : 3; + else + step = (dot < c3Point) ? 2 : 0; + ep1[1] = dp[1] - stops[step]; + lmask |= step<<2; + + dot = (dp[2] << 4) + (7*ep1[1] + 3*ep2[3] + 5*ep2[2] + ep2[1]); + if(dot < halfPoint) + step = (dot < c0Point) ? 1 : 3; + else + step = (dot < c3Point) ? 2 : 0; + ep1[2] = dp[2] - stops[step]; + lmask |= step<<4; + + dot = (dp[3] << 4) + (7*ep1[2] + 5*ep2[3] + ep2[2]); + if(dot < halfPoint) + step = (dot < c0Point) ? 1 : 3; + else + step = (dot < c3Point) ? 2 : 0; + ep1[3] = dp[3] - stops[step]; + lmask |= step<<6; + + dp += 4; + mask |= lmask << (y*8); + { int *et = ep1; ep1 = ep2; ep2 = et; } // swap + } + } + + return mask; +} + +// The color optimization function. (Clever code, part 1) +static void stb__OptimizeColorsBlock(unsigned char *block, unsigned short *pmax16, unsigned short *pmin16) +{ + unsigned char *minp, *maxp; + double magn; + int v_r,v_g,v_b; + static const int nIterPower = 4; + float covf[6],vfr,vfg,vfb; + + // determine color distribution + int cov[6]; + int mu[3],min[3],max[3]; + int ch,i,iter; + + for(ch=0;ch<3;ch++) + { + const unsigned char *bp = ((const unsigned char *) block) + ch; + int muv,minv,maxv; + +#ifdef NEW_OPTIMISATIONS +# define MIN(a,b) (int)a + ( ((int)b-a) & ( ((int)b-a) >> 31 ) ) +# define MAX(a,b) (int)a + ( ((int)b-a) & ( ((int)a-b) >> 31 ) ) +# define RANGE(a,b,n) int min##n = MIN(a,b); int max##n = a+b - min##n; muv += a+b; +# define MINMAX(a,b,n) int min##n = MIN(min##a, min##b); int max##n = MAX(max##a, max##b); + + muv = 0; + RANGE(bp[0], bp[4], 1); + RANGE(bp[8], bp[12], 2); + RANGE(bp[16], bp[20], 3); + RANGE(bp[24], bp[28], 4); + RANGE(bp[32], bp[36], 5); + RANGE(bp[40], bp[44], 6); + RANGE(bp[48], bp[52], 7); + RANGE(bp[56], bp[60], 8); + + MINMAX(1,2,9); + MINMAX(3,4,10); + MINMAX(5,6,11); + MINMAX(7,8,12); + + MINMAX(9,10,13); + MINMAX(11,12,14); + + minv = MIN(min13,min14); + maxv = MAX(max13,max14); + +#else + muv = minv = maxv = bp[0]; + for(i=4;i<64;i+=4) + { + muv += bp[i]; + if (bp[i] < minv) minv = bp[i]; + else if (bp[i] > maxv) maxv = bp[i]; + } +#endif + + mu[ch] = (muv + 8) >> 4; + min[ch] = minv; + max[ch] = maxv; + } + + // determine covariance matrix + for (i=0;i<6;i++) + cov[i] = 0; + + for (i=0;i<16;i++) + { + int r = block[i*4+0] - mu[0]; + int g = block[i*4+1] - mu[1]; + int b = block[i*4+2] - mu[2]; + + cov[0] += r*r; + cov[1] += r*g; + cov[2] += r*b; + cov[3] += g*g; + cov[4] += g*b; + cov[5] += b*b; + } + + // convert covariance matrix to float, find principal axis via power iter + for(i=0;i<6;i++) + covf[i] = cov[i] / 255.0f; + + vfr = (float) (max[0] - min[0]); + vfg = (float) (max[1] - min[1]); + vfb = (float) (max[2] - min[2]); + + for(iter=0;iter<nIterPower;iter++) + { + float r = vfr*covf[0] + vfg*covf[1] + vfb*covf[2]; + float g = vfr*covf[1] + vfg*covf[3] + vfb*covf[4]; + float b = vfr*covf[2] + vfg*covf[4] + vfb*covf[5]; + + vfr = r; + vfg = g; + vfb = b; + } + + magn = fabs(vfr); + if (fabs(vfg) > magn) magn = fabs(vfg); + if (fabs(vfb) > magn) magn = fabs(vfb); + + if(magn < 4.0f) + { // too small, default to luminance + v_r = 299; // JPEG YCbCr luma coefs, scaled by 1000. + v_g = 587; + v_b = 114; + } else { + magn = 512.0 / magn; + v_r = (int) (vfr * magn); + v_g = (int) (vfg * magn); + v_b = (int) (vfb * magn); + } + + +#ifdef NEW_OPTIMISATIONS + // Pick colors at extreme points + int mind, maxd; + mind = maxd = block[0]*v_r + block[1]*v_g + block[2]*v_b; + minp = maxp = block; + for(i=1;i<16;i++) + { + int dot = block[i*4+0]*v_r + block[i*4+1]*v_g + block[i*4+2]*v_b; + + if (dot < mind) { + mind = dot; + minp = block+i*4; + continue; + } + + if (dot > maxd) { + maxd = dot; + maxp = block+i*4; + } + } +#else + int mind = 0x7fffffff,maxd = -0x7fffffff; + // Pick colors at extreme points + for(i=0;i<16;i++) + { + int dot = block[i*4+0]*v_r + block[i*4+1]*v_g + block[i*4+2]*v_b; + + if (dot < mind) { + mind = dot; + minp = block+i*4; + } + + if (dot > maxd) { + maxd = dot; + maxp = block+i*4; + } + } +#endif + + *pmax16 = stb__As16Bit(maxp[0],maxp[1],maxp[2]); + *pmin16 = stb__As16Bit(minp[0],minp[1],minp[2]); +} + +inline static int stb__sclamp(float y, int p0, int p1) +{ + int x = (int) y; + +#ifdef NEW_OPTIMISATIONS + x = x>p1 ? p1 : x; + return x<p0 ? p0 : x; +#else + if (x < p0) return p0; + if (x > p1) return p1; + return x; +#endif +} + +// The refinement function. (Clever code, part 2) +// Tries to optimize colors to suit block contents better. +// (By solving a least squares system via normal equations+Cramer's rule) +static int stb__RefineBlock(unsigned char *block, unsigned short *pmax16, unsigned short *pmin16, unsigned int mask) +{ + static const int w1Tab[4] = { 3,0,2,1 }; + static const int prods[4] = { 0x090000,0x000900,0x040102,0x010402 }; + // ^some magic to save a lot of multiplies in the accumulating loop... + // (precomputed products of weights for least squares system, accumulated inside one 32-bit register) + + float frb,fg; + unsigned short oldMin, oldMax, min16, max16; + int i, akku = 0, xx,xy,yy; + int At1_r,At1_g,At1_b; + int At2_r,At2_g,At2_b; + unsigned int cm = mask; + + oldMin = *pmin16; + oldMax = *pmax16; + + if((mask ^ (mask<<2)) < 4) // all pixels have the same index? + { + // yes, linear system would be singular; solve using optimal + // single-color match on average color + int r = 8, g = 8, b = 8; + for (i=0;i<16;++i) { + r += block[i*4+0]; + g += block[i*4+1]; + b += block[i*4+2]; + } + + r >>= 4; g >>= 4; b >>= 4; + + max16 = (stb__OMatch5[r][0]<<11) | (stb__OMatch6[g][0]<<5) | stb__OMatch5[b][0]; + min16 = (stb__OMatch5[r][1]<<11) | (stb__OMatch6[g][1]<<5) | stb__OMatch5[b][1]; + } else { + At1_r = At1_g = At1_b = 0; + At2_r = At2_g = At2_b = 0; + for (i=0;i<16;++i,cm>>=2) + { + int step = cm&3; + int w1 = w1Tab[step]; + int r = block[i*4+0]; + int g = block[i*4+1]; + int b = block[i*4+2]; + + akku += prods[step]; + At1_r += w1*r; + At1_g += w1*g; + At1_b += w1*b; + At2_r += r; + At2_g += g; + At2_b += b; + } + + At2_r = 3*At2_r - At1_r; + At2_g = 3*At2_g - At1_g; + At2_b = 3*At2_b - At1_b; + + // extract solutions and decide solvability + xx = akku >> 16; + yy = (akku >> 8) & 0xff; + xy = (akku >> 0) & 0xff; + + frb = 3.0f * 31.0f / 255.0f / (xx*yy - xy*xy); + fg = frb * 63.0f / 31.0f; + + // solve. + max16 = stb__sclamp((At1_r*yy - At2_r*xy)*frb+0.5f,0,31) << 11; + max16 |= stb__sclamp((At1_g*yy - At2_g*xy)*fg +0.5f,0,63) << 5; + max16 |= stb__sclamp((At1_b*yy - At2_b*xy)*frb+0.5f,0,31) << 0; + + min16 = stb__sclamp((At2_r*xx - At1_r*xy)*frb+0.5f,0,31) << 11; + min16 |= stb__sclamp((At2_g*xx - At1_g*xy)*fg +0.5f,0,63) << 5; + min16 |= stb__sclamp((At2_b*xx - At1_b*xy)*frb+0.5f,0,31) << 0; + } + + *pmin16 = min16; + *pmax16 = max16; + return oldMin != min16 || oldMax != max16; +} + +// Color block compression +static void stb__CompressColorBlock(unsigned char *dest, unsigned char *block, int mode) +{ + unsigned int mask; + int i; + int dither; + int refinecount; + unsigned short max16, min16; + unsigned char dblock[16*4],color[4*4]; + + dither = mode & STB_DXT_DITHER; + refinecount = (mode & STB_DXT_HIGHQUAL) ? 2 : 1; + + // check if block is constant + for (i=1;i<16;i++) + if (((unsigned int *) block)[i] != ((unsigned int *) block)[0]) + break; + + if(i == 16) + { // constant color + int r = block[0], g = block[1], b = block[2]; + mask = 0xaaaaaaaa; + max16 = (stb__OMatch5[r][0]<<11) | (stb__OMatch6[g][0]<<5) | stb__OMatch5[b][0]; + min16 = (stb__OMatch5[r][1]<<11) | (stb__OMatch6[g][1]<<5) | stb__OMatch5[b][1]; + } else + { + // first step: compute dithered version for PCA if desired + if(dither) + stb__DitherBlock(dblock,block); + + // second step: pca+map along principal axis + stb__OptimizeColorsBlock(dither ? dblock : block,&max16,&min16); + if (max16 != min16) + { + stb__EvalColors(color,max16,min16); + mask = stb__MatchColorsBlock(block,color,dither); + } else + mask = 0; + + // third step: refine (multiple times if requested) + for (i=0;i<refinecount;i++) { + unsigned int lastmask = mask; + + if (stb__RefineBlock(dither ? dblock : block,&max16,&min16,mask)) + { + if (max16 != min16) + { + stb__EvalColors(color,max16,min16); + mask = stb__MatchColorsBlock(block,color,dither); + } else + { + mask = 0; + break; + } + } + + if(mask == lastmask) + break; + } + } + + // write the color block + if(max16 < min16) + { + unsigned short t = min16; + min16 = max16; + max16 = t; + mask ^= 0x55555555; + } + + dest[0] = (unsigned char) (max16); + dest[1] = (unsigned char) (max16 >> 8); + dest[2] = (unsigned char) (min16); + dest[3] = (unsigned char) (min16 >> 8); + dest[4] = (unsigned char) (mask); + dest[5] = (unsigned char) (mask >> 8); + dest[6] = (unsigned char) (mask >> 16); + dest[7] = (unsigned char) (mask >> 24); +} + +// Alpha block compression (this is easy for a change) +static void stb__CompressAlphaBlock(unsigned char *dest,unsigned char *src,int mode) +{ + int i,dist,bias,dist4,dist2,bits,mask; + + // find min/max color + int mn,mx; + + mn = mx = src[3]; + for (i=1;i<16;i++) + { + if (src[i*4+3] < mn) mn = src[i*4+3]; + else if (src[i*4+3] > mx) mx = src[i*4+3]; + } + + // encode them + ((unsigned char *)dest)[0] = mx; + ((unsigned char *)dest)[1] = mn; + dest += 2; + +#ifdef NEW_OPTIMISATIONS + // mono-alpha shortcut + if (mn==mx) + { + *(unsigned short*)dest = 0; + dest += 2; + *(unsigned int*)dest = 0; + return; + } +#endif + + // determine bias and emit color indices + // given the choice of mx/mn, these indices are optimal: + // http://fgiesen.wordpress.com/2009/12/15/dxt5-alpha-block-index-determination/ + dist = mx-mn; + //printf("mn = %i; mx = %i; dist = %i\n", mn, mx, dist); + dist4 = dist*4; + dist2 = dist*2; + bias = (dist < 8) ? (dist - 1) : (dist/2 + 2); + bias -= mn * 7; + bits = 0, mask=0; + + for (i=0;i<16;i++) + { + int a = src[i*4+3]*7 + bias; + int ind,t; + + // select index. this is a "linear scale" lerp factor between 0 (val=min) and 7 (val=max). + t = (a >= dist4) ? -1 : 0; ind = t & 4; a -= dist4 & t; + t = (a >= dist2) ? -1 : 0; ind += t & 2; a -= dist2 & t; + ind += (a >= dist); + + // turn linear scale into DXT index (0/1 are extremal pts) + ind = -ind & 7; + ind ^= (2 > ind); + + // write index + mask |= ind << bits; + if((bits += 3) >= 8) + { + *dest++ = mask; + mask >>= 8; + bits -= 8; + } + } +} + + +static void stb__InitDXT() +{ + int i; + for(i=0;i<32;i++) + stb__Expand5[i] = (i<<3)|(i>>2); + + for(i=0;i<64;i++) + stb__Expand6[i] = (i<<2)|(i>>4); + + for(i=0;i<256+16;i++) + { + int v = i-8 < 0 ? 0 : i-8 > 255 ? 255 : i-8; + stb__QuantRBTab[i] = stb__Expand5[stb__Mul8Bit(v,31)]; + stb__QuantGTab[i] = stb__Expand6[stb__Mul8Bit(v,63)]; + } + + stb__PrepareOptTable(&stb__OMatch5[0][0],stb__Expand5,32); + stb__PrepareOptTable(&stb__OMatch6[0][0],stb__Expand6,64); +} + + +void stb_compress_dxt_block(unsigned char *dest, const unsigned char *src, int alpha, int mode) +{ + static int init=1; + if (init) + { + stb__InitDXT(); + init=0; + } + + if (alpha) + { + stb__CompressAlphaBlock(dest,(unsigned char*) src,mode); + dest += 8; + } + + stb__CompressColorBlock(dest,(unsigned char*) src,mode); +} + +int imin(int x, int y) { return (x < y) ? x : y; } + + + + + +static void extractBlock(const unsigned char *src, int x, int y, + int w, int h, unsigned char *block) +{ + int i, j; + +#ifdef NEW_OPTIMISATIONS + if ((w-x >=4) && (h-y >=4)) + { + // Full Square shortcut + src += x*4; + src += y*w*4; + for (i=0; i < 4; ++i) + { + *(unsigned int*)block = *(unsigned int*) src; block += 4; src += 4; + *(unsigned int*)block = *(unsigned int*) src; block += 4; src += 4; + *(unsigned int*)block = *(unsigned int*) src; block += 4; src += 4; + *(unsigned int*)block = *(unsigned int*) src; block += 4; + src += (w*4) - 12; + } + return; + } +#endif + + int bw = imin(w - x, 4); + int bh = imin(h - y, 4); + int bx, by; + + const int rem[] = + { + 0, 0, 0, 0, + 0, 1, 0, 1, + 0, 1, 2, 0, + 0, 1, 2, 3 + }; + + for(i = 0; i < 4; ++i) + { + by = rem[(bh - 1) * 4 + i] + y; + for(j = 0; j < 4; ++j) + { + bx = rem[(bw - 1) * 4 + j] + x; + block[(i * 4 * 4) + (j * 4) + 0] = + src[(by * (w * 4)) + (bx * 4) + 0]; + block[(i * 4 * 4) + (j * 4) + 1] = + src[(by * (w * 4)) + (bx * 4) + 1]; + block[(i * 4 * 4) + (j * 4) + 2] = + src[(by * (w * 4)) + (bx * 4) + 2]; + block[(i * 4 * 4) + (j * 4) + 3] = + src[(by * (w * 4)) + (bx * 4) + 3]; + } + } +} + + // should be a pretty optimized 0-255 clamper +inline static unsigned char clamp255( int n ) +{ + if( n > 255 ) n = 255; + if( n < 0 ) n = 0; + return n; +} + + +void rgbToYCoCgBlock( unsigned char * dst, const unsigned char * src ) +{ + // Calculate Co and Cg extents + int extents = 0; + int n = 0; + int iY, iCo, iCg; //, r, g, b; + int blockCo[16]; + int blockCg[16]; + int i; + + const unsigned char *px = src; + for(i=0;i<n;i++) + { + iCo = (px[0]<<1) - (px[2]<<1); + iCg = (px[1]<<1) - px[0] - px[2]; + if(-iCo > extents) extents = -iCo; + if( iCo > extents) extents = iCo; + if(-iCg > extents) extents = -iCg; + if( iCg > extents) extents = iCg; + + blockCo[n] = iCo; + blockCg[n++] = iCg; + + px += 4; + } + + // Co = -510..510 + // Cg = -510..510 + float scaleFactor = 1.0f; + if(extents > 127) + scaleFactor = (float)extents * 4.0f / 510.0f; + + // Convert to quantized scalefactor + unsigned char scaleFactorQuantized = (unsigned char)(ceil((scaleFactor - 1.0f) * 31.0f / 3.0f)); + + // Unquantize + scaleFactor = 1.0f + (float)(scaleFactorQuantized / 31.0f) * 3.0f; + + unsigned char bVal = (unsigned char)((scaleFactorQuantized << 3) | (scaleFactorQuantized >> 2)); + + unsigned char *outPx = dst; + + n = 0; + px = src; + /* + for(i=0;i<16;i++) + { + // Calculate components + iY = ( px[0] + (px[1]<<1) + px[2] + 2 ) / 4; + iCo = ((blockCo[n] / scaleFactor) + 128); + iCg = ((blockCg[n] / scaleFactor) + 128); + + if(iCo < 0) iCo = 0; else if(iCo > 255) iCo = 255; + if(iCg < 0) iCg = 0; else if(iCg > 255) iCg = 255; + if(iY < 0) iY = 0; else if(iY > 255) iY = 255; + + px += 4; + + outPx[0] = (unsigned char)iCo; + outPx[1] = (unsigned char)iCg; + outPx[2] = bVal; + outPx[3] = (unsigned char)iY; + + outPx += 4; + }*/ + for(i=0;i<16;i++) + { + // Calculate components + int r = px[0]; + int g = (px[1] + 1) >> 1; + int b = px[2]; + int tmp = (2 + r + b) >> 2; + + // Co + iCo = clamp255( 128 + ((r - b + 1) >> 1) ); + // Y + iY = clamp255( g + tmp ); + // Cg + iCg = clamp255( 128 + g - tmp ); + + px += 4; + + outPx[0] = (unsigned char)iCo; + outPx[1] = (unsigned char)iCg; + outPx[2] = bVal; + outPx[3] = (unsigned char)iY; + + outPx += 4; + } + +} + + +void rygCompress(unsigned char *dst, unsigned char *src, int w, int h, int isDxt5, int& compressed_size) +{ + + unsigned char block[64]; + int x, y; + + unsigned char* initial_dst = dst; + + for (y = 0; y < h; y += 4) + { + for(x = 0; x < w; x += 4) + { + extractBlock(src, x, y, w, h, block); + stb_compress_dxt_block(dst, block, isDxt5, STB_DXT_NORMAL); + dst += isDxt5 ? 16 : 8; + } + } + + compressed_size = dst - initial_dst; +} + +void rygCompressYCoCg( unsigned char *dst, unsigned char *src, int w, int h ) +{ + unsigned char block[64]; + unsigned char ycocgblock[64]; + int x, y; + + for(y = 0; y < h; y += 4) + { + for(x = 0; x < w; x += 4) + { + extractBlock(src, x, y, w, h, block); + rgbToYCoCgBlock(ycocgblock,block); + stb_compress_dxt_block(dst, ycocgblock, 1, 10); + dst += 16; + } + } + +} + +static void stbgl__compress(unsigned char *p, unsigned char *rgba, int w, int h, int isDxt5) +{ + int i,j,y,y2; + int alpha = isDxt5; + + for (j=0; j < w; j += 4) { + int x=4; + for (i=0; i < h; i += 4) { + unsigned char block[16*4]; + if (i+3 >= w) x = w-i; + for (y=0; y < 4; ++y) { + if (j+y >= h) break; + memcpy(block+y*16, rgba + w*4*(j+y) + i*4, x*4); + } + if (x < 4) { + switch (x) { + case 0: assert(0); + case 1: + for (y2=0; y2 < y; ++y2) { + memcpy(block+y2*16+1*4, block+y2*16+0*4, 4); + memcpy(block+y2*16+2*4, block+y2*16+0*4, 8); + } + break; + case 2: + for (y2=0; y2 < y; ++y2) + memcpy(block+y2*16+2*4, block+y2*16+0*4, 8); + break; + case 3: + for (y2=0; y2 < y; ++y2) + memcpy(block+y2*16+3*4, block+y2*16+1*4, 4); + break; + } + } + y2 = 0; + for(; y<4; ++y,++y2) + memcpy(block+y*16, block+y2*16, 4*4); + stb_compress_dxt_block(p, block, alpha, 10); + p += alpha ? 16 : 8; + } + } + // assert(p <= end); +} + +static inline unsigned char linearize(unsigned char inByte) +{ + float srgbVal = ((float)inByte) / 255.0f; + float linearVal; + + if(srgbVal < 0.04045) + linearVal = srgbVal / 12.92f; + else + linearVal = pow( (srgbVal + 0.055f) / 1.055f, 2.4f); + + return (unsigned char)(floor(sqrt(linearVal)* 255.0 + 0.5)); +} + +void linearize( unsigned char * dst, const unsigned char * src, int n ) +{ + n*=4; + for( int i = 0; i < n; i++ ) + dst[i] = linearize(src[i]); +} + + + +#endif // STB_DXT_IMPLEMENTATION + +#endif // STB_INCLUDE_STB_DXT_H |