void CFourVector::set(double ct_, double x_, double y_, double z_) {
	ct=ct_;
	x=x_;
	y=y_;
	z=z_;
	calcInterval();
};
void IntervalSummaryWindow::intervalSelected()
{
    // if no ride available don't bother - just reset for color changes
    if (context->currentRideItem() == NULL || context->currentRide() == NULL) {
        // no ride just update the colors
	    QString html = GCColor::css();
        html += "<body></body>";
	    setHtml(html);
	    return;
    }

	QString html = GCColor::css();
    html += "<body>";
    if (context->athlete->allIntervalItems() != NULL) {
        for (int i=0; i<context->athlete->allIntervalItems()->childCount(); i++) {
            IntervalItem *current = dynamic_cast<IntervalItem*>(context->athlete->allIntervalItems()->child(i));
            if (current != NULL) {
                if (current->isSelected()) {
                    calcInterval(current, html);
                }
            }
        }
    }
    if (html == GCColor::css()+"<body>") {
    	html += "<i>" + tr("select an interval for summary info") + "</i>";
    }

    html += "</body>";
	setHtml(html);
	return;
}
void
IntervalSummaryWindow::intervalHover(RideFileInterval x)
{
    // if we're not visible don't bother
    if (!isVisible()) return;

    // we already have summries!
    if (context->athlete->intervalWidget->selectedItems().count()) return;

    QString html = GCColor::css();
    html += "<body>";

    if (x == RideFileInterval()) {
    	html += "<i>" + tr("select an interval for summary info") + "</i>";
    } else {
        calcInterval(x, html);
    }
    html += "</body>";
    setHtml(html);
    return;
}
void IntervalSummaryWindow::intervalSelected()
{
    // if no ride available don't bother
    if (mainWindow->currentRideItem() == NULL || mainWindow->currentRide() == NULL) return;

	QString html;
    if (mainWindow->allIntervalItems() != NULL) {
        for (int i=0; i<mainWindow->allIntervalItems()->childCount(); i++) {
            IntervalItem *current = dynamic_cast<IntervalItem*>(mainWindow->allIntervalItems()->child(i));
            if (current != NULL) {
                if (current->isSelected()) {
                    calcInterval(current, html);
                }
            }
        }
    }
    if (html.length() == 0)
    	html = "<i>" + tr("select an interval for summary info") + "</i>";

	setHtml(html);
	return;
}
void CFourVector::set_z(double z_){ z=z_; calcInterval(); };
void CFourVector::set_y(double y_){ y=y_; calcInterval(); };
void CFourVector::set_x(double x_)  { x=x_; calcInterval(); };
void CFourVector::set_ct(double ct_) { ct=ct_; calcInterval(); };
CFourVector::~CFourVector(){
	calcInterval();
}
CFourVector::CFourVector(double ct_, double x_, double y_, double z_)
	: ct(ct_), x(x_), y(y_), z(z_)
{
	calcInterval();
}