2023-03-13 22:27:09 +05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <hpr/containers.hpp>
|
|
|
|
#include <hpr/math.hpp>
|
|
|
|
|
|
|
|
|
|
|
|
namespace hpr::geometry
|
|
|
|
{
|
|
|
|
|
|
|
|
template <int Dim, int Space>
|
|
|
|
class Polytope
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
enum class Type
|
|
|
|
{
|
|
|
|
Nullitope = -1,
|
|
|
|
Monon,
|
|
|
|
Dion,
|
|
|
|
Polygon,
|
|
|
|
Polyhedron,
|
|
|
|
Polychoron,
|
|
|
|
Unknown
|
|
|
|
};
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
const int p_dimension;
|
|
|
|
const int p_space;
|
|
|
|
Type p_type;
|
|
|
|
darray<VectorSpace<scalar, Space>> p_points;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
Polytope() :
|
|
|
|
p_dimension {Dim},
|
|
|
|
p_space {Space},
|
|
|
|
p_type {Type::Unknown},
|
|
|
|
p_points {}
|
|
|
|
{}
|
|
|
|
|
|
|
|
virtual
|
|
|
|
~Polytope() = default;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
2023-01-11 14:46:49 +05:00
|
|
|
}
|