[apps] Graph: when setting default range of a function, take

into account the potential periodicity
This commit is contained in:
Émilie Feral
2018-02-13 17:42:52 +01:00
committed by EmilieNumworks
parent 660775903f
commit 05055c387f
6 changed files with 24 additions and 3 deletions

View File

@@ -39,6 +39,19 @@ void GraphController::setDisplayDerivativeInBanner(bool displayDerivative) {
m_displayDerivativeInBanner = displayDerivative;
}
float GraphController::interestingXRange() {
float characteristicRange = 0.0f;
TextFieldDelegateApp * myApp = (TextFieldDelegateApp *)app();
for (int i = 0; i < functionStore()->numberOfActiveFunctions(); i++) {
Function * f = functionStore()->activeFunctionAtIndex(i);
float fRange = f->expression(myApp->localContext())->characteristicXRange(*(myApp->localContext()));
if (!std::isnan(fRange)) {
characteristicRange = fRange > characteristicRange ? fRange : characteristicRange;
}
}
return (characteristicRange > 0.0f ? 1.6f*characteristicRange : 10.0f);
}
void GraphController::selectFunctionWithCursor(int functionIndex) {
FunctionGraphController::selectFunctionWithCursor(functionIndex);
CartesianFunction * f = m_functionStore->activeFunctionAtIndex(indexFunctionSelectedByCursor());