Gabriel Ozouf
a6db9688cd
[apps/function] Factorize zoom in Function class
...
The new zoom implemented for ContinuousFunction is now factorized inside
Function to benefit the Sequence class. The same things is done to code
added to Graph::GraphController, which is moved into
FunctionGraphController.
This removes the reimplementation of several methods, most notably
computeYRange, as the implementation for function is general enough to
work on sequences.
Change-Id: I9b8211354064f46c3fa3dde3191dcb39d627a1d2
2020-11-04 15:30:53 +01:00
Gabriel Ozouf
8104caea50
[apps/shared] New automatic zoom on curves
...
Initial zoom for displaying curves is computed according to the
following rules :
- For polar and parametric curves, the algorithm has not changed.
Vertical and horizontal ranges are chosen in order to display the
full curve with orthonormal graduations.
- For cartesian curves, the horizontal range is chosen in order to
display all points of interest (roots, extrema, asymptotes...).
The vertical range is fitted to be able to display those points, but
also cuts out points outside of the function's order of magnitude.
Change-Id: Idf8233fc2e6586b85d34c4da152c83e75513d85c
2020-11-04 15:30:53 +01:00
Hugo Saint-Vignes
bd2609bcba
[apps/graph] Remove horizontal margins when panning on some graph calculations
...
Change-Id: I1a28555c5b4f04986b223617ab15110711a74841
2020-11-04 15:07:20 +01:00
Gabriel Ozouf
4007f4d452
[apps] Tweaked panning for better cache alignement
...
Method InteractiveCurveViewRange::panToMakePointVisible now moves the
range of a whole number of pixels when panning horizontally. This allows
the cache of cartesian functions not to be invalidated.
Change-Id: Idb9904fef134dd13458e1f2287b0fe5145e8aec7
2020-11-04 14:45:35 +01:00
Hugo Saint-Vignes
b60c67ff88
[apps] Factorize scrolling speed for long repetition
...
Change-Id: I5fcfaf04e418942664641c4b1cd044cda7f5aebb
2020-11-04 14:45:34 +01:00
Hugo Saint-Vignes
241a217f58
[apps/graph] Add fast scroll for regression and sequence graph views
...
Change-Id: I6b36e929234ec5dc161b0eefb20eb84aa360fe3b
2020-11-04 14:45:34 +01:00
Romain Goyet
84768472bd
Explicit std::min/max template usage
...
This is unfortunately required in several cases:
- Sometimes when we use either float and double (this should be changed)
- Because KDCoordinate is not an int, so any arithmemtic promotes it to
an int
- Because we mix pointer differences and ints
2020-04-14 09:31:02 -04:00
Romain Goyet
950862f8d0
Use std::min and std::max
2020-04-14 09:31:02 -04:00
Léa Saviot
aab8974934
[apps] Memoize five model checksums
2020-03-11 11:43:36 +01:00
Léa Saviot
1434158bee
[apps/graph] Faster curve navigation after some time
...
If the user presses the LEft/Right keys for a long time, the cursor will
move faster.
2020-02-12 15:13:15 +01:00
Émilie Feral
a7285ba1ca
[apps/graph] Implement defaultCursorT for FunctionGraphController
2019-09-02 16:55:39 +02:00
Léa Saviot
c71ef7ff79
[apps/graph] Evaluation methods renaming
2019-08-29 11:07:22 +02:00
Léa Saviot
28a721e96e
[apps] Start fixing apps as cursor has new member variable
2019-08-29 11:07:22 +02:00
Émilie Feral
bcac947b05
[apps/sequence] defaultCursorAbscissa is forced positive
2019-08-08 17:22:01 +02:00
Ruben Dashyan
292493ba36
[apps/*curve_view] Substitute resolution by pixelWidth
2019-07-30 14:15:08 +02:00
Ruben Dashyan
3e992a3560
[apps] Replace app() by textFieldDelegateApp() in TextFieldDelegates
2019-07-19 15:06:25 +02:00
Ruben Dashyan
4111927bae
[apps] Access *DelegateApp() through app()
2019-07-19 15:06:25 +02:00
Romain Goyet
21907fb89a
[apps] Get rid of App casts
2019-07-19 15:06:25 +02:00
Ruben Dashyan
4d4adc5873
[apps/sequence/graph] Replace negative cursor abscissa by 0
2019-05-03 15:54:22 +02:00
Ruben Dashyan
0e1c1a017d
[apps] Implement TextFieldDelegate methods in GraphControllers
2019-05-03 15:54:22 +02:00
Ruben Dashyan
4d640e2916
[apps] XYBannerView: prepare constructor so the class may contain TextField
2019-05-03 15:54:21 +02:00
Ruben Dashyan
f6ceae3b8b
[apps] Factorize SimpleInteractiveCurveView::moveCursorHorizontally
2019-05-03 15:54:21 +02:00
Ruben Dashyan
e7add02912
[apps] Remove FunctionGraphController::cursorView() virtual method
...
It was implemented by the Graph and Sequence GraphController derived
classes and was used
1) in FunctionGraphController::viewWillAppear to set the cursorView
specific to each derived class,
2) in FunctionGraphController::cursor/displayBottomMarginRatio()
methods.
Instead
1) the viewWillAppear method of each derived classes sets its
cursorView itself
2) one may already get the cursorView through curveView().
2019-05-03 15:54:21 +02:00
Émilie Feral
57da4ea618
[shared] Rename classes:
...
ExpressionModelHandle --> ExpressionModel
SingleExpressionModelHandle --> ExpressionModelHandle
StorageFunction --> Function
StorageCartesianFunction --> CartesianFunction
StorageFunctionApp --> FunctionApp
2019-05-03 15:53:20 +02:00
Émilie Feral
cff3d56f22
[sequence] SequenceStore returns Sequence * instead of
...
ExpiringPointer<Sequence>
SequenceStore keep all its Sequences in an array which fix Sequence
addresses
2019-05-03 15:53:20 +02:00
Émilie Feral
2bc2506b60
[apps/sequence] Make controllers inherit from StorageFunction controllers when required
2019-05-03 15:53:20 +02:00
Léa Saviot
869e534b4b
[apps] MAke some InteractiveCurveViewRangeDelegate methods const
2019-01-10 11:42:05 +01:00
Léa Saviot
5d1ef0f3f0
[apps/sequence] Use first ranks when computing graph range
...
Put two sequences u(n+1)=u(n) and v(n+1) = v(n), u(100) = 50, v(50) = 8.
Basic settings computed the x range as [0,10] before, now it is
[50,110].
2019-01-10 11:42:05 +01:00
Léa Saviot
17a9388623
[apps/sequence] Clean GraphController
2019-01-10 11:42:05 +01:00
Léa Saviot
531b555949
[apps/sequence] Fix method that should be virtual pure
...
The following scenaro crashed in DEBUG=1 and did not resize the window
correctly in DEBUG=0.
Got to sequence
u(n)=n
Go to sequence/graph
Remove yAuto
Go to sequence/list
v(n) = cos(n)
remove u(n)
Go to sequence/graph
2019-01-10 11:42:02 +01:00
Émilie Feral
698332c355
[escher] InputTextDelegate and LayoutFieldDelegate don't inherit from
...
InputTextDelegate to avoid diamond inheritance
2018-11-23 12:04:03 +01:00
Émilie Feral
48f890ef93
[poincare] AngleUnit, FormatComplex and PrintFloatMode are now
...
enumeration of Preferences class
2018-07-30 13:48:04 +02:00
Émilie Feral
66d920a280
[shared] Factorize GraphController::initCursorParameters of Graph and
...
Sequence
2018-07-06 14:00:32 +02:00
Émilie Feral
2d580faf51
[solver] Ignore empty equation when resolving systems
2018-06-07 14:46:14 +02:00
Émilie Feral
95f0efaf9f
[apps] Graph/Sequence: the function selected by the cursor has to be
...
save in the Snapshot to avoid weird selection when rebulding the app
2018-01-30 18:53:28 +01:00
Émilie Feral
7ea0dbeb56
[apps] Shared: Move part of the implementation of TermSumController to
...
shared (Integral Graph Controller) and improve bound edition in
TermSumController.
2018-01-30 18:19:27 +01:00
Jacob Young
da1e66e798
Fix #115 by fixing the math.h and cmath includes.
2017-10-13 18:08:15 +02:00
Émilie Feral
eea1928ac9
[apps/sequence][apps/graph] Keep the angle unit version in snapshot
...
Change-Id: Ib907531c78feae6ba8155ae3be3b8fb13fdebea2
2017-08-25 14:02:03 +02:00
Émilie Feral
f0a776a670
[apps] Operations in double when precision required
...
Change-Id: I7168a861a76178f0bf81841e9378f7399f67914a
2017-08-17 09:31:53 +02:00
Émilie Feral
1964d61fdc
[libaxx] add cmath and use cmath instead of math.h when required
...
Change-Id: Id839b17d33c69e2e002f370e553ff35246a1bc90
2017-08-16 09:55:29 +02:00
Émilie Feral
e702c1f61b
[apps/graph][apps/regression][app/sequence] Move model and range
...
versions to the snapshot
Change-Id: I6ec56ab59d734c0c43a5df32462173c611cc68b3
2017-05-18 14:16:41 +02:00
Émilie Feral
6b2ae04a13
[apps/sequence][apps/regression][apps/graph] Move ranges and cursor in
...
snapshot
Change-Id: I3e5a163ae4b3a6860969ef12d939513cffed7710
2017-05-18 14:16:41 +02:00
Émilie Feral
96733dbbdc
[apps] Rule of 5 (3)
...
Change-Id: Ia85b23a09e9debd62b4f3590463a4f16454ef4b7
2017-05-09 14:33:53 +02:00
Émilie Feral
8a9df36a35
[apps/sequence] Cleaner resolution and comments
...
Change-Id: I3e4919f9f76ede2a81a672f21060adda2b98f1bd
2017-04-18 10:52:29 +02:00
Émilie Feral
fe99f740d1
[apps/sequence][apps/graph] Set different graph resolution in sequence
...
and in function graph
Change-Id: I498e77122a425c233ba536bdde24b9288b2c4513
2017-04-14 13:46:21 +02:00
Émilie Feral
2a9084aab6
[apps/sequence] Draw only visible dots when range is too big.
...
Change-Id: I8624fa3063d1787049510f4063f562d900f002c5
2017-04-14 13:46:16 +02:00
Émilie Feral
adc80cd71b
[apps][escher] I18n
...
Change-Id: I4d6f40155a8a182184af9ef2a583d0469196ffd5
2017-03-16 15:12:12 +01:00
Émilie Feral
b36e5dc67c
[escher] Generelize header view controller to button row controller and
...
use it to add two buttons: "tracer" "afficher valeurs"
Change-Id: I8ee9afec9e381de367133e6b3f5ceb738b9790ab
2017-03-07 13:28:26 +01:00
Émilie Feral
d6093a2f18
[apps/sequence] Draw term sum in graph view
...
Change-Id: Ib742dcf4949f87813b25779698b82cb454c7c1e5
2017-03-03 09:38:53 +01:00
Émilie Feral
f57d633c08
[apps/sequence/graph] Improve term sum controller
...
Change-Id: Ic2b81e7f1c608e5a9f4f8c5a8de116433f930042
2017-03-03 09:38:53 +01:00