From b9215ce6668174f129e1a081dd16bcb2c31dd900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Tue, 13 Dec 2016 08:44:20 +0100 Subject: [PATCH] Merge branch 'master' into AngleBasedEdgeSelection --- cmake/FindCLP.cmake | 4 ++++ libs_required/MeshTools/MeshSelectionT.cc | 5 +++-- libs_required/MeshTools/MeshSelectionT.hh | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/FindCLP.cmake b/cmake/FindCLP.cmake index ea9551dc..3a5b9394 100644 --- a/cmake/FindCLP.cmake +++ b/cmake/FindCLP.cmake @@ -78,4 +78,8 @@ find_package_handle_standard_args(CLP DEFAULT_MSG mark_as_advanced(CLP_INCLUDE_DIR CLP_LIBRARY) +<<<<<<< HEAD +endif(NOT CLP_FOUND) +======= endif( NOT CLP_FOUND) +>>>>>>> de50b89d4c22e69eb9f024dd18a994331b44d056 diff --git a/libs_required/MeshTools/MeshSelectionT.cc b/libs_required/MeshTools/MeshSelectionT.cc index 70660e89..c73e0d0f 100644 --- a/libs_required/MeshTools/MeshSelectionT.cc +++ b/libs_required/MeshTools/MeshSelectionT.cc @@ -521,13 +521,14 @@ std::vector< int > getArea(MeshT* _mesh, unsigned int _type , bool& _invert) { template< typename MeshT > inline -void selectEdges(MeshT* _mesh, const std::vector< int >& _edges) { +void selectEdges(MeshT* _mesh, const std::vector< int >& _edges, const double _dihedral_angle_threshold) { const int n_edges = (int)_mesh->n_edges(); for ( uint i = 0 ; i < _edges.size() ; ++i ) if ( (_edges[i] >= 0) && ( _edges[i] < n_edges ) ) { typename MeshT::EdgeHandle eh(_edges[i]); - _mesh->status(eh).set_selected(true); + if(!_mesh->has_face_normals() || std::abs(_mesh->calc_dihedral_angle_fast(eh)) >= _dihedral_angle_threshold) + _mesh->status(eh).set_selected(true); } } diff --git a/libs_required/MeshTools/MeshSelectionT.hh b/libs_required/MeshTools/MeshSelectionT.hh index 63f1e37e..22fd5130 100644 --- a/libs_required/MeshTools/MeshSelectionT.hh +++ b/libs_required/MeshTools/MeshSelectionT.hh @@ -261,7 +261,7 @@ std::vector< int > getArea(MeshT* _mesh, unsigned int _type , bool& _invert); /// Select given edges of a mesh template< typename MeshT > inline -void selectEdges(MeshT* _mesh, const std::vector< int >& _edges); +void selectEdges(MeshT* _mesh, const std::vector< int >& _edges, const double _dihedral_angle_threshold = 0.0); /// Unselect given edges of a mesh template< typename MeshT > -- GitLab