29 #ifndef __BoundingBox_H
30 #define __BoundingBox_H 1
48 template<
typename T =
double>
60 typedef typename matrix_node<T>::type matrix_node_type;
74 is_linear( bb.is_linear ),
87 make( matrix_node_type
const& __ptab )
89 typename matrix_node_type::const_iterator2 it = __ptab.begin2();
90 typename matrix_node_type::const_iterator2 en = __ptab.end2();
94 min.resize( __ptab.size1() );
95 max.resize( __ptab.size1() );
97 min = ublas::column( __ptab, 0 );
98 max = ublas::column( __ptab, 0 );
102 typename node_type::iterator itmin = min.begin();
103 typename node_type::iterator itmax = max.begin();
107 typename matrix_node_type::const_iterator1 it1 = it.begin();
109 for (
size_type i = 0; i < P; ++i, ++it1 )
111 min[i] = std::min( min[i], *it1 );
112 max[i] = std::max( max[i], *it1 );
116 std::for_each( it.begin(), it.end(),
117 ( lambda::var( min[i] ) = std::min( lambda::var( min[i] ), lambda::_1 ),
118 lambda::var( max[i] ) = std::max( lambda::var( max[i] ), lambda::_1 ),
119 std::cout <<
"min: " << lambda::var( min ) <<
"\n",
120 std::cout <<
"max: " << lambda::var( max ) <<
"\n" ) );
128 value_type e = ( max[i]-min[i] ) * 0.2;
146 bool isLinear()
const