Changeset 520 for trunk/src/gfx/mesh_creator.cc
- Timestamp:
- 10/03/16 17:45:46 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/mesh_creator.cc
r503 r520 87 87 } 88 88 89 90 nv::aabb nv::mesh_data_creator::calculate_aabb() 91 { 92 NV_ASSERT_ALWAYS( m_pos_channel, "No position channel found!" ); 93 vec3 minv; 94 vec3 maxv; 95 96 if ( m_pos_channel->size() > 0 ) 97 { 98 minv = *reinterpret_cast<const vec3*>( m_pos_channel->raw_data() + m_pos_offset ); 99 maxv = minv; 100 } 101 102 for ( uint32 c = 0; c < m_pos_channel->size(); ++c ) 103 { 104 vec3 v = *reinterpret_cast<const vec3*>( m_pos_channel->raw_data() + c*m_pos_channel->element_size() + m_pos_offset ); 105 minv = nv::math::min( minv, v ); 106 maxv = nv::math::max( maxv, v ); 107 } 108 vec3 extents = maxv - minv; 109 vec3 hextents = extents * 0.5f; 110 vec3 halfv = minv + hextents; 111 return aabb( nv::transform( halfv ), hextents ); 112 } 89 113 90 114 void nv::mesh_data_creator::transform( const vec3& pos, const mat3& r33, float scale /*= 1.0f */ )
Note: See TracChangeset
for help on using the changeset viewer.