void le::Body::CreateCircleShape( float Radius, Vector2f Center ) { if ( body != NULL ) { CircleShape* Circle = new CircleShape( Radius, Center ); Circle->SetPropirtes( fDensity, fRestitution, fFriction ); Circle->SetFixture( body->CreateFixture( &Circle->GetFixtureDef() ) ); body->GetFixtureList()->SetFilterData( *Filter ); vCircle.push_back( Circle ); } }
void le::Body::SetSize( Vector2f SizeBody ) { for ( int i = 0; i < vShape.size(); i++ ) { PolygonShape* Shape = vShape[ i ]; body->DestroyFixture( &Shape->GetFixture() ); Shape->SetSize( SizeBody ); Shape->SetFixture( body->CreateFixture( &Shape->GetFixtureDef() ) ); } for ( int i = 0; i < vCircle.size(); i++ ) { CircleShape* Circle = vCircle[ i ]; body->DestroyFixture( &Circle->GetFixture() ); Circle->SetRadius( SizeBody.x/2 ); Circle->SetFixture( body->CreateFixture( &Circle->GetFixtureDef() ) ); } body->GetFixtureList()->SetFilterData( *Filter ); }