annotate src/aabox.cc @ 76:9785847d52d4
bounding boxes calculation (untested) and automatic camera placement in goatview
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Thu, 08 May 2014 13:43:45 +0300 |
parents |
|
children |
70b7c41a4f17 |
rev |
line source |
nuclear@75
|
1 #include <float.h>
|
nuclear@75
|
2 #include <algorithm>
|
nuclear@75
|
3 #include "aabox.h"
|
nuclear@75
|
4
|
nuclear@75
|
5 using namespace g3dimpl;
|
nuclear@75
|
6
|
nuclear@75
|
7 AABox::AABox()
|
nuclear@75
|
8 : bmin(FLT_MAX, FLT_MAX, FLT_MAX), bmax(-FLT_MAX, -FLT_MAX, -FLT_MAX)
|
nuclear@75
|
9 {
|
nuclear@75
|
10 }
|
nuclear@75
|
11
|
nuclear@75
|
12 AABox::AABox(const Vector3 &b0, const Vector3 &b1)
|
nuclear@75
|
13 : bmin(b0), bmax(b1)
|
nuclear@75
|
14 {
|
nuclear@75
|
15 }
|
nuclear@75
|
16
|
nuclear@75
|
17 AABox g3dimpl::aabox_union(const AABox &a, const AABox &b)
|
nuclear@75
|
18 {
|
nuclear@75
|
19 Vector3 bmin, bmax;
|
nuclear@75
|
20
|
nuclear@75
|
21 for(int i=0; i<3; i++) {
|
nuclear@75
|
22 bmin[i] = std::min(a.bmin[i], b.bmin[i]);
|
nuclear@75
|
23 bmax[i] = std::max(a.bmax[i], b.bmax[i]);
|
nuclear@75
|
24 }
|
nuclear@75
|
25
|
nuclear@75
|
26 return AABox(bmin, bmax);
|
nuclear@75
|
27 }
|