17 const std::size_t old_size = regions_.size();
19 regions_.push_back(std::move(
region));
20 a_lo_.push_back(bbox.
a_lo);
21 a_hi_.push_back(bbox.
a_hi);
22 b_min_.push_back(bbox.
b_min);
23 b_max_.push_back(bbox.
b_max);
30 if (regions_.size() > old_size) {
31 regions_.erase(regions_.begin() +
static_cast<std::ptrdiff_t
>(old_size), regions_.end());
33 if (a_lo_.size() > old_size) {
34 a_lo_.erase(a_lo_.begin() +
static_cast<std::ptrdiff_t
>(old_size), a_lo_.end());
36 if (a_hi_.size() > old_size) {
37 a_hi_.erase(a_hi_.begin() +
static_cast<std::ptrdiff_t
>(old_size), a_hi_.end());
39 if (b_min_.size() > old_size) {
40 b_min_.erase(b_min_.begin() +
static_cast<std::ptrdiff_t
>(old_size), b_min_.end());
42 if (b_max_.size() > old_size) {
43 b_max_.erase(b_max_.begin() +
static_cast<std::ptrdiff_t
>(old_size), b_max_.end());
51 const std::size_t n = regions_.size();
52 for (std::size_t i = 0; i < n; ++i) {
58 if (!(a >= a_lo_[i] && a <= a_hi_[i] && b >= b_min_[i] && b <= b_max_[i])) {
62 if (regions_[i].curve_contains(a, b)) {
63 return static_cast<int>(i);
70 std::vector<std::size_t> hits;
71 const std::size_t n = regions_.size();
72 for (std::size_t i = 0; i < n; ++i) {
73 if (!(a >= a_lo_[i] && a <= a_hi_[i] && b >= b_min_[i] && b <= b_max_[i])) {
76 if (regions_[i].curve_contains(a, b)) {