void discardXformDB(xformDatabase* xdb, abrAtomListProc delAtomProc, void *deletestuff) { int i = 0; transformData *p = NULL, *next = NULL; goToRec *g = NULL, *nextg = NULL; if (xdb) { for(p = xdb->xforms; p; p = next) { next = p->next; deleteTransformation(p, delAtomProc, deletestuff); } xdb->xforms = NULL; xdb->last = NULL; for(i = 0; i < MAX_XFORM_LEVELS; i++) { xdb->level[i] = NULL; } xdb->nlevs = 0; xdb->nstack = 0; free(xdb->ctmstack[0]); /* all stack elements allocated in a block */ for(g = xdb->golist; g; g = nextg) { nextg = g->next; free(g); } if (xdb->sortedByRes) { free(xdb->sortedByRes); } xdb->sortedByRes = NULL; free(xdb); } }
void PointCloud::toggleRegisterState(void) { registered_ = !registered_; if (registered_) saveTransformation(); else deleteTransformation(); return; }
void PointCloud::setRotation(void) { ParameterDialog parameter_dialog("Rotation Parameters", MainWindow::getInstance()); int view = getView(); DoubleParameter rotation_angle("Rotation Angle", "Rotation Angle", (view<7)?(-view*30):(12-view)*30, -180, 180, 30); parameter_dialog.addParameter(&rotation_angle); if (!parameter_dialog.exec() == QDialog::Accepted) return; double angle = rotation_angle*M_PI/180.0; setMatrix(MainWindow::getInstance()->getRegistrator()->getRotationMatrix(angle)); if (angle == 0.0) deleteTransformation(); return; }