#include "valuedialog.h"

#include <qslider.h>

void ValueDialog::calcCurve() {
	std::valarray<int> curve;
	curve.resize(256);
	
	QPoint p1(beginSlider->value(),0);
	QPoint p2(endSlider->value(),256);
	
	double m = (p1.y() - p2.y()) / (double)(p1.x() - p2.x());
	int b = p1.y() - (int)(round(m * p1.x()));
	
	for (int i = 0; i < 256; ++i) {
		curve[i] = QMIN(255, QMAX(0, int(i * m) + b));
	}
	emit curveChanged(curve);
}

void ValueDialog::showEvent(QShowEvent* ) {
	beginSlider->setValue(0);
	endSlider->setValue(255);
}
