1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-12-26 14:45:48 +00:00
Aquaria/BBGE/Interpolator.h

69 lines
1.6 KiB
C++

/*
Copyright (C) 2007, 2010 - Bit-Blot
This file is part of Aquaria.
Aquaria is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _interpolator_
#define _interpolator_
#include "Base.h"
class Interpolator;
class Interpolator
{
public:
Interpolator () : updatee (0), interpolating (false), loopType (0), useSpeed (false), pingPong (false)
{
initialDelay = 0.0f;
timeMultiplier = 1;
timePassed=to=speed=from=timePeriod=fakeTimePassed=0;
}
bool pingPong;
void setUpdatee (float *u);
void interpolateTo (float interTo, float time, int ltype);
void interpolateBySpeed (float interTo, float speed, int ltype);
void update (float dt);
void setSpeed (float speed);
void stop ();
float getX2 ()
{
return (timePassed - timePeriod/2)*(timePassed - timePeriod/2);
}
bool interpolating, useSpeed;
int loopType;
float timePeriod;
float initialDelay;
float to;
float timeMultiplier;
EventPtr endOfInterpolationEvent;
EventPtr startOfInterpolationEvent;
private:
float speed, from, timePassed, fakeTimePassed;
float *updatee;
};
#endif