class CFuncRotator : public CBaseModelEntity
{
public:
CHandle<CBaseEntity> m_hRotatorTarget;
bool m_bIsRotating;
bool m_bIsReversing;
float32 m_flTimeToReachMaxSpeed;
float32 m_flTimeToReachZeroSpeed;
float32 m_flDistanceAlongArcTraveled;
float32 m_flTimeToWaitOscillate;
GameTime_t m_flTimeRotationStart;
Quaternion m_qLSPrevChange;
Quaternion m_qWSPrev;
Quaternion m_qWSInit;
Quaternion m_qLSInit;
Quaternion m_qLSOrientation;
CEntityIOOutput m_OnRotationStarted;
CEntityIOOutput m_OnRotationCompleted;
CEntityIOOutput m_OnOscillate;
CEntityIOOutput m_OnOscillateStartArrive;
CEntityIOOutput m_OnOscillateStartDepart;
CEntityIOOutput m_OnOscillateEndArrive;
CEntityIOOutput m_OnOscillateEndDepart;
bool m_bOscillateDepart;
int32 m_nOscillateCount;
CFuncRotator__Rotate_t m_eRotateType;
CFuncRotator__Rotate_t m_ePrevRotateType;
bool m_bHasTargetOverride;
Quaternion m_qOrientationOverride;
RotatorTargetSpace_t m_eSpaceOverride;
QAngle m_qAngularVelocity;
Vector m_vLookAtForcedUp;
CUtlSymbolLarge m_strRotatorTarget;
bool m_bRecordHistory;
CUtlVector<RotatorHistoryEntry_t> m_vecRotatorHistory;
bool m_bReturningToPreviousOrientation;
CUtlVector<RotatorQueueEntry_t> m_vecRotatorQueue;
CUtlVector<RotatorHistoryEntry_t> m_vecRotatorQueueHistory;
};