Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef PHYSICS_SHADOW_H
#define PHYSICS_SHADOW_H
#pragma once
class CPhysicsObject; class IPhysicsShadowController; class IPhysicsPlayerController;
extern IPhysicsShadowController *CreateShadowController( CPhysicsObject *pObject, bool allowTranslation, bool allowRotation ); extern IPhysicsPlayerController *CreatePlayerController( CPhysicsObject *pObject ); extern void DestroyPlayerController( IPhysicsPlayerController *pController );
extern void ComputeController( IVP_U_Float_Point ¤tSpeed, const IVP_U_Float_Point &delta, const IVP_U_Float_Point &maxSpeed, float scaleDelta, float damping );
#include "ivp_physics.hxx"
struct shadowcontrol_params_t { shadowcontrol_params_t() { lastPosition.set_to_zero(); lastImpulse.set_to_zero(); }
IVP_U_Point targetPosition; IVP_U_Quat targetRotation; IVP_U_Point lastPosition; // estimate for where the object should be, used to compute error for teleport
IVP_U_Float_Point lastImpulse; // Impulse applied last frame
float maxAngular; float maxDampAngular; float maxSpeed; float maxDampSpeed; float dampFactor; float teleportDistance; };
float ComputeShadowControllerHL( CPhysicsObject *pObject, const hlshadowcontrol_params_t ¶ms, float secondsToArrival, float dt ); float ComputeShadowControllerIVP( IVP_Real_Object *pivp, shadowcontrol_params_t ¶ms, float secondsToArrival, float dt );
#endif // PHYSICS_SHADOW_H
|