git-svn-id: svn://db.shs.com.ru/libs@631 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-11-26 21:20:59 +00:00
parent 9059a17cd0
commit 5eaf516eae
16 changed files with 615 additions and 411 deletions

View File

@@ -88,23 +88,24 @@ void RendererSelection::fillSelectionsBuffer(bool yes, int size) {
void RendererSelection::renderSelection(Scene & scene) {
QOpenGLShaderProgram * prog = 0;
QGLView * view = r->view;
MouseController & mc(view->mouse);
if (r->bindShader(Renderer::srSelectionFill, &prog)) {
view->hov_objects.clear();
mc.hov_objects.clear();
id_hover = 0;
if (fbo_selection.queriedPoints() > 0) {
if (fbo_selection.queriedPoints() == 1) {
id_hover = fbo_selection.getPoint();
view->hov_objects.resize(1);
view->hov_objects[0] = ids.value(id_hover);
mc.hov_objects.resize(1);
mc.hov_objects[0] = ids.value(id_hover);
//qDebug() << id_hover;
} else {
QVector<uint> points = fbo_selection.getPoints();
QSet<uint> ids_hover;
foreach (uint i, points)
ids_hover << i;
view->hov_objects.clear();
mc.hov_objects.clear();
foreach (uint i, ids_hover)
view->hov_objects << ids.value(i);
mc.hov_objects << ids.value(i);
//qDebug() << ids_hover;
}
}
@@ -125,15 +126,7 @@ void RendererSelection::renderSelection(Scene & scene) {
rs.omni_mesh->loadSelections(view, cur_selections_);
rs.omni_mesh->draw(view, rs.cur_objects.size());
if (rs.fillCurrentHandleObjects()) {
Mesh * hm = rs.currentHandleMesh();
if (hm) {
hm->loadObjects(view, rs.cur_objects);
fillSelectionsBuffer(false, 3);
hm->loadSelections(view, cur_selections_);
hm->draw(view, 3);
}
}
rs.drawCurrentHandleObjects();
//mouse_rect = fbo_selection.rect();
if (r->mouse_rect.isNull())