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();
	
	
	
}
Beispiel #3
0
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));
	}
}