MCPcopy Create free account
hub / github.com/TypesettingTools/Aegisub / IsMouseOver

Method IsMouseOver

src/visual_feature.cpp:38–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36#include "visual_feature.h"
37
38bool VisualDraggableFeature::IsMouseOver(Vector2D mouse_pos) const {
39 if (!pos) return false;
40
41 Vector2D delta = mouse_pos - pos;
42
43 switch (type) {
44 case DRAG_BIG_SQUARE:
45 return fabs(delta.X()) < 6 && fabs(delta.Y()) < 6;
46
47 case DRAG_BIG_CIRCLE:
48 return delta.SquareLen() < 36;
49
50 case DRAG_BIG_TRIANGLE: {
51 if (delta.Y() < -10 || delta.Y() > 6) return false;
52 float dy = delta.Y() - 6;
53 return 16 * delta.X() + 9 * dy < 0 && 16 * delta.X() - 9 * dy > 0;
54 }
55
56 case DRAG_SMALL_SQUARE:
57 return fabs(delta.X()) < 3 && fabs(delta.Y()) < 3;
58
59 case DRAG_SMALL_CIRCLE:
60 return delta.SquareLen() < 9;
61
62 default:
63 return false;
64 }
65}
66
67void VisualDraggableFeature::Draw(OpenGLWrapper const& gl) const {
68 if (!pos) return;

Callers 1

OnMouseEventMethod · 0.80

Calls 3

XMethod · 0.80
YMethod · 0.80
SquareLenMethod · 0.80

Tested by

no test coverage detected