wangrong
2025-03-19 291afb9c81aae1d15d9e3edcea618d0a2e1fc5a6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once
 
#include <tuple>
 
#include "vp_point.h"
#include "vp_size.h"
 
namespace vp_objects {
    // rect in 2-dims coordinate system
    class vp_rect {
    private:
        /* data */
    public:
        vp_rect() = default;
        vp_rect(int x, int y, int width, int height);
        vp_rect(vp_point left_top, vp_size wh);
        ~vp_rect();
 
        int x;
        int y;
        int width;
        int height;
 
        // get center point of the rect
        vp_point center();
 
        // get track point of the rect
        // track point is used to locate the target(represented by the rect)
        vp_point track_point();
 
        // calculate the iou with another rect
        float iou_with(const vp_rect & rect);
 
        // check if the rect contains a point
        bool contains(const vp_point & p);
    };
 
}