00001
00011 #include "Cubic_Bounding_Box_Container.h"
00012
00013 ostream& operator<<( ostream &os, const Cubic_Bounding_Box box ) {
00014 os << box.toString();
00015 return os;
00016 }
00017
00018 ostream& operator<<( ostream &os, const Cubic_Bounding_Box_Container box ) {
00019 os << box.toString();
00020 return os;
00021 }
00022
00023 Cubic_Bounding_Box operator&&( const Cubic_Bounding_Box left, const Cubic_Bounding_Box right ) {
00024 return left.unionWith( right );
00025 }
00026
00027 Cubic_Bounding_Box operator||( const Cubic_Bounding_Box left, const Cubic_Bounding_Box right ) {
00028 return left.intersect( right );
00029 }
00030
00031 CubicLowCoorOrdering< 0, Cubic_Bounding_Box > Cubic_Bounding_Box::LCX_ORDERING = CubicLowCoorOrdering< 0, Cubic_Bounding_Box >();
00032 CubicLowCoorOrdering< 1, Cubic_Bounding_Box > Cubic_Bounding_Box::LCY_ORDERING = CubicLowCoorOrdering< 1, Cubic_Bounding_Box >();
00033 CubicLowCoorOrdering< 2, Cubic_Bounding_Box > Cubic_Bounding_Box::LCZ_ORDERING = CubicLowCoorOrdering< 2, Cubic_Bounding_Box >();
00034 DistOrdering< Cubic_Bounding_Box > Cubic_Bounding_Box::DIST_ORDERING = DistOrdering< Cubic_Bounding_Box >();
00035
00036 Ordering< Cubic_Bounding_Box > * Cubic_Bounding_Box::getDefaultOrdering() {
00037 return &DIST_ORDERING;
00038 }
00039
00040 vector< Ordering< Cubic_Bounding_Box > * > Cubic_Bounding_Box::getOrderings() {
00041 vector< Ordering< Cubic_Bounding_Box > * > ret;
00042 ret.push_back( &LCX_ORDERING );
00043 ret.push_back( &LCY_ORDERING );
00044 ret.push_back( &LCZ_ORDERING );
00045
00046 return ret;
00047 }
00048
00049 vector< double > Cubic_Bounding_Box::temp1 = vector< double >( 3 );
00050 vector< double > Cubic_Bounding_Box::temp2 = vector< double >( 3 );