source: java/client_3D/src/pl/vorg/mowa/core/graphics/BoundingBox.java @ 65

Last change on this file since 65 was 65, checked in by Maciej Komosinski, 13 years ago

added sources of the 3D client for the Framsticks server

File size: 1.4 KB
Line 
1package pl.vorg.mowa.core.graphics;
2
3
4/**
5 * A cube containing an object in 3d space.
6 *
7 * @author vorg
8 */
9public class BoundingBox {
10        private Vec3 min;
11        private Vec3 max;
12       
13        public BoundingBox() {
14                empty();
15        }
16       
17        public Vec3 getMax() {
18                return max;
19        }
20       
21        public void setMax(Vec3 max) {
22                this.max = max;
23        }
24       
25        public Vec3 getMin() {
26                return min;
27        }
28       
29        public void setMin(Vec3 min) {
30                this.min = min;
31        }
32       
33        public Vec3 getSize() {
34                return Vec3.sub(max, min);
35        }
36       
37        public void empty() {
38                min = new Vec3(Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE);
39                max = new Vec3(Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE);
40        }
41       
42        public boolean isEmpty() {
43                return (min.getX() > max.getX()) || (min.getY() > max.getY()) || (min.getZ() > max.getZ());
44        }
45       
46        public void add(float x, float y, float z) {
47                if (x < min.getX()) min.setX(x);
48                if (y < min.getY()) min.setY(y);
49                if (z < min.getZ()) min.setZ(z);
50                if (x > max.getX()) max.setX(x);
51                if (y > max.getY()) max.setY(y);
52                if (z > max.getZ()) max.setZ(z);
53        }
54       
55        public void add(Vec3 v) {
56                add(v.getX(), v.getY(), v.getZ());
57        }
58       
59        public void add(BoundingBox box) {
60                add(box.getMin());
61                add(box.getMax());             
62        }
63       
64        @Override
65        public String toString() {
66                return "BoundingBox : min("+min.getX()+","+min.getY()+","+min.getZ()+") max("+max.getX()+","+max.getY()+","+max.getZ()+")";
67        }       
68}
Note: See TracBrowser for help on using the repository browser.