Specializations
There are several notable exceptions to how Meshes.jl defines parametric functions.
Meshes.ConeSurfaceis essentially a composite type and has a parametric function that only maps the conical portion of the geometry, so theMeshes.Diskbase element has to be integrated separately.Meshes.CylinderSurfaceis essentially a composite type and has a parametric function that only maps the cylindrical portion of the geometry, so theMeshes.Diskelement has to be integrated separately.Meshes.FrustumSurfaceis essentially a composite type and has a parametric function that only maps the cylindrical portion of the geometry, so the top and bottomMeshes.Diskelements have to be integrated separately.Meshes.Linerepresents a line of infinite length that passes through two points, and it has a parametric function that is valid on the domain $(-\infty, \infty)$.Meshes.Planerepresents a plane of infinite extent, and it has a parametric function that is valid on the domain $(-\infty, \infty)^2$.Meshes.Rayrepresents a line that begins at a point and extends in a particular direction with infinite length, and it has a parametric function that is valid on the domain $[0, \infty)$.Meshes.Ringis a composite type that lacks a parametric function, but can be decomposed intoMeshes.Segments and then integrated by adding together the individual integrals.Meshes.Ropeis a composite type that lacks a parametric function, but can be decomposed intoMeshes.Segments and then integrated by adding together the individual integrals.Meshes.Trianglehas a parametric function that takes coordinates on a 2D barycentric coordinate system. So, for(::Meshes.Triangle)(t1, t2), the coordinates must obey: $t_1, t_2 \in [0,1]$ where $t_1 + t_2 \le 1$.Meshes.Tetrahedronhas a parametric function that takes coordinates on a 3D barycentric coordinate system. So, for(::Meshes.Tetrahedron)(t1, t2), the coordinates must obey: $t_1, t_2, t_3 \in [0,1]$ where $t_1 + t_2 + t_3 \le 1$.