#pragma once
#include
#include
#include
namespace internal
{
struct cylinder_t final : public primitive {
void initialize(primitive_data_center_t &) override;
void destroy() override;
primitive_type get_type() const override { return PRIMITIVE_TYPE_CYLINDER; };
stl_vector_mp> get_subfaces() const override
{
return {static_pointer_cast(cylinder_face),
static_pointer_cast(bottom_plane),
static_pointer_cast(top_plane)};
}
stl_vector_mp get_subface_types() const override
{
return {surface_type::cylinder, surface_type::plane, surface_type::plane};
}
marked_subface_ptr_t cylinder_face{};
marked_subface_ptr_t bottom_plane{};
marked_subface_ptr_t top_plane{};
};
} // namespace internal