5#include <opencv2/core.hpp>
21 const cv::Vec3d& triA,
22 const cv::Vec3d& triB,
23 const cv::Vec3d& triC);
36 const cv::Vec3d& triA,
37 const cv::Vec3d& triB,
38 const cv::Vec3d& triC);
60 const cv::Vec3d& triA,
61 const cv::Vec3d& triB,
62 const cv::Vec3d& triC);
Volume Cartographer library
cv::Vec3d BarycentricToCartesian(const cv::Vec3d &pt, const cv::Vec3d &triA, const cv::Vec3d &triB, const cv::Vec3d &triC)
Convert a barycentric coordinate relative to the given triangle to a Cartesian coordinate.
bool BarycentricPointIsInTriangle(const cv::Vec3d &pt)
Check whether a barycentric coordinate is bounded by the given triangle.
bool CartesianPointIsInTriangle(const cv::Vec3d &pt, const cv::Vec3d &triA, const cv::Vec3d &triB, const cv::Vec3d &triC)
Check whether a Cartesian coordinate is bounded by the given triangle.
cv::Vec3d CartesianToBarycentric(const cv::Vec3d &pt, const cv::Vec3d &triA, const cv::Vec3d &triB, const cv::Vec3d &triC)
Convert a Cartesian coordinate to barycentric coordinate relative to the given triangle.
cv::Vec3d BarycentricNormalInterpolation(const cv::Vec3d &uvw, const cv::Vec3d &nA, const cv::Vec3d &nB, const cv::Vec3d &nC)
Use Barycentric coordinates to smoothly interpolate a normal.