class CSplineConstraint : public CPhysConstraint
{
    uint8 pad_0500[80];
public:
    Vector m_vAnchorOffsetRestore;
    CHandle<CBaseEntity> m_hSplineEntity;
    // MPhysPtr = !!UNKNOWN!!
    IPhysicsBody* m_pSplineBody;
    bool m_bEnableLateralConstraint;
    bool m_bEnableVerticalConstraint;
    bool m_bEnableAngularConstraint;
    bool m_bEnableLimit;
    bool m_bFireEventsOnPath;
    float32 m_flLinearFrequency;
    float32 m_flLinarDampingRatio;
    float32 m_flJointFriction;
    float32 m_flTransitionTime;
private:
    uint8 pad_0580[16];
public:
    // MNotSaved = !!UNKNOWN!!
    VectorWS m_vPreSolveAnchorPos;
    GameTime_t m_StartTransitionTime;
    Vector m_vTangentSpaceAnchorAtTransitionStart;
};