Reference/API
PMesh.NoE
PMesh.NoF
PMesh.NoH
PMesh.NoV
PMesh.PointLocation
DistanceQueries.nearest
PMesh.nearestface
PMesh.nearestvertex
PMesh.pointlocation
PMesh.projection
PMesh.remesh!
PMesh.@mt_str
PMesh.NoE
PMesh.NoF
PMesh.NoH
PMesh.NoV
PMesh.AbstractEAttr
PMesh.AbstractFAttr
PMesh.AbstractGeometry
PMesh.AbstractHAttr
PMesh.AbstractVAttr
PMesh.AffineMap
PMesh.EAttr
PMesh.EHnd
PMesh.FAttr
PMesh.FHnd
PMesh.HAttr
PMesh.HHnd
PMesh.HalfEdge
PMesh.LinearMap
PMesh.LocalIter
PMesh.MapHandles
PMesh.Mesh
PMesh.PointLocation
PMesh.VAttr
PMesh.VHnd
PMesh.addface!
PMesh.addvertex!
PMesh.addvertices!
PMesh.adjacencymatrix
PMesh.affinemap
PMesh.anglenext
PMesh.angleprev
PMesh.arclength
PMesh.arclengthknots
PMesh.barycenter
PMesh.boundaryhalfedge
PMesh.boundaryloop
PMesh.boundaryloopccw
PMesh.ccw
PMesh.ccwfan
PMesh.ccwhalfedges
PMesh.ccwring
PMesh.ccwstar
PMesh.ccwvertices
PMesh.ccwvertices
PMesh.centercentroid!
PMesh.centermean!
PMesh.centroid
PMesh.checkmesh
PMesh.circulate
PMesh.circumference
PMesh.collapse!
PMesh.compact
PMesh.compact!
PMesh.compactfacetable
PMesh.compacttriangletable
PMesh.computedihedralangle
PMesh.copyattrs!
PMesh.copyeattrs!
PMesh.copyfattrs!
PMesh.copyhattrs!
PMesh.copytessellation!
PMesh.copyvattrs!
PMesh.createeattr
PMesh.createfattr
PMesh.createhattr
PMesh.createmesh
PMesh.createmesh
PMesh.createmesh
PMesh.createvattr
PMesh.cw
PMesh.cwfan
PMesh.cwhalfedges
PMesh.cwring
PMesh.cwstar
PMesh.cwvertices
PMesh.degree
PMesh.destination
PMesh.details
PMesh.dihedralangle
PMesh.eattr
PMesh.edge
PMesh.edge
PMesh.edgelength
PMesh.edgelengths
PMesh.edges
PMesh.edgevector
PMesh.edgevectors
PMesh.ehnds
PMesh.face
PMesh.face
PMesh.facearea
PMesh.facenormal
PMesh.facenormalarea
PMesh.faces
PMesh.facetable
PMesh.fan
PMesh.fattr
PMesh.fhnds
PMesh.findboundaryloops
PMesh.findboundaryloopseeds
PMesh.first3
PMesh.flip!
PMesh.fliporientation
PMesh.fnormal
PMesh.fnormals
PMesh.geometry
PMesh.glimpse
PMesh.graphlaplacian
PMesh.graphviz
PMesh.halfedge
PMesh.halfedge
PMesh.halfedge
PMesh.halfedge
PMesh.halfedges
PMesh.halfedges
PMesh.halfedges
PMesh.has_fnormal
PMesh.has_position
PMesh.has_vnormal
PMesh.haseattr
PMesh.hasfattr
PMesh.hashattr
PMesh.hasisolatedvertices
PMesh.hasvattr
PMesh.hattr
PMesh.hhnds
PMesh.insertedge!
PMesh.isboundary
PMesh.isclosed
PMesh.isfirsthalfedge
PMesh.ishalfedgecurve
PMesh.isinner
PMesh.isisolated
PMesh.ismanifold
PMesh.isquad
PMesh.isquadmesh
PMesh.istriangle
PMesh.istrianglemesh
PMesh.istriangulation
PMesh.linearmap
PMesh.linearmap2d
PMesh.link
PMesh.localframe
PMesh.maphandles
PMesh.mapnormal
PMesh.maptangentunitvector
PMesh.maptangentvector
PMesh.mapunitvector
PMesh.mapvattr!
PMesh.mapvector
PMesh.mat
PMesh.maxfacedegree
PMesh.maycollapse
PMesh.mayflip
PMesh.mayremove
PMesh.mayremoveedge
PMesh.meanedgelength
PMesh.meshobj
PMesh.ne
PMesh.nearestface
PMesh.nearestvertex
PMesh.next
PMesh.nextinstar
PMesh.nf
PMesh.nh
PMesh.normal
PMesh.nv
PMesh.opposite
PMesh.pca
PMesh.pointlocation
PMesh.positionhalfedgecurve!
PMesh.positions
PMesh.prev
PMesh.previnstar
PMesh.projectintotangentspace
PMesh.projection
PMesh.quad
PMesh.radius
PMesh.rawfacebase
PMesh.rawtrianglebase
PMesh.rawtrianglenormal
PMesh.remesh!
PMesh.remove!
PMesh.removeedge!
PMesh.removeface!
PMesh.removevertex!
PMesh.ring
PMesh.scalesurfacearea!
PMesh.scmat
PMesh.shrink!
PMesh.source
PMesh.split!
PMesh.split!
PMesh.split!
PMesh.star
PMesh.surfacearea
PMesh.tangentspace
PMesh.tessellation
PMesh.tolocal
PMesh.tolocal2d
PMesh.toworld
PMesh.triangle
PMesh.trianglearea
PMesh.trianglenormal
PMesh.trianglenormalarea
PMesh.triangletable
PMesh.triangulated
PMesh.umbrella
PMesh.uniformknots
PMesh.updatefacenormals!
PMesh.updatenormal!
PMesh.updatenormals!
PMesh.updatevertexnormals!
PMesh.vattr
PMesh.vertexnormal
PMesh.vertices
PMesh.vertices
PMesh.vertices
PMesh.vertices
PMesh.vertices!
PMesh.vhnds
PMesh.vnormal
PMesh.vnormals
PMesh.@mt_str
PMesh.NoE
— ConstantInvalid handle indicating no edge
See also EHnd
PMesh.NoF
— ConstantInvalid handle indicating no face
See also FHnd
PMesh.NoH
— ConstantInvalid handle indicating no half-edge
See also HHnd
PMesh.NoV
— ConstantInvalid handle indicating no vertex
See also VHnd
PMesh.PointLocation
— TypeContext for supporting point location queryies on triangulated
geometry
.
DistanceQueries.nearest
— MethodSynomym for nearestface
PMesh.nearestface
— Methodg = triangulated(geometry(mesh, x))
pl = pointlocation(g)
d, f, λ = nearestface(pl, y)
Given querypoint y
, compute distance d
to mesh
, with the projection
point in face f
at barycentric cooordinates λ
.
For an planar mesh in 2d, d
is zero if y
is within the triangulation. If y
is outside, λ
specifies a point on a boundary edge.
The mesh must not have changed sicne calling pointlocation
See also geometry
, triangulated
, nearestvertex
, nearest
, projection
PMesh.nearestvertex
— Methodg = triangulated(geometry(mesh, x))
pl = pointlocation(g)
d, v = nearestvertex(pl, y)
Given querypoint y
, compute the nearest vertex v
and the distance d
to this vertex.
The mesh must not have changed since calling pointlocation
See also geometry
, triangulated
, nearestface
, nearest
, projection
PMesh.pointlocation
— Methodpl = pointlocation(g[; maxpoints, maxdepth])
d, f, λ = nearestface(pl, y)
d, v = nearestvertex(pl, y)
py = projection(pl, y)
The implementation uses DistanceQueries
.
This method takes a "snapshot" of the geometry that is stored independently of the mesh
in a kd-tree.
Handles returned by nearestvertex
and nearestface
become invalid if the mesh changes after calling pointlocation
.
Consider using compact
, i.e., ensure iscontiguous
before calling pointlocation
!
See also geometry
, triangulated
, nearestface
, nearestvertex
, nearest
, projection
PMesh.projection
— Methodg = triangulated(geometry(mesh, x))
pl = pointlocation(g)
py = projection(pl, y)
Given a point y
, compute its projection onto the mesh
.
This method does not require any data from the mesh
! It relies only on the "snapshot" taken by pointlocation
.
See also geometry
, triangulated
, nearestface
PMesh.remesh!
— Functionremesh!(mesh[, len=meanedgelength(mesh);
k=32, pos=:x, vnrm=:n, fnrm=:n, farea=:a)
Apply k
iterations of isotropic remeshing (w/o projection onto the mesh).
PMesh.@mt_str
— Macromt"3NT" === PMesh.Types.MESH3NT
Generate mesh template (type) from string literal.