Public Methods | |
| minbbox_rec (int anP, Ptr< point< T > > &aP, T theta0x, T theta0y, T theta0z) | |
| T | volume (T theta_x, T theta_y, T theta_z) |
Static Public Methods | |
| T | minimize_about_z_cb (T theta, void *data) |
Public Attributes | |
| Ptr< point< T > > | P |
| int | nP |
| T | theta0_x |
| T | theta0_y |
| T | theta0_z |
this can be done much more optimal (by using RAPID's method for calculating oriented bounding boxes)!
Definition at line 353 of file gunu_mba_approximate.cpp.
|
||||||||||||||||||||||||||||
|
Definition at line 362 of file gunu_mba_approximate.cpp.
|
|
||||||||||||||||
|
Definition at line 396 of file gunu_mba_approximate.cpp. References GULAPI.
00397 {
00398 minbbox_rec *m = (minbbox_rec *)data;
00399 return m->volume( (T)0, (T)0, theta );
00400 }
|
|
||||||||||||||||||||
|
Definition at line 367 of file gunu_mba_approximate.cpp.
00368 {
00369 mat4x4<T> m1 = mat4x4<T>::rotate_x(theta0_x + theta_x);
00370 mat4x4<T> m2 = mat4x4<T>::rotate_y(theta0_y + theta_y);
00371 mat4x4<T> m3 = mat4x4<T>::rotate_z(theta0_z + theta_z);
00372 mat4x4<T> m;
00373 m = m1 * m2 * m3;
00374 vec4<T> v,vt;
00375 T minx,maxx,miny,maxy,minz,maxz;
00376
00377 v[0] = P[0].x; v[1] = P[0].y; v[2] = P[0].z; v[3] = 1.0;
00378 vt = v * m;
00379 minx = maxx = vt[0];
00380 miny = maxy = vt[1];
00381 minz = maxz = vt[2];
00382
00383 for( int i = 1; i < nP; i++ )
00384 {
00385 v[0] = P[i].x; v[1] = P[i].y; v[2] = P[i].z; v[3] = 1.0;
00386 vt = v * m;
00387 if( vt[0] < minx ) minx = vt[0];
00388 else if( vt[0] > maxx ) maxx = vt[0];
00389 if( vt[1] < miny ) miny = vt[1];
00390 else if( vt[1] > maxy ) maxy = vt[1];
00391 if( vt[2] < minz ) minz = vt[2];
00392 else if( vt[2] > maxz ) maxz = vt[2];
00393 }
00394 return (maxx-minx)*(maxy-miny)*(maxz-minz); /* volume */
00395 }
|
|
|||||
|
Definition at line 357 of file gunu_mba_approximate.cpp. |
|
|||||
|
Definition at line 356 of file gunu_mba_approximate.cpp. |
|
|||||
|
Definition at line 358 of file gunu_mba_approximate.cpp. |
|
|||||
|
Definition at line 359 of file gunu_mba_approximate.cpp. |
|
|||||
|
Definition at line 360 of file gunu_mba_approximate.cpp. |
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001