version 1.2.1

spot light without shadows and with texture fix
mesh information
points width and points-only meshes support
This commit is contained in:
2023-05-25 15:50:07 +03:00
parent 85bc739987
commit dfc4c718e8
15 changed files with 180 additions and 56 deletions

View File

@@ -19,11 +19,13 @@
#include "scene_tree.h"
#include "glcamera.h"
#include "glmesh.h"
#include "qglview.h"
#include "ui_scene_tree.h"
#include <QAction>
#include <QEvent>
#include <QMessageBox>
#include <QScrollBar>
#include <QTreeWidget>
#include <qad_types.h>
@@ -110,9 +112,9 @@ QList<QAction *> SceneTree::actionsAdd() {
QList<QAction *> SceneTree::actionsSelection() {
QList<QAction *> ret;
ret << ui->actionFocus << newSeparator() << ui->actionGroup << ui->actionClone << newSeparator() << ui->actionSelect_parent
<< ui->actionSelect_by_mesh << ui->actionSelect_by_material << newSeparator() << ui->actionMove_to_parent
<< ui->actionTransfer_transform_to_children << newSeparator() << ui->actionActive_camera << ui->actionDefault_camera
<< newSeparator() << ui->actionRemove;
<< ui->actionSelect_by_mesh << ui->actionSelect_by_material << newSeparator() << ui->actionMesh_info << newSeparator()
<< ui->actionMove_to_parent << ui->actionTransfer_transform_to_children << newSeparator() << ui->actionActive_camera
<< ui->actionDefault_camera << newSeparator() << ui->actionRemove;
return ret;
}
@@ -310,6 +312,7 @@ void SceneTree::checkActions() {
ui->actionSelect_parent->setEnabled(has_1);
ui->actionSelect_by_mesh->setEnabled(has_mesh);
ui->actionSelect_by_material->setEnabled(has_mesh);
ui->actionMesh_info->setEnabled(has_mesh);
ui->actionActive_camera->setEnabled(has_cam);
ui->actionDefault_camera->setEnabled(!is_def_cam);
}
@@ -507,6 +510,31 @@ void SceneTree::on_actionSelect_by_material_triggered() {
}
void SceneTree::on_actionMesh_info_triggered() {
if (!view) return;
ObjectBaseList sol = view->scene()->selectedObjects(true);
for (auto o: sol) {
if (o->mesh()) {
auto m = o->mesh();
int objects = 0;
ObjectBaseList aol = view->scene()->objects(true);
for (auto i: aol)
if (i->mesh() == m) ++objects;
auto bb = o->mesh()->boundingBox();
QString info;
QTextStream ts(&info);
ts << "Vertices: " << m->verticesCount() << "\n";
ts << "Triangles: " << m->trianglesCount() << "\n";
ts << "Bounding box: " << bb.length << "x" << bb.width << "x" << bb.height << "\n";
ts << "Objects with this mesh: " << objects << "\n";
QMessageBox::information(nullptr, tr("Mesh info"), info);
break;
}
}
}
void SceneTree::removeObjects() {
if (!view) return;
QAD::CursorOverrider curov;