Change rendered model move button from left to middle

master
Jeremy Hu 2018-04-11 20:49:00 +08:00
parent 700c606616
commit f0e68d9f7a
5 changed files with 26 additions and 15 deletions

View File

@ -274,7 +274,10 @@ void MeshGenerator::process()
if (mergedMeshId > 0)
mergedMeshId = meshlite_combine_coplanar_faces(meshliteContext, mergedMeshId);
if (mergedMeshId > 0) {
int subdivedMeshId = subdivMesh(meshliteContext, mergedMeshId);
int errorCount = 0;
int subdivedMeshId = subdivMesh(meshliteContext, mergedMeshId, &errorCount);
if (errorCount > 0)
broken = true;
if (subdivedMeshId > 0)
mergedMeshId = subdivedMeshId;
else

View File

@ -188,18 +188,26 @@ int mergeMeshs(void *meshliteContext, const std::vector<int> &meshIds)
return mergedMeshId;
}
int subdivMesh(void *meshliteContext, int meshId)
int subdivMesh(void *meshliteContext, int meshId, int *errorCount)
{
int triangulatedMeshId = meshlite_triangulate(meshliteContext, meshId);
//#if USE_CGAL == 1
// CGAL::set_error_behaviour(CGAL::THROW_EXCEPTION);
// SimpleMesh *simpleMesh = makeCgalMeshFromMeshlite<SimpleKernel>(meshliteContext, triangulatedMeshId);
// CGAL::Subdivision_method_3::CatmullClark_subdivision(*simpleMesh, CGAL::Polygon_mesh_processing::parameters::number_of_iterations(1));
// return makeMeshliteMeshFromCgal<SimpleKernel>(meshliteContext, simpleMesh);
//#else
if (0 == meshlite_is_triangulated_manifold(meshliteContext, triangulatedMeshId)) {
return 0;
#if USE_CGAL == 1
CGAL::set_error_behaviour(CGAL::THROW_EXCEPTION);
int subdiviedMeshId = 0;
SimpleMesh *simpleMesh = nullptr;
try {
simpleMesh = makeCgalMeshFromMeshlite<SimpleKernel>(meshliteContext, triangulatedMeshId);
CGAL::Subdivision_method_3::CatmullClark_subdivision(*simpleMesh, CGAL::Polygon_mesh_processing::parameters::number_of_iterations(1));
subdiviedMeshId = makeMeshliteMeshFromCgal<SimpleKernel>(meshliteContext, simpleMesh);
} catch (...) {
if (errorCount)
(*errorCount)++;
}
if (simpleMesh)
delete simpleMesh;
return subdiviedMeshId;
#endif
}
return meshlite_subdivide(meshliteContext, meshId);
//#endif
}

View File

@ -4,6 +4,6 @@
int mergeMeshs(void *meshliteContext, const std::vector<int> &meshIds);
int unionMeshs(void *meshliteContext, const std::vector<int> &meshIds, int *errorCount=0);
int subdivMesh(void *meshliteContext, int meshId);
int subdivMesh(void *meshliteContext, int meshId, int *errorCount=0);
#endif

View File

@ -183,7 +183,7 @@ void ModelWidget::mousePressEvent(QMouseEvent *event)
if (!m_moveStarted && m_graphicsFunctions && m_graphicsFunctions->mousePress(event))
return;
m_lastPos = event->pos();
if (event->button() == Qt::LeftButton) {
if (event->button() == Qt::MidButton) {
if (!m_moveStarted) {
m_moveStartPos = mapToParent(event->pos());
m_moveStartGeometry = geometry();
@ -209,7 +209,7 @@ void ModelWidget::mouseMoveEvent(QMouseEvent *event)
int dx = event->x() - m_lastPos.x();
int dy = event->y() - m_lastPos.y();
if (event->buttons() & Qt::LeftButton) {
if (event->buttons() & Qt::MidButton) {
if (m_moveStarted) {
QRect rect = m_moveStartGeometry;
QPoint pos = mapToParent(event->pos());

View File

@ -631,7 +631,7 @@ bool SkeletonGraphicsWidget::mousePress(QMouseEvent *event)
return true;
}
} else if (SkeletonDocumentEditMode::Select == m_document->editMode) {
if (m_mouseEventFromSelf) {
//if (m_mouseEventFromSelf) {
bool processed = false;
if ((nullptr == m_hoveredNodeItem || m_rangeSelectionSet.find(m_hoveredNodeItem) == m_rangeSelectionSet.end()) &&
(nullptr == m_hoveredEdgeItem || m_rangeSelectionSet.find(m_hoveredEdgeItem) == m_rangeSelectionSet.end())) {
@ -657,7 +657,7 @@ bool SkeletonGraphicsWidget::mousePress(QMouseEvent *event)
if (processed) {
return true;
}
}
//}
}
}
return false;