@@ -181,6 +181,25 @@ namespace cuBQL {
181181 const typename AffineSpaceT<L>::vector_t & n)
182182 { return xfmNormal (m.l ,n); }
183183
184+ template <typename T>
185+ box_t <T,3 > xfmBox (const AffineSpaceT<LinearSpace3<vec_t <T,3 >>> &xfm,
186+ const box_t <T,3 > &box)
187+ {
188+ box_t <T,3 > out;
189+ if (in.empty ()) return out;
190+ auto l = in.lower ;
191+ auto u = in.upper ;
192+ out.extend (xfmPoint (xfm,vec_t <T,3 >(l.x ,l.y ,l.z )));
193+ out.extend (xfmPoint (xfm,vec_t <T,3 >(l.x ,l.y ,u.z )));
194+ out.extend (xfmPoint (xfm,vec_t <T,3 >(l.x ,u.y ,l.z )));
195+ out.extend (xfmPoint (xfm,vec_t <T,3 >(l.x ,u.y ,u.z )));
196+ out.extend (xfmPoint (xfm,vec_t <T,3 >(u.x ,l.y ,l.z )));
197+ out.extend (xfmPoint (xfm,vec_t <T,3 >(u.x ,l.y ,u.z )));
198+ out.extend (xfmPoint (xfm,vec_t <T,3 >(u.x ,u.y ,l.z )));
199+ out.extend (xfmPoint (xfm,vec_t <T,3 >(u.x ,u.y ,u.z )));
200+ return out;
201+ }
202+
184203
185204 // //////////////////////////////////////////////////////////////////////////////
186205 // / Comparison Operators
0 commit comments