mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-16 21:53:01 +00:00
1
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#if !defined( PARTICLE_COLLISION_H )
|
||||
#define PARTICLE_COLLISION_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "particles_simple.h"
|
||||
#include "particlemgr.h"
|
||||
|
||||
#define MAX_COLLISION_PLANES 6
|
||||
|
||||
//
|
||||
// CBaseSimpleCollision
|
||||
//
|
||||
|
||||
class CBaseSimpleCollision
|
||||
{
|
||||
public:
|
||||
|
||||
CBaseSimpleCollision( void );
|
||||
|
||||
static CBaseSimpleCollision *Create( void ) { return new CBaseSimpleCollision; }
|
||||
|
||||
virtual void Setup( const Vector &origin, float speed, float gravity );
|
||||
virtual void TraceLine( const Vector &start, const Vector &end, trace_t *pTrace, bool coarse = true );
|
||||
|
||||
void ClearActivePlanes( void );
|
||||
|
||||
protected:
|
||||
|
||||
virtual void TestForPlane( const Vector &start, const Vector &dir, float speed, float gravity );
|
||||
virtual void ConsiderPlane( cplane_t *plane );
|
||||
|
||||
VPlane m_collisionPlanes[MAX_COLLISION_PLANES];
|
||||
int m_nActivePlanes;
|
||||
};
|
||||
|
||||
//
|
||||
// CParticleCollision
|
||||
//
|
||||
|
||||
class CParticleCollision : public CBaseSimpleCollision
|
||||
{
|
||||
public:
|
||||
|
||||
CParticleCollision( void );
|
||||
|
||||
static CParticleCollision *Create( void ) { return new CParticleCollision; }
|
||||
|
||||
virtual void Setup( const Vector &origin, const Vector *dir, float angularSpread, float minSpeed, float maxSpeed, float gravity, float dampen );
|
||||
virtual bool MoveParticle( Vector &origin, Vector &velocity, float *rollDelta, float timeDelta, trace_t *pTrace );
|
||||
|
||||
void SetGravity( float gravity ) { m_flGravity = gravity; }
|
||||
void SetCollisionDampen( float dampen ) { m_flCollisionDampen = dampen; }
|
||||
void SetAngularCollisionDampen( float dampen ) { m_flAngularCollisionDampen = dampen;}
|
||||
|
||||
protected:
|
||||
|
||||
float m_flGravity;
|
||||
float m_flCollisionDampen;
|
||||
float m_flAngularCollisionDampen;
|
||||
};
|
||||
|
||||
#endif //PARTICLE_COLLISION_H
|
||||
Reference in New Issue
Block a user