Program Listing for File layer_modifiers.h

Return to documentation for file (include/cpphots/interfaces/layer_modifiers.h)

#ifndef CPPHOTS_INTERFACES_LAYER_MODIFIERS_H
#define CPPHOTS_INTERFACES_LAYER_MODIFIERS_H

#include "../types.h"
#include "streamable.h"
#include "clonable.h"


namespace cpphots{

namespace interfaces {

struct EventRemapper : public virtual Streamable, public ClonableBase<EventRemapper> {

    ~EventRemapper() {}

    virtual event remapEvent(event ev, uint16_t k) = 0;

};


class SuperCell : public virtual Streamable, public ClonableBase<SuperCell> {

public:

    ~SuperCell() {}

    virtual std::pair<uint16_t, uint16_t> findCell(uint16_t ex, uint16_t ey) const = 0;

    virtual std::pair<uint16_t, uint16_t> getSize() const = 0;

    virtual std::pair<uint16_t, uint16_t> getCellSizes() const = 0;

    virtual TimeSurfaceType averageTS(const TimeSurfaceType& ts, uint16_t cx, uint16_t cy) = 0;

};

}

}

#endif