62 lines
1.0 KiB
C++
62 lines
1.0 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef __NPHYSICWHEEL__
|
|
#define __NPHYSICWHEEL__
|
|
|
|
|
|
#include "math/matrix4.h"
|
|
#include "memory/nshared_ptr.h"
|
|
#include "container/nlist.h"
|
|
|
|
|
|
namespace GS {
|
|
namespace NML { class Tag; }
|
|
namespace S3D {
|
|
|
|
/*!
|
|
@short Abstract physic wheel for the physic vehicle model.
|
|
@author Emmanuel Julien (ejulien@gsworks.fr)
|
|
*/
|
|
struct PhysicWheel
|
|
{
|
|
/*!
|
|
@name Wheel section.
|
|
@{
|
|
*/
|
|
float friction, radius;
|
|
/*!
|
|
@}
|
|
@name Suspension section.
|
|
@{
|
|
*/
|
|
Matrix4 ref_matrix; ///< Suspension origin in vehicle body space.
|
|
|
|
float rest_length,
|
|
max_compression,
|
|
stiffness,
|
|
damping;
|
|
/// @}
|
|
|
|
/*!
|
|
@name Serialization.
|
|
@{
|
|
*/
|
|
bool FromMetaTag(NML::Tag &tag);
|
|
NML::Tag *AsMetaTag() const;
|
|
/// @}
|
|
|
|
PhysicWheel();
|
|
};
|
|
|
|
typedef List <PhysicWheel *> PhysicWheelList;
|
|
|
|
} // S3D
|
|
} // GS
|
|
|
|
|
|
#endif // __NPHYSICWHEEL__
|