|
|
|
@ -85,5 +85,12 @@ double area_integrand(double u, double v, const Eigen::Vector3d& p, const Eigen: |
|
|
|
return 1.0; |
|
|
|
} |
|
|
|
|
|
|
|
// Integrate (1/3) * r · n dA over all subfaces
|
|
|
|
double volume_integrand(double u, double v, const Eigen::Vector3d& p, const Eigen::Vector3d& dU, const Eigen::Vector3d& dV) |
|
|
|
{ |
|
|
|
Eigen::Vector3d cross = dU.cross(dV); |
|
|
|
return (p.dot(cross)) / 3.0; // (1/3) * (x dydz + y dzdx + z dxdy)
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
} // namespace internal
|