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/debug_draw.cc

    r509 r520  
    101101}
    102102
     103void nv::debug_data::push_wire_capsule( const transform& tr, float radius, float height )
     104{
     105        vec3 p = tr.get_position();
     106        quat o = tr.get_orientation();
     107        vec3 dir   = o * vec3( 0, 1, 0 );
     108        vec3 ldir  = o * vec3( 1, 0, 0 );
     109        vec3 h1dir = o * normalize( vec3( 1, -1, 0 ) );
     110        vec3 h2dir = o * normalize( vec3( 1, 1, 0 ) );
     111        vec3 sp1[12];
     112        vec3 sp2[12];
     113        vec3 hsp1[12];
     114        vec3 hsp2[12];
     115        for ( uint32 i = 0; i < 12; ++i )
     116        {
     117                sp1[i]  = nv::math::rotate( ldir * radius, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir );
     118                hsp1[i] = nv::math::rotate( h1dir * radius, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir );
     119        }
     120        for ( uint32 i = 0; i < 12; ++i )
     121        {
     122                sp2[i]  = nv::math::rotate( ldir * radius + height * dir, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir );
     123                hsp2[i] = nv::math::rotate( h2dir * radius + height * dir, ( float( i ) / 12.0f ) * math::two_pi<float>(), dir );
     124        }
     125
     126        for ( uint32 i = 0; i < 12; ++i )
     127        {
     128                push_line( p + sp1[i], p + sp1[( i + 1 ) % 12], vec3( 1.0f, 0.0f, 0.0f ) );
     129                push_line( p + sp2[i], p + sp2[( i + 1 ) % 12], vec3( 0.0f, 1.0f, 0.0f ) );
     130                push_line( p + sp1[i], p + sp2[i], vec3( 0.0f, 0.0f, 1.0f ) );
     131
     132                push_line( p + hsp1[i], p + sp1[i], vec3( 0.0f, 0.0f, 1.0f ) );
     133                push_line( p + hsp1[i], p + hsp1[( i + 1 ) % 12], vec3( 1.0f, 0.0f, 0.0f ) );
     134                push_line( p + hsp2[i], p + sp2[i], vec3( 0.0f, 0.0f, 1.0f ) );
     135                push_line( p + hsp2[i], p + hsp2[( i + 1 ) % 12], vec3( 0.0f, 1.0f, 0.0f ) );
     136
     137                push_line( p + hsp1[i], p - radius * dir, vec3( 0.0f, 0.0f, 1.0f ) );
     138                push_line( p + hsp2[i], p + ( height + radius ) * dir, vec3( 0.0f, 0.0f, 1.0f ) );
     139
     140        }
     141
     142               
     143}
     144
     145
    103146nv::debug_data::~debug_data()
    104147{
Note: See TracChangeset for help on using the changeset viewer.