void PlotPoincare::setData(ECGHRV2 &data)
{
	gsl_vector_int *px = data.GetPoincare_x()->signal;
	gsl_vector_int *py = data.GetPoincare_y()->signal;
	double x = data.GetTriple_index_x();
	double y = data.GetTriple_index_y();
	double s1 = data.SD1;
	double s2 = data.SD2;
	int size = int(px->size); // == py.size
	QVector<QPointF> points;
	for (int i = 0; i < size; ++i)
	{
		points.push_back(QPointF(float(px->data[i*px->stride]), float(py->data[i*py->stride])));
	}
	rr->setSamples(points);
	QVector<QPointF> l1;
	l1.push_back(QPointF(x,y));
	l1.push_back(QPointF(x-s1,y+s1));
	QVector<QPointF> l2;
	l2.push_back(QPointF(x,y));
	l2.push_back(QPointF(x+s2,y+s2));
	sd1->setSamples(l1);
	sd1->setSamples(l2);
	replot();
}
void PlotHRVTriangle::setData(ECGHRV2 &data)
{
	gsl_vector_int *hx = data.GetHistogram_x()->signal;
	gsl_vector_int *hy = data.GetHistogram_y()->signal;
	double x = data.GetTriple_index_x();
	double y = data.GetTriple_index_y();
	double n = 200.0;
	double m = 800.0;
	int size = int(hx->size); // == hy.size
	
	QVector<QPointF> peaks;
	for (int i = 0; i < size; ++i)
	{
		peaks.push_back(QPointF(float(hx->data[i*hx->stride]), float(hy->data[i*hy->stride])));
	}
	rr->setSamples(peaks);
	
	QVector<QPointF> vxn;
	vxn.push_back(QPointF(x, y));
	vxn.push_back(QPointF(n, 0.0));
	QVector<QPointF> vxm;
	vxm.push_back(QPointF(x, y));
	vxm.push_back(QPointF(m, 0.0));
	xn->setSamples(vxn);
	xm->setSamples(vxm);
    mx->setValue(x, y);
    my->setValue(m, y);
    mn->setValue(n, 0.0);
    mm->setValue(m, 0.0);
	replot();
}