40 lines
632 B
C++
40 lines
632 B
C++
#ifndef OBSTACLE3_H
|
|
#define OBSTACLE3_H
|
|
|
|
#include <vector>
|
|
#include "../../../geo/Triangle3.h"
|
|
#include "../../../geo/Sphere3.h"
|
|
|
|
#include "../../../floorplan/v2/Floorplan.h"
|
|
|
|
/**
|
|
* 3D obstacle
|
|
* based on multiple triangles
|
|
* has a material and a type
|
|
*/
|
|
struct Obstacle3D {
|
|
|
|
enum class Type {
|
|
UNKNOWN,
|
|
GROUND_INDOOR,
|
|
GROUND_OUTDOOR,
|
|
STAIR,
|
|
DOOR,
|
|
WALL,
|
|
};
|
|
|
|
Type type;
|
|
Floorplan::Material mat;
|
|
std::vector<Triangle3> triangles;
|
|
|
|
/** empty ctor */
|
|
Obstacle3D() : type(Type::UNKNOWN), mat() {;}
|
|
|
|
/** ctor */
|
|
Obstacle3D(Type type, Floorplan::Material mat) : type(type), mat(mat) {;}
|
|
|
|
};
|
|
|
|
|
|
#endif // OBSTACLE3_H
|