
class AeroData
{
public:
        ~AeroData
(void) {delete mach; delete alpha; delete clift;
        delete
cdrag; delete cy; };
        int
numMach;
        int
numAlpha;
        float
*mach;
        float
*alpha;
        float
*clift;
        float
*cdrag;
        float
*cy;
        float
clFactor;
        float
cdFactor;
        float
cyFactor;
#ifdef USE_SH_POOLS
public:
        // Overload new/delete to
use a SmartHeap fixed size pool
        void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);       
};
        void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
 
/*------------------*/
/* Engine Data Type */
/*------------------*/
class EngineData
{
public:
        ~EngineData(void)
{delete mach; delete alt; delete thrust[0];
        delete
thrust[1]; delete thrust[2];};
        float
thrustFactor;
        float
fuelFlowFactor;
        int
numMach;
        int
numAlt;
        float
*mach;
        float
*alt;
        float
*thrust[3];
#ifdef USE_SH_POOLS
public:
        // Overload new/delete to
use a SmartHeap fixed size pool
        void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);       
};
        void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
/*---------------------*/
/* Roll Rate Data Type */
/*---------------------*/
class RollData
{
public:
        ~RollData(void)
{delete alpha; delete qbar; delete roll;};
        int
numAlpha;
        int
numQbar;
        float
*alpha;
        float
*qbar;
        float
*roll;
#ifdef USE_SH_POOLS
public:
        // Overload new/delete to
use a SmartHeap fixed size pool
        void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);       
};
        void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
 
class GearData
{
public:
        enum GearFlags{
               
GearStuck       = 0x01,
               
GearBroken      = 0x02,
               
DoorStuck       = 0x04,
               
DoorBroken      = 0x08,
               
GearProblem = 0x0F,
        };
        GearData(void);
        ~GearData(void)
{}
        float  
strength;       //how many hitpoints it has
left
        float  
vel;           
//at what rate is it currently compressing/extending in ft/s
        float  
obstacle;       //rock height/rut depth
        uint   
flags;          //gear stuck/broken,
door stuck/broken,
#ifdef USE_SH_POOLS
public:
        // Overload new/delete to
use a SmartHeap fixed size pool
        void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);       
};
        void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};