public boolean recalculateVariableDependentValues(final VariableList varList) {
        //coords and projectedcoords are variable-dependent. Let's see whether we have to recalculate
        final boolean hasProjection = hasProjection();
        boolean calcDone = false;
        if (this.isCalculated()) {
            final CalculatedCoordinate cc = getCalculated();
            setPreprojectedCoords(cc.calculateGeopoint(varList::getValue));
            if (!hasProjection) {
                setCoordsPure(getPreprojectedCoords());
            }
            calcDone = true;
        }
        if (hasProjection) {
            setCoordsPure(
                this.getProjectionType().project(
                    getPreprojectedCoords(),
                    safeToDouble(getProjectionFormula1(), varList),
                    safeToDouble(getProjectionFormula2(), varList),
                    getProjectionDistanceUnit()
                ));
            calcDone = true;
        }
        if (!calcDone) {
            setCoordsPure(getPreprojectedCoords());
        }
        return calcDone;
    }
Recalculates all values in this waypoint which are depending on variable list.
Returns whether a recalculation was actually done
main/src/main/java/cgeo/geocaching/models/Waypoint.java