bool FboWarpGrid::operator== (FboWarpGrid& b){ return rows == b.rows && cols == b.cols && compareRect(src, b.src) && compareRect(dst, b.dst) && compareRect(window, b.window) && //width == b.width && height == b.height && //offsetX == b.offsetX && offsetY == b.offsetY && radialAmount == b.radialAmount && radialInverseAmount == b.radialInverseAmount && radialCenterOffsetX == b.radialCenterOffsetX && radialCenterOffsetY == b.radialCenterOffsetY && radialScale == b.radialScale && radialBias == b.radialBias && shift == b.shift && stretchTL ==b.stretchTL && stretchTR == b.stretchTR && stretchBR == b.stretchBR && stretchBL == b.stretchBL && equal(originalGrid.begin(), originalGrid.end(), b.originalGrid.begin()) && equal(targetGrid.begin(), targetGrid.end(), b.targetGrid.begin()) && equal(warpGrid.begin(), warpGrid.end(), b.warpGrid.begin()); }
void FboWarpOutput::update(){ cellWidth = src.width / gridCols; cellHeight = src.height / gridRows; if(autoLoadGrid && !autoLoadedGrid){ doLoadGrid(); editingPoint = 0; autoLoadedGrid = true; loadGrid = false; } if(saveGrid){ doSaveGrid(); saveGrid = false; } if(loadGrid){ doLoadGrid(); editingPoint = 0; loadGrid = false; } if(editingGrid){ if(clearGrid){ grid.setup(window, src, dst, gridCols, gridRows); updateGUIFromGrid(); grid.buildGrids(true, true, true); gridModified(); } if(fullReset){ reset(); updateGUIFromGrid(); } if(grid.rows != gridRows || grid.cols != gridCols){ // ||!FboWarpGrid::compareRect(dst, grid.dst) || !FboWarpGrid::compareRect(src, grid.src) //grid.setup(window, src, dst, gridCols, gridRows); grid.cols = gridCols; grid.rows = gridRows; grid.buildGrids(true, true, true); gridModified(); editingPoint = 0; updateGUIFromGrid(); } if(!compareRect(src, grid.src)){ grid.src = src; grid.buildGrids(true, false, false); redrawBlending(); gridModified(); } if(!compareRect(dst, grid.dst)){ grid.dst = dst; grid.buildGrids(false, true, false); gridModified(); } if(shift != grid.shift || stretchTL != grid.stretchTL || stretchTR != grid.stretchTR || stretchBL != grid.stretchBL || stretchBR != grid.stretchBR){ grid.shift = shift; grid.stretchTL = stretchTL; grid.stretchTR = stretchTR; grid.stretchBL = stretchBL; grid.stretchBR = stretchBR; gridModified(); } if(radialAmount != grid.radialAmount || radialInverseAmount != grid.radialInverseAmount || radialScale != grid.radialScale || radialBias != grid.radialBias || radialOffsetX != grid.radialCenterOffsetX || radialOffsetY != grid.radialCenterOffsetY){ grid.radialAmount = radialAmount; grid.radialInverseAmount = radialInverseAmount; grid.radialScale = radialScale; grid.radialBias = radialBias; grid.radialCenterOffsetX = radialOffsetX; grid.radialCenterOffsetY = radialOffsetY; gridModified(); } fullReset = false; clearGrid = false; } else { updateGUIFromGrid(); fullReset = false; clearGrid = false; } blending.update(); }
void NSettingsTests::testReadWrite() { Tools::NSettings s; int i = 42; QRect rect(400, 300, 3, 44); QString k = "string random"; QPointF p(200.3, 43.1); QList<QRectF> rectList; rectList << QRectF(400.4, 300, 3, 22) << QRectF(555, 1, 3, 0) << QRectF(323, 55, 90, 199); s.setValue("int", i, "comm1"); s.setValue("rect", rect, "comm2"); s.beginGroup("g1"); s.setValue("k", k); s.endGroup(); s.beginGroup("g2"); s.setValue("point", p); s.setValue("recList", Tools::convertListToVariantList<QRectF>(rectList), "List of rect"); s.endGroup(); QDir current; QString file1 = current.absoluteFilePath("file1.txt"); QString file2 = current.absoluteFilePath("file2.txt"); s.writeTo(file1); s.clear(); s.loadFrom(file1); s.writeTo(file2); QFile f1(file1); if (!f1.open(QIODevice::ReadOnly)) QFAIL("Cannot open file 1."); QFile f2(file2); if (!f2.open(QIODevice::ReadOnly)) QFAIL("Cannot open file 1."); QByteArray content1 = f1.readAll(); QByteArray content2 = f2.readAll(); QCOMPARE(content1, content2); QCOMPARE(s.value("int").toInt(), i); QCOMPARE(s.description("int"), QString("comm1")); compareRect(rect, s.value("rect").toRectF()); s.beginGroup("g1"); QCOMPARE(s.value("k").toString(), k); s.endGroup(); s.beginGroup("g2"); QCOMPARE(s.value("point").toPointF(), p); QList<QRectF> outRectList = Tools::convertVariantListToList<QRectF>(s.value("recList").toList()); s.endGroup(); QCOMPARE(outRectList.count(), rectList.count()); for(int j = 0; j < outRectList.count(); ++j) { compareRect(outRectList.value(j), rectList.value(j)); } }