mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2024-11-22 09:57:21 +01:00
53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
|
/************ (C) Copyright 2003 Valve, L.L.C. All rights reserved. ***********
|
||
|
**
|
||
|
** The copyright to the contents herein is the property of Valve, L.L.C.
|
||
|
** The contents may be used and/or copied only with the written permission of
|
||
|
** Valve, L.L.C., or in accordance with the terms and conditions stipulated in
|
||
|
** the agreement/contract under which the contents have been supplied.
|
||
|
**
|
||
|
*******************************************************************************
|
||
|
**
|
||
|
** Contents:
|
||
|
**
|
||
|
** interpolation.h: Bezier inpolation classes
|
||
|
**
|
||
|
******************************************************************************/
|
||
|
|
||
|
#pragma once
|
||
|
#if !defined(INTERPOLATION_H)
|
||
|
#define INTERPOLATION_H
|
||
|
|
||
|
|
||
|
// interpolation class
|
||
|
class CInterpolation
|
||
|
{
|
||
|
public:
|
||
|
CInterpolation();
|
||
|
virtual ~CInterpolation();
|
||
|
|
||
|
void SetWaypoints( vec3_t *prev, vec3_t start, vec3_t end, vec3_t *next );
|
||
|
void SetViewAngles( vec3_t start, vec3_t end );
|
||
|
void SetFOVs( float start, float end );
|
||
|
void SetSmoothing( bool start, bool end );
|
||
|
|
||
|
// get interpolated point 0 =< t =< 1, 0 = start, 1 = end
|
||
|
void Interpolate( float t, vec3_t &point, vec3_t &angle, float * fov );
|
||
|
|
||
|
protected:
|
||
|
void BezierInterpolatePoint( float t, vec3_t &point );
|
||
|
void InterpolateAngle( float t, vec3_t &angle );
|
||
|
|
||
|
vec3_t m_StartPoint;
|
||
|
vec3_t m_EndPoint;
|
||
|
vec3_t m_StartAngle;
|
||
|
vec3_t m_EndAngle;
|
||
|
vec3_t m_Center;
|
||
|
float m_StartFov;
|
||
|
float m_EndFov;
|
||
|
|
||
|
bool m_SmoothStart;
|
||
|
bool m_SmoothEnd;
|
||
|
};
|
||
|
|
||
|
#endif // INTERPOLATION_H
|