Files
Upsilon/apps/graph/graph/extremum_graph_controller.h
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

35 lines
1.4 KiB
C++

#ifndef GRAPH_EXTREMUM_GRAPH_CONTROLLER_H
#define GRAPH_EXTREMUM_GRAPH_CONTROLLER_H
#include "calculation_graph_controller.h"
namespace Graph {
class MinimumGraphController : public CalculationGraphController {
public:
MinimumGraphController(Responder * parentResponder, GraphView * graphView, BannerView * bannerView, Shared::InteractiveCurveViewRange * curveViewRange, Shared::CurveViewCursor * cursor);
const char * title() override;
TELEMETRY_ID("Minimum");
private:
Poincare::Coordinate2D<double> computeNewPointOfInterest(double start, double step, double max, Poincare::Context * context) override;
// Prevent horizontal panning to preserve search interval
float cursorRightMarginRatio() override { return 0.0f; }
float cursorLeftMarginRatio() override { return 0.0f; }
};
class MaximumGraphController : public CalculationGraphController {
public:
MaximumGraphController(Responder * parentResponder, GraphView * graphView, BannerView * bannerView, Shared::InteractiveCurveViewRange * curveViewRange, Shared::CurveViewCursor * cursor);
const char * title() override;
TELEMETRY_ID("Maximum");
private:
Poincare::Coordinate2D<double> computeNewPointOfInterest(double start, double step, double max, Poincare::Context * context) override;
// Prevent horizontal panning to preserve search interval
float cursorRightMarginRatio() override { return 0.0f; }
float cursorLeftMarginRatio() override { return 0.0f; }
};
}
#endif