Files

66 lines
1.1 KiB
C++

#ifndef MRNTT_BODYMAP_BODYMESSAGE_H
#define MRNTT_BODYMAP_BODYMESSAGE_H
#include <vector>
#include <cstdint>
#include <bodyMap/limb.h>
#include <bodyMap/part.h>
namespace mrntt {
namespace bodyMap {
class BodyMessage
{
public:
BodyMessage() = default;
~BodyMessage() = default;
};
class SpotImpactEntry
{
public:
enum class ReportType
{
PRESSURE,
PAIN,
PLEASURE,
HEAT,
COLD
};
SpotImpactEntry(uint32_t _spot, ReportType _type, uint32_t _value)
: spot(_spot), type(_type), value(_value)
{}
~SpotImpactEntry() = default;
public:
uint32_t spot;
ReportType type;
uint32_t value;
};
class SpotImpactInd : public BodyMessage
{
public:
SpotImpactInd(Part &_part) : part(_part) {}
~SpotImpactInd() = default;
public:
Part &part;
std::vector<SpotImpactEntry> entries;
};
class PartMsg : public BodyMessage
{
public:
PartMsg(const Part& _part) : part(_part) {}
public:
const Part& part;
};
} // namespace bodyMap
} // namespace mrntt
#endif // MRNTT_BODYMAP_BODYMESSAGE_H