#pragma once #include #include namespace internal { struct PE_API extrude_axis { virtual ~extrude_axis() = default; // 输入的p需要在axis局部坐标系下 virtual double get_closest_param(Eigen::Vector3d p) const = 0; // 输入的p需要在axis局部坐标系下,且输出的局部坐标需要由轴坐标系到子面坐标系 virtual std::pair to_pattern_local(double t, Eigen::Vector3d p) const = 0; virtual Eigen::AffineCompact3d get_local_cap_mat(double t) const = 0; virtual aabb_t get_local_aabb() const = 0; }; } // namespace internal