1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #include <nel/misc/types_nl.h>
26 #include <nel/misc/vector.h>
27 #include <nel/misc/time_nl.h>
37 NLMISC::CVector _StartPosition
;
38 NLMISC::CVector _EndPosition
;
40 NLMISC::TLocalTime _StartTime
;
41 NLMISC::TLocalTime _StopTime
;
45 void init(const NLMISC::CVector
&position
, const NLMISC::CVector
&target
, float speed
, NLMISC::TLocalTime startTime
)
47 _StartPosition
= position
;
48 _EndPosition
= target
;
50 _StartTime
= startTime
;
51 _Distance
= (_EndPosition
-_StartPosition
).norm();
52 _StopTime
= (NLMISC::TLocalTime
)(_Distance
/ _Speed
+ _StartTime
);
55 // void compute(const NLMISC::CVector &position, const NLMISC::CVector &target, float speed, NLMISC::TTime startTime);
57 NLMISC::CVector
eval(NLMISC::TLocalTime t
) const;
58 NLMISC::CVector
evalSpeed(NLMISC::TLocalTime t
) const;
60 NLMISC::TLocalTime
getStartTime() const { return _StartTime
; }
61 NLMISC::CVector
getStartPosition() const { return _StartPosition
; }
62 NLMISC::TLocalTime
getStopTime() const { return _StopTime
; }
65 } /* namespace SBCLIENT */
69 /* End of physics.h */