diff --git a/qglview/globject.cpp b/qglview/globject.cpp index a49bdf8..5776e07 100644 --- a/qglview/globject.cpp +++ b/qglview/globject.cpp @@ -529,6 +529,7 @@ QDataStream & operator >>(QDataStream & s, GLObjectBase *& p) { int ccnt = 0; Light * l = nullptr; Camera * c = nullptr; + QVector3D cam_angles; //qDebug() << "read obj ..."; while (!cs.atEnd()) { switch (cs.read()) { @@ -554,7 +555,13 @@ QDataStream & operator >>(QDataStream & s, GLObjectBase *& p) { case 9: if (p) p->render_mode = (GLObjectBase::RenderMode)cs.getData(); break; case 10: if (p) p->material_ = cs.getData(); break; case 11: if (p) p->pos_ = cs.getData(); break; - case 12: if (p) p->angles_ = cs.getData(); break; + case 12: + if (p) p->angles_ = cs.getData(); + if (c) { + c->setAngles(cs.getData()); + cam_angles = c->angles(); + } + break; case 13: if (p) p->scale_ = cs.getData(); break; case 14: if (p) p->mat_ = cs.getData(); break; case 15: if (p) p->vbo = cs.getData(); break; @@ -581,6 +588,7 @@ QDataStream & operator >>(QDataStream & s, GLObjectBase *& p) { case 207: if (c) c->mirror_y = cs.getData(); break; } } + if (c) c->setAngles(cam_angles); //qDebug() << p->name() << ccnt; for (int i = 0; i < ccnt; ++i) { GLObjectBase * c = nullptr;