#ifndef SSD_H_
#define SSD_H_
#include "tensorOperate.h"
#include "oneStageDetLayer.h"
#include "commStruct.h"

class SSDLayer : public OneStageDetLayer
{
    public:
        SSDLayer(int ifType, int iID, int iMaxSeqNum, LayerType iLayType, DevicesBatchDisptach *iDevicesBatchDisptach, \
                 SLTYPE lossType, int netClassNum, int iKeepTopMatchNum);
        void CreateDefaultBox();
        int PositiveSampleSelect(int devID, int n, int idx);
        void NegativeSampleSelect(int devID, int n, int pNum, int idx);

    private:
        float GetSK(int featureIndex);
        void GetDefaultBoxHWByFeatureIndex(int featureLayerIndex, int boxNumPerPix, int boxIndex, float *H, float *W);
};
#endif
