MCPcopy Create free account
hub / github.com/antvis/F2Native / DoMove

Method DoMove

core/graphics/interaction/InteractionContext.cpp:56–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54}
55
56bool interaction::InteractionContext::DoMove(double deltaX, double deltaY) {
57// chart_->GetLogTracer()->trace("DoMove deltaX %lf ", deltaX);
58 // long timestamp = xg::CurrentTimestampAtMM();
59 double ratio = deltaX / this->chart_->GetCoord().GetWidth();
60
61 double rangeStart = range_[0];
62 double rangeEnd = range_[1];
63
64 double rangeLen = rangeEnd - rangeStart;
65 double rangeOffset = rangeLen * ratio;
66
67 double newRangeStart = rangeStart - rangeOffset;
68 double newRangeEnd = rangeEnd - rangeOffset;
69
70 std::array<double, 2> newRange;
71 if(newRangeStart < 0) {
72 newRange = {0, rangeLen};
73 } else if(newRangeEnd > 1) {
74 newRange = {1 - rangeLen, 1};
75 } else {
76 newRange = {newRangeStart, newRangeEnd};
77 }
78 bool ret = this->UpdateRange(newRange);
79 return ret;
80}
81
82bool interaction::InteractionContext::DoZoom(double leftScale, double rightScale, double zoom) {
83 double rangeStart = range_[0];

Callers 1

OnPanMethod · 0.80

Calls 2

UpdateRangeMethod · 0.95
GetWidthMethod · 0.45

Tested by

no test coverage detected