bool GArc::contains(double x, double y) const { if (transformed) { return stanfordcpplib::getPlatform()->gobject_contains(this, x, y); } double rx = frameWidth / 2; double ry = frameHeight / 2; if (floatingPointEqual(rx, 0) || floatingPointEqual(ry, 0)) { return false; } double dx = x - (this->x + rx); double dy = y - (this->y + ry); double r = (dx * dx) / (rx * rx) + (dy * dy) / (ry * ry); if (fillFlag) { if (r > 1.0) return false; } else { double t = ARC_TOLERANCE / ((rx + ry) / 2); if (std::fabs(1.0 - r) > t) return false; } // JL BUGFIX: must scale by ry, rx. return containsAngle(atan2(-dy/ry, dx/rx) * 180 / PI); }
bool operator ==(const Complex& c1, const Complex& c2) { return floatingPointEqual(c1.real(), c2.real()) && floatingPointEqual(c1.imag(), c2.imag()); }
bool operator <(const Complex& c1, const Complex& c2) { return c1.real() < c2.real() || (floatingPointEqual(c1.real(), c2.real()) && c1.imag() < c2.imag()); }