00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <base/Vector3>
00026
00027 #include <base/consts>
00028 #include <base/Serializer>
00029
00030 using base::Vector3;
00031 using base::array;
00032
00033
00034 Vector3 Vector3::min(const array<Vector3>& vectors)
00035 {
00036 Vector3 minimum(consts::maxReal, consts::maxReal,consts::maxReal);
00037
00038 for(array<Vector3>::size_type i=0; i<vectors.size(); i++) {
00039 const Vector3& vi = vectors[i];
00040
00041 if (vi.x < minimum.x)
00042 minimum.x = vi.x;
00043 if (vi.y < minimum.y)
00044 minimum.y = vi.y;
00045 if (vi.z < minimum.z)
00046 minimum.z = vi.z;
00047 }
00048
00049 return minimum;
00050 }
00051
00052
00053 Vector3 Vector3::max(const array<Vector3>& vectors)
00054 {
00055 Vector3 maximum(consts::minReal, consts::minReal,consts::minReal);
00056
00057 for(array<Vector3>::size_type i=0; i<vectors.size(); i++) {
00058 const Vector3& vi = vectors[i];
00059
00060 if (vi.x > maximum.x)
00061 maximum.x = vi.x;
00062 if (vi.y > maximum.y)
00063 maximum.y = vi.y;
00064 if (vi.z > maximum.z)
00065 maximum.z = vi.z;
00066 }
00067
00068 return maximum;
00069 }
00070
00071 void Vector3::minmax(const array<Vector3>& vectors, Vector3& minimum, Vector3& maximum)
00072 {
00073 minimum = Vector3::min(vectors);
00074 maximum = Vector3::max(vectors);
00075 }
00076
00077
00078
00079 void Vector3::serialize(Serializer& s)
00080 {
00081 s(x,"x"); s(y,"y"); s(z,"z");
00082 }
00083