SetPosition

This commit is contained in:
Glenn Maynard
2007-03-26 22:54:21 +00:00
parent 2663f35be8
commit 6e7b44522e
2 changed files with 9 additions and 0 deletions
+8
View File
@@ -564,6 +564,12 @@ void Model::PlayAnimation( const RString &sAniName, float fPlayRate )
UpdateTempGeometry();
}
void Model::SetPosition( float fSeconds )
{
m_fCurFrame = FRAMES_PER_SECOND * fSeconds;
m_fCurFrame = clamp( m_fCurFrame, 0, (float) m_pCurAnimation->nTotalFrames );
}
void Model::AdvanceFrame( float fDeltaTime )
{
if( m_pGeometry == NULL ||
@@ -777,6 +783,7 @@ bool Model::MaterialsNeedNormals() const
class LunaModel: public Luna<Model>
{
public:
static int position( T* p, lua_State *L ) { p->SetPosition( FArg(1) ); return 0; }
static int playanimation( T* p, lua_State *L ) { p->PlayAnimation(SArg(1),FArg(2)); return 0; }
static int SetDefaultAnimation( T* p, lua_State *L ) { p->SetDefaultAnimation(SArg(1),FArg(2)); return 0; }
static int loop( T* p, lua_State *L ) { p->SetLoop(BArg(1)); return 0; }
@@ -784,6 +791,7 @@ public:
LunaModel()
{
ADD_METHOD( position );
ADD_METHOD( playanimation );
ADD_METHOD( SetDefaultAnimation );
ADD_METHOD( loop );
+1
View File
@@ -32,6 +32,7 @@ public:
void PlayAnimation( const RString &sAniName, float fPlayRate = 1 );
void SetRate( float fRate ) { m_fCurAnimationRate = fRate; }
void SetLoop( bool b ) { m_bLoop = b; }
void SetPosition( float fSeconds );
virtual void Update( float fDelta );
virtual bool EarlyAbortDraw() const;