Checking wether the range that has been computed is suitable is now
done in Poincare::Zoom by SanitizeRange.
Change-Id: Ib7ff73a3beae29996b1a773744021ad85c6ba946
This method, that prevented the graph from panning when moving the
cursor for the first time, caused more problems than it solved.
For instance, the graph for 1/(1-x) was not symmetrical because of it.
Change-Id: Ibb22e38ec0ace6b219c0e42dda481c98b5f717f0
Rework the logic so that :
- an undefined function will be displayed with a clealry defined
null range.
- display both an undefined function and a correct function at the
same time will not affect the correct range.
Change-Id: Ife9dc0d2ace667cab5a6b8826347078fca33e4d5
Method yForCursorFirstMove is supposed to expand the window so that the
first move of the cursor won't cause it to pan. It now filters extreme
values to prevent the original window to be totally squashed, such as
with the drawing of e^x and (x-100)(x+10) at the same time.
Change-Id: Icd6c26b01475a112c4231f293e03ab31d80d5e51
Added a tolerance when checking orthonormality, so that ranges that are
nearly orthonormal will be made orthonormal.
Change-Id: Ie3bf076086561e3ff6374e7daa9dd1a884c52d5a
Restore the permanence of the cursor between accesses to the graph
window.
The cursor used to be reset when the models had been modified. As there
is no longer a system in place to track these modifications, we manually
check if there is a curve beneath the cursor before reseting it.
Change-Id: I6f71fc17744b5bf1ee552c82126bb4a08b823629
The normalized status would not be refreshed after a call to setDefault
triggered by InteractiveCurveViewController::viewWillAppear.
Change-Id: I923ef3ca0585dbcc1f32b992d7dd1f4a3a206532
The method FunctionGraphController::yRangeForCursorFirstMove expands the
Y range to include the values of the first cursor moves on the left and
the right of the center. It has been modified to preserve
orthonormality.
Change-Id: I898ab9721e45e2acde261f8b94b80cab81b39a92
Added a method to Zoom to set a range to a specific ratio. This method
is used by InteractiveCurveViewRange::normalize.
Change-Id: Id3029439294ece02ea19fb6c6de90b9edc85d771
The ability to perform a range search without changing the X range was
only there to accomodate the Yauto feature.
Change-Id: I8c2b61b447fbd3dc1f4e303dff06d1a8d6e7a4f2
Regression's automatic Y range used to rely on the Yauto feature. Since
it has been removed, it is now done in Store::setDefault.
Change-Id: I1b6653bb8ebe0ba99decff05bae29bd5a69a9f6c
The computation of Sequence's graph default Y range used to rely on
Yauto. As this feature does not exist anymore, this work is now done int
Sequence::GraphController::interestingRanges.
Change-Id: Idba8560d5f25d0bf34dd0e1dd98c2af67f427709