Files
itgmania212121/stepmania/src/ActorScroller.h
T
Chris Danford 69fd514b68 add 3D scrolling to ActorScroller
generalize BGAnimation, BGAnimationLayer to eliminate shared code with ActorFrame
2004-02-01 03:14:37 +00:00

58 lines
1.5 KiB
C++

#ifndef ActorScroller_H
#define ActorScroller_H
/*
-----------------------------------------------------------------------------
Class: ActorScroller
Desc: An ActorFrame that moves its children.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "ActorFrame.h"
class ActorScroller : public ActorFrame
{
public:
ActorScroller();
void Load(
float fScrollSecondsPerItem,
int iNumItemsToDraw,
const RageVector3 &vRotationDegrees,
const RageVector3 &vTranslateTerm0,
const RageVector3 &vTranslateTerm1,
const RageVector3 &vTranslateTerm2 );
virtual void Update( float fDelta );
virtual void DrawPrimitives(); // DOES draw
void SetDestinationItem( int iItem ) { m_fDestinationItem = float(iItem); }
void SetCurrentAndDestinationItem( int iItem ) { m_fCurrentItem = m_fDestinationItem = float(iItem); }
protected:
bool m_bLoaded;
float m_fCurrentItem; // usually between 0 and m_SubActors.size()
float m_fDestinationItem;
float m_fSecondsPerItem;
int m_iNumItemsToDraw;
// Note: Rotation is applied before translation.
// rot = m_vRotationDegrees*itemOffset^1
RageVector3 m_vRotationDegrees;
// trans = m_vTranslateTerm0*itemOffset^0 +
// m_vTranslateTerm1*itemOffset^1 +
// m_vTranslateTerm2*itemOffset^2
RageVector3 m_vTranslateTerm0;
RageVector3 m_vTranslateTerm1;
RageVector3 m_vTranslateTerm2;
};
#endif