#pragma once #include #include #include namespace internal { struct cylinder_t final : primitive { void initialize(primitive_data_center_t &) override; void destroy() override; primitive_type get_type() const override { return PRIMITIVE_TYPE_CYLINDER; }; marked_subface_ptr_t cylinder_face{}; marked_subface_ptr_t bottom_plane{}; marked_subface_ptr_t top_plane{}; protected: void initialize(primitive_data_center_t &, const std::vector> &) override; marked_subface_ptr_t *get_subface() const override { return (marked_subface_ptr_t *)(&cylinder_face); } size_t get_subface_count() const override { return 3; } }; } // namespace internal