Lines Matching refs:TNum
30 template <typename TId, typename TNum>
33 TNum left, top, bottom;
37 bool operator<(const StartedRect<TId, TNum> &rhs) const {
43 template <typename TId, typename TNum>
47 TNum x;
48 TNum y;
53 bool operator<(const SweepEvent<TId, TNum> &rhs) const {
58 template <typename TNum>
59 std::ostream &operator<<(std::ostream &os, const Rect<TNum> &rect) {
73 template <typename TNum, typename TId>
74 void separate_rects(const std::vector<Rect<TNum>> &in,
75 std::vector<RectSet<TId, TNum>> *out) {
88 if (in.size() > IdSet<TNum>::max_elements) {
94 std::set<SweepEvent<TId, TNum>> sweep_h_events; // Left or right bounds
95 std::set<SweepEvent<TId, TNum>> sweep_v_events; // Top or bottom bounds
101 std::map<StartedRect<TId, TNum>, bool> started_rects;
105 std::vector<std::pair<TNum, IdSet<TId>>> active_regions;
110 const Rect<TNum> &rect = in[i];
116 SweepEvent<TId, TNum> evt;
128 for (typename std::set<SweepEvent<TId, TNum>>::iterator it =
131 const SweepEvent<TId, TNum> &h_evt = *it;
132 const Rect<TNum> &rect = in[h_evt.rect_id];
137 SweepEvent<TId, TNum> v_evt;
150 typename std::set<SweepEvent<TId, TNum>>::iterator start_it =
157 typename std::set<SweepEvent<TId, TNum>>::iterator end_it =
167 typename std::set<SweepEvent<TId, TNum>>::iterator next_it = it;
187 for (typename std::set<SweepEvent<TId, TNum>>::iterator it =
190 const SweepEvent<TId, TNum> &v_evt = *it;
207 for (std::vector<std::pair<TNum, IdSet>>::iterator it =
218 for (typename std::map<StartedRect<TId, TNum>, bool>::iterator it =
234 for (typename std::vector<std::pair<TNum, IdSet<TId>>>::iterator it =
245 typename std::vector<std::pair<TNum, IdSet<TId>>>::iterator next_it = it;
249 TNum region_top = it->first;
250 TNum region_bottom = next_it->first;
252 StartedRect<TId, TNum> rect_key;
265 typename std::map<StartedRect<TId, TNum>, bool>::iterator
281 for (typename std::map<StartedRect<TId, TNum>, bool>::iterator it =
286 const StartedRect<TId, TNum> &proto_rect = it->first;
287 Rect<TNum> out_rect;
292 out->push_back(RectSet<TId, TNum>(proto_rect.id_set, out_rect));
324 #define RectSet RectSet<TId, TNum>
325 #define Rect Rect<TNum>
328 typedef float TNum;