small refactoring

This commit is contained in:
2021-05-31 12:47:46 +03:00
parent 5eaa20202b
commit a9f7408e71
44 changed files with 86 additions and 595 deletions

View File

@@ -106,7 +106,7 @@ void Scene::clear() {
void Scene::objectsCountInternal(int * cnt, ObjectBase * where) {
++(*cnt);
foreach (ObjectBase * i, where->children_)
foreach (ObjectBase * i, where->children())
objectsCountInternal(cnt, i);
}
int Scene::objectsCount(bool all) {
@@ -119,7 +119,7 @@ int Scene::objectsCount(bool all) {
void Scene::removeObjectInternal(ObjectBase * o, ObjectBase * where) {
if (destroying) return;
foreach (ObjectBase * i, where->children_) {
foreach (ObjectBase * i, where->children()) {
if (o == i) {
where->removeChild(i);
setObjectMeshChanged(i);
@@ -250,7 +250,8 @@ void Scene::clearSelection() {
selected_top.clear();
ObjectBaseList ol = root_->children(true);
foreach (ObjectBase * o, ol) {
o->selected_ = o->selected_aim = false;
o->setSelected(false);
o->setAimSelected(false);
}
emitSelectionChanged();
}
@@ -275,9 +276,6 @@ void gatherMeshes(ObjectBase * o, QSet<Mesh*> & ums) {
void Scene::cleanUnused() {
QSet<Mesh*> ums;
gatherMeshes(root_, ums);
/*QMapIterator<int, QMap<Mesh*, ObjectBaseList>> it(geometries_used);
while (it.hasNext())
ums |= it.next().value().keys().toSet();*/
for (int i = 0; i < geometries.size(); ++i) {
if (ums.contains(geometries[i])) continue;
td_geometries << geometries[i];
@@ -344,7 +342,7 @@ void Scene::gatherSelection() {
selected_.clear();
ObjectBaseList ol = root_->children(true);
foreach (ObjectBase * o, ol)
if (o->selected_)
if (o->isSelected())
selected_ << o;
}
@@ -353,7 +351,7 @@ void Scene::attachObject(ObjectBase * o) {
if (!o) return;
o->setScene(this);
if (o->mesh()) { // search suitable mesh in this scene
o->mesh_ = attachMesh(o->mesh());
o->setMesh(attachMesh(o->mesh()));
setObjectMeshChanged(o);
}
if (o->material()) { // search suitable material in this scene
@@ -483,7 +481,6 @@ void Scene::destroy(QOpenGLExtraFunctions * f) {
void Scene::destroyUnused(QOpenGLExtraFunctions * f) {
//if (!td_geometries.isEmpty()) qDebug() << "destroyUnused" << td_geometries.size();
foreach (Mesh * i, td_geometries)
i->destroy(f);
qDeleteAll(td_geometries);
@@ -505,18 +502,14 @@ QDataStream & operator <<(QDataStream & s, const Scene * p) {
cs.add(1, p->name_).add(10, p->geometries).add(11, p->materials)
.add(20, p->root_).add(21, geom_ind).add(22, mat_ind);
s << qCompress(cs.data());
//s << cs.data();
return s;
}
QDataStream & operator >>(QDataStream & s, Scene *& p) {
p = new Scene();
//ChunkStream cs(s);
QByteArray ba;
s >> ba;
ba = qUncompress(ba);
ChunkStream cs(ba);
QVector<short> geom_ind, mat_ind;
while (!cs.atEnd()) {
switch (cs.read()) {