コード例 #1
0
 /** Transforms an AABB by the given matrix and returns it into the \p out parameter. */
 void transformed(AABB& out, const mat4& mat) const 
 {
   out.setNull();
   if ( !isNull() )
   {
     out.addPoint( mat * vec3(minCorner().x(), minCorner().y(), minCorner().z()) );
     out.addPoint( mat * vec3(minCorner().x(), maxCorner().y(), minCorner().z()) );
     out.addPoint( mat * vec3(maxCorner().x(), maxCorner().y(), minCorner().z()) );
     out.addPoint( mat * vec3(maxCorner().x(), minCorner().y(), minCorner().z()) );
     out.addPoint( mat * vec3(minCorner().x(), minCorner().y(), maxCorner().z()) );
     out.addPoint( mat * vec3(minCorner().x(), maxCorner().y(), maxCorner().z()) );
     out.addPoint( mat * vec3(maxCorner().x(), maxCorner().y(), maxCorner().z()) );
     out.addPoint( mat * vec3(maxCorner().x(), minCorner().y(), maxCorner().z()) );
   }
 }
コード例 #2
0
ファイル: AABB.hpp プロジェクト: cody82/simquadcopter
 void transformed(AABB& aabb, const mat4d& mat) const 
 {
   aabb.setEmpty();
   if ( !isEmpty() )
   {
     aabb.addPoint( mat * vec3d(minCorner().x(), minCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), maxCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), maxCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), minCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), minCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), maxCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), maxCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), minCorner().y(), maxCorner().z()) );
   }
 }
コード例 #3
0
ファイル: kd_tree.cpp プロジェクト: buffer8848/kick
 AABB KDTreeNodeRef::getAABB() const {
     AABB res;
     for (int i=0;i<3;i++){
         res.addPoint(triangle[i]);
     }
     return res;
 }
コード例 #4
0
ファイル: AABB.hpp プロジェクト: cody82/simquadcopter
 AABB transformed(const mat4d& mat) const 
 {
   AABB aabb;
   if ( !isEmpty() )
   {
     aabb.addPoint( mat * vec3d(minCorner().x(), minCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), maxCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), maxCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), minCorner().y(), minCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), minCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(minCorner().x(), maxCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), maxCorner().y(), maxCorner().z()) );
     aabb.addPoint( mat * vec3d(maxCorner().x(), minCorner().y(), maxCorner().z()) );
   }
   return aabb;
 }