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
Émilie Feral
aaf71328ba
[apps/shared] CurveView: resolve name conflict -
...
drawHorizontalOrVerticalSegment & drawSegment -
2020-04-01 10:18:08 +02:00
Léa Saviot
aab8974934
[apps] Memoize five model checksums
2020-03-11 11:43:36 +01:00
Léa Saviot
97b495a4dc
[apps/interactive_curve_view_range] Orthonormal keep max grid unit
...
When setting the axes then putting on the orthnormalization, 2 * (max of
the two axes units) is put to 1 cm instead of doing 2 units = 1cm. This
roughly keeps the configuration of the window.
2020-02-12 15:13:21 +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
Léa Saviot
4caf9f5197
[coding style] Make some methods const
2019-09-09 20:05:14 +02:00
Léa Saviot
e67160b878
[apps/graph] Faster cursor scrolling on device
...
This commit is quite dirty but works well
2019-09-09 16:56:32 +02:00
Émilie Feral
f38c6ed3d1
[apps/shared] Move sumBetweenBounds from controller (SumGraphController)
...
to the models (Sequence or CartesianFunction) and
CartesianFunction::sumBetweenBounds takes into account the function
domain
2019-09-09 11:42:16 +02:00
Émilie Feral
3998877740
[apps/sequence] CurveViewRange: update the grid unit when change the
...
range
2019-09-06 16:16:26 +02:00
Ruben Dashyan
86768b2eec
[apps/*/go_to_parameter_controller] Remove I18n::Message parameter from constructor
2019-09-05 11:58:51 +02:00
Émilie Feral
45d42287e2
[apps/shared] MemoizedCurveViewRange is composed of two Range1D to
...
factorize setters and getters
2019-09-03 15:34:35 +02:00
Émilie Feral
a7285ba1ca
[apps/graph] Implement defaultCursorT for FunctionGraphController
2019-09-02 16:55:39 +02:00
Ruben Dashyan
5dc429dae5
[apps/*curve_view_range] Use existing method
2019-08-29 15:13:41 +02:00
Ruben Dashyan
cf09961e16
[apps/sequence/graph/curve_view_range] Use existing method
2019-08-29 15:13:41 +02:00
Ruben Dashyan
554175d725
[apps/sequence/graph/curve_view_range] Do not set m_xMin|Max twice
2019-08-29 15:13:41 +02:00
Ruben Dashyan
8957cb9fea
[apps/shared/curve_view_range] Define and use x|yCenter accessors
2019-08-29 15:13:41 +02:00
Ruben Dashyan
e99196b2ea
[apps/interactive_curve_view_range] Clean yAuto
2019-08-29 15:13:41 +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
Ruben Dashyan
43d72e082f
[apps] Move sumBetweenBounds from Shared::Function to Shared::SumGraphController
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
c80baae1e9
[apps/*/curve_view] Remove samplingRatio()
...
The resolution() method is useful to get a horizontal step equivalent to
the width of a pixel. A higher sampling ratio (or resolution) had been
introduced in the following commit.
[apps] In curve view, avoid white vertical lines in integral curves due to pixel rounding
2019-07-30 14:15:08 +02:00
Ruben Dashyan
c22754fa63
[apps/shared/curve_view] Make curveViewRange() method const
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
67f9f79322
[apps] Implement InteractiveCurveViewController::isCursorVisible
...
It was a pure virtual method implemented in derived classes
Shared::FunctionGraphController,
Regression::GraphController.
InteractiveCurveViewRange does not need anymore to hold CurveViewCursor
* m_cursor.
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
Ruben Dashyan
82a0f72d42
[apps/shared] Clean FunctionCurveParameterController constructor
2019-05-03 15:54:21 +02:00
Ruben Dashyan
0d34923dd1
[apps] Graph/Regression/Sequence::BannerView inherit from new Shared::XYBannerView
2019-05-03 15:54:21 +02:00
Ruben Dashyan
236b752f4f
[apps] replace BannerView::textViewAtIndex by subviewAtIndex
2019-05-03 15:54:21 +02:00
Ruben Dashyan
513a4cf852
[apps] BannerView::numberOfSubviews
...
Shared::BannerView::numberOfSubviews made pure virtual.
Define constexpr attributes instead of magic numbers.
Move numberOfSubviews to header file.
2019-05-03 15:54:21 +02:00
Émilie Feral
2651e911d5
[sequence] Fix bug: number of curves in graph is the number of active
...
functions
2019-05-03 15:53:20 +02:00
Émilie Feral
578c65d5dd
[shared] Clean class names containing storage
2019-05-03 15:53:20 +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
bbb10f1993
[ion/kandinsky] Move unicode to ion
2019-05-03 15:53:19 +02:00
Léa Saviot
65e5adafac
Remove Ion::Charset
2019-05-03 15:53:19 +02:00
Léa Saviot
f576e31ff1
[apps/poincare] Replace CharLayouts with CodePointLayouts
2019-05-03 15:53:19 +02:00
Émilie Feral
7b5f3c570d
[poincare] Change the way Expression are built
2019-02-21 11:29:35 +01:00