Files
eepp/src/physics/cshapecirclesprite.cpp
spartanj@gmail.com aa0347a793 Changed OffSet for Offset.
Disabled debug information by default in the Physics.
2012-01-25 00:53:06 -03:00

56 lines
1.4 KiB
C++

#include "cshapecirclesprite.hpp"
#ifdef PHYSICS_RENDERER_ENABLED
CP_NAMESPACE_BEGIN
cShapeCircleSprite * cShapeCircleSprite::New( cBody * body, cpFloat radius, cVect offset, cSprite * Sprite, bool AutoDeleteSprite ) {
return cpNew( cShapeCircleSprite, ( body, radius, offset, Sprite, AutoDeleteSprite ) );
}
cShapeCircleSprite::cShapeCircleSprite( cBody * body, cpFloat radius, cVect offset, cSprite * Sprite, bool AutoDeleteSprite ) :
cShapeCircle( body, radius, offset ),
mSprite( Sprite ),
mSpriteAutoDelete( AutoDeleteSprite )
{
OffsetSet();
}
cShapeCircleSprite::~cShapeCircleSprite() {
if ( mSpriteAutoDelete )
eeSAFE_DELETE( mSprite );
}
void cShapeCircleSprite::Draw( cSpace * space ) {
cVect Pos = Body()->Pos();
mSprite->Position( Pos.x, Pos.y );
mSprite->Angle( Body()->AngleDeg() );
mSprite->Draw();
}
void cShapeCircleSprite::OffsetSet() {
mSprite->Width( cShapeCircle::Radius() * 2 );
mSprite->Height( cShapeCircle::Radius() * 2 );
mSprite->OffsetX( -cShapeCircle::Radius() + cShapeCircle::Offset().x );
mSprite->OffsetY( -cShapeCircle::Radius() + cShapeCircle::Offset().y );
}
cSprite * cShapeCircleSprite::GetSprite() const {
return mSprite;
}
void cShapeCircleSprite::Radius( const cpFloat& radius ) {
cShapeCircle::Radius( radius );
OffsetSet();
}
void cShapeCircleSprite::Offset( const cVect &offset ) {
cShapeCircle::Offset( offset );
OffsetSet();
}
CP_NAMESPACE_END
#endif