#pragma once #include "vde/core/point.h" #include #include namespace vde::curves { using core::Point3D; using core::Vector3D; /// Tessellate a parametric surface into a triangle mesh /// @param eval Function(u,v) -> Point3D /// @param res_u, res_v Number of samples in u/v directions /// @return Pairs of (vertices, triangle indices) std::pair, std::vector>> tessellate(const std::function& eval, int res_u, int res_v); } // namespace vde::curves