Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

rsdl_bounding_box.cxx

Go to the documentation of this file.
00001 #include "rsdl_bounding_box.h"
00002 
00003 #include <vcl_cassert.h>
00004 #include <vcl_ostream.h>
00005 
00006 rsdl_bounding_box::rsdl_bounding_box( const rsdl_point& min_point,
00007                                       const rsdl_point& max_point )
00008   : min_point_(min_point), max_point_(max_point)
00009 {
00010   unsigned int Nc = min_point_.num_cartesian();
00011   unsigned int Na = min_point_.num_angular();
00012 
00013   assert( max_point_.num_cartesian() == Nc );
00014   assert( max_point_.num_angular() == Na );
00015 
00016   for ( unsigned int i=0; i<Nc; ++i )
00017     if ( min_point_.cartesian(i) > max_point_.cartesian(i) ) {
00018       double temp = min_point_.cartesian(i);
00019       min_point_.cartesian(i) = max_point_.cartesian(i);
00020       max_point_.cartesian(i) = temp;
00021     }
00022 }
00023 
00024 
00025 rsdl_bounding_box::rsdl_bounding_box( const rsdl_bounding_box& old )
00026   : min_point_(old.min_point_), max_point_(old.max_point_)
00027 {
00028 }
00029 
00030 
00031 rsdl_bounding_box &
00032 rsdl_bounding_box::operator= ( const rsdl_bounding_box& old )
00033 {
00034   min_point_ = old.min_point_;
00035   max_point_ = old.max_point_;
00036   return *this;
00037 }
00038 
00039 
00040 vcl_ostream& operator<< ( vcl_ostream& ostr, const rsdl_bounding_box& box )
00041 {
00042   unsigned int Nc = box.num_cartesian();
00043   unsigned int Na = box.num_angular();
00044 
00045   unsigned int i;
00046   for ( i=0; i<Nc; ++i )
00047     ostr << "Cartesian  " << i << ": [" << box.min_cartesian(i) << "," << box.max_cartesian(i) << "]\n";
00048   for ( i=0; i<Na; ++i )
00049     ostr << "Angular  " << i << ": [" << box.min_angular(i) << "," << box.max_angular(i) << "]\n";
00050   return ostr;
00051 }
00052 
00053 

Generated on Thu Jan 10 14:49:34 2008 for contrib/rpl/rsdl by  doxygen 1.4.4