small refactoring
This commit is contained in:
19
glscene.cpp
19
glscene.cpp
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user