Ignore:
Timestamp:
10/03/16 17:45:46 (9 years ago)
Author:
epyon
Message:
  • ecs updates
  • animation updates
  • ragdoll manager
  • lua has own random engine
  • several minor fixes
  • particle engine/particle group
  • shitload of other stuff
  • bullet world
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gfx/mesh_creator.cc

    r503 r520  
    8787}
    8888
     89
     90nv::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}
    89113
    90114void 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.