forked from lluisgomez/text_extraction
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmin_bounding_box.cpp
More file actions
36 lines (32 loc) · 884 Bytes
/
min_bounding_box.cpp
File metadata and controls
36 lines (32 loc) · 884 Bytes
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
#include "min_bounding_box.h"
Minibox::Minibox()
{
initialized = false;
}
void Minibox::check_in (vector<float> *p)
{
if(!initialized) for (int i=0; i<p->size(); i++)
{
edge_begin.push_back(p->at(i));
edge_end.push_back(p->at(i)+0.00000000000000001);
initialized = true;
}
else for (int i=0; i<p->size(); i++)
{
edge_begin.at(i) = min(p->at(i),edge_begin.at(i));
edge_end.at(i) = max(p->at(i),edge_end.at(i));
//fprintf(stderr," edge_begin[%d] = %e\n",i,edge_begin[i]);
//fprintf(stderr," edge_end[%d] = %e\n",i,edge_end[i]);
}
}
long double Minibox::volume ()
{
long double volume = 1;
for (int i=0; i<edge_begin.size(); i++)
{
volume = volume * (edge_end.at(i) - edge_begin.at(i));
//fprintf(stderr," partial volume = %Le \n",volume);
}
//fprintf(stderr," --------- final volume = %Le \n",volume);
return (volume);
}