// CFTTPhysics - [2020-04-13 11:57:46]
#ifndef _CFTTPHYSICS_H_
#define _CFTTPHYSICS_H_

#include "common.h"
#include "CFTTPPrimitive.h"
#include "CFTTPObject.h"
/*
0016A558 CFTTPhysics::CFTTPhysics(uchar)
0016CFEC CFTTPhysics::GJK(CFTTPPrimitive const*,CFTTPPrimitive const*,fpoint3<PointType_18> &,fpoint3<PointType_18> &,int &,fpoint3<26u>)
0016CC54 CFTTPhysics::GJKSub(fpoint3<PointType_26> *,bool *,fpoint<26u> *,fpoint<26u>(*)[4])
0016AA88 CFTTPhysics::Process()
0016BE4E CFTTPhysics::~CFTTPhysics()
*/
struct Unk_64
{
  CFTTPPrimitive *pprimitive_0;
  CFTTPPrimitive *pprimitive_4;
  fpoint3<PointType_26> fpoint3_8;
  int field_14;
  int field_18;
  int field_1c;
  int field_20;
  int field_24;
  int field_28;
  int field_2c;
  int field_30;
  int field_34;
  fpoint3<PointType_18> fpoint3_38;
  fpoint3<PointType_18> fpoint3_44;

  int field_50;
  int field_54;
  int field_58;
  int field_5c;
  Unk_64 *field_60;
  
};

struct Unk_6C
{
  CFTTPObject * pobject_0;
  CFTTPObject * pobject_4;
  fpoint3<PointType_18> fpoint3_8;
  fpoint3<PointType_18> fpoint3_14;
  fpoint3<PointType_18> fpoint3_20;
  fpoint3<PointType_18> fpoint3_2C;
  fpoint3<PointType_18> fpoint3_38;

  int field_44;
  int field_48;
  int field_4c;
  int field_50;
  int field_54;
  int field_58;
  int field_5c;
  int field_60;
  int field_64;
  int field_68;
};

class CFTTPhysics
{
public:
  CFTTPhysics(uchar); // 0016A558
  ~CFTTPhysics();     // 0016BE4E
  static fpoint<PointType_18> GJK(CFTTPPrimitive const *,
                  CFTTPPrimitive const *,
                  fpoint3<PointType_18> &,
                  fpoint3<PointType_18> &,
                  int &,
                  fpoint3<PointType_26> &); // 0016CFEC
  void GJKSub(fpoint3<PointType_26> *,
              bool *,
              fpoint<PointType_26> *,
              fpoint<PointType_26> (*)[4]); // 0016CC54
  int Process();                            // 0016AA88
  CFTTPObject **ppobject_0;
  uchar object_counts_4;
  uchar field_5;
  uchar field_6;
  uchar field_7; // 0016AA88
};

#endif //_CFTTPHYSICS_H_