struct ISkeletonPhysics { };
ICryAnimation.h
virtual ~ISkeletonPhysics();
virtual bool AddImpact(int partid, Vec3 point, Vec3 impact) = 0;
virtual bool BlendFromRagdoll(QuatTS& location, IPhysicalEntity*& pPhysicalEntity, bool b3dof) = 0;
virtual void BuildPhysicalEntity(IPhysicalEntity * pent, f32 mass, int surface_idx, f32 stiffness_scale = 1.0f, int nLod = 0, int partid0 = 0, const Matrix34& mtxloc = Matrix34(IDENTITY)) = 0;
virtual int CreateAuxilaryPhysics(IPhysicalEntity * pHost, const Matrix34 & mtx, int nLod = 0) = 0;
virtual IPhysicalEntity* CreateCharacterPhysics(IPhysicalEntity * pHost, f32 mass, int surface_idx, f32 stiffness_scale, int nLod = 0, const Matrix34& mtxloc = Matrix34(IDENTITY)) = 0;
virtual void DestroyCharacterPhysics(int iMode = 0) = 0;
virtual int GetAuxPhysicsBoneId(int iAuxPhys, int iBone = 0) = 0;
virtual int getBonePhysParentOrSelfIndex(int nBoneIndex, int nLod = 0) = 0;
virtual int GetBoneSurfaceTypeId(int nBoneIndex, int nLod = 0) = 0;
virtual IPhysicalEntity * GetCharacterPhysics() const = 0;
virtual IPhysicalEntity * GetCharacterPhysics(const char * pRootBoneName) = 0;
virtual IPhysicalEntity * GetCharacterPhysics(int iAuxPhys) = 0;
virtual int GetFallingDir() = 0;
virtual DynArrayGetJointPhysProperties_ROPE(uint32 jointIndex, int nLod) const = 0;
virtual IPhysicalEntity * GetPhysEntOnJoint(int32 nId) = 0;
virtual int GetPhysIdOnJoint(int32 nId) = 0;
virtual IPhysicalEntity* RelinquishCharacterPhysics(const Matrix34 & mtx, f32 stiffness = 0.0f, bool bCopyJointVelocities = false, const Vec3 & velHost = Vec3(ZERO)) = 0;
virtual void SetCharacterPhysics(IPhysicalEntity * pent) = 0;
virtual bool SetJointPhysProperties_ROPE(uint32 jointIndex, int nLod, const DynArray& props) = 0;
virtual void SetPhysEntOnJoint(int32 nId, IPhysicalEntity * pPhysEnt) = 0;
virtual void SynchronizeWithPhysicalEntity(IPhysicalEntity * pent, const Vec3& posMaster = Vec3(ZERO), const Quat& qMaster = Quat(1,0,0,0)) = 0;
virtual int TranslatePartIdToDeadBody(int partid) = 0;