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