VEX Dictionary / xyzdist
xyzdist
Finds the closest spot on another geometry's surface: its distance, primitive and parametric uv.
group: measuremeasureproximity
Available in every context
Usage
float xyzdist(<geometry>, vector origin)
float xyzdist(<geometry>, vector origin, int &prim, vector &uv)
float xyzdist(<geometry>, vector origin, int &prim, vector &uv, float maxdist)
float xyzdist(<geometry>, string primgroup, vector origin)
float xyzdist(<geometry>, string primgroup, vector origin, int &prim, vector &uv)
float xyzdist(<geometry>, string primgroup, vector origin, int &prim, vector &uv, float maxdist)
Examples
// Input 1: the target surface
int prim;
vector uv;
float dist = xyzdist(1, @P, prim, uv);
@P = primuv(1, "P", prim, uv);
f@dist = dist;Use cases
- Projecting and ray-free snapping Stick geometry to a surface without the Ray SOP.
- Surface attribute lookup Sample
N,uvorCdfrom the nearest spot on another mesh. - Distance fields on the cheap Use the returned distance as a falloff mask.
Signatures (from vcc -X)
float xyzdist(int, string, vector)all contextsfloat xyzdist(int, string, vector, int &, vector &)all contextsfloat xyzdist(int, string, vector, int &, vector &, float)all contextsfloat xyzdist(int, vector)all contextsfloat xyzdist(int, vector, int &, vector &)all contextsfloat xyzdist(int, vector, int &, vector &, float)all contextsfloat xyzdist(string, string, vector)all contextsfloat xyzdist(string, string, vector, int &, vector &)all contextsfloat xyzdist(string, string, vector, int &, vector &, float)all contextsfloat xyzdist(string, vector)all contextsfloat xyzdist(string, vector, int &, vector &)all contextsfloat xyzdist(string, vector, int &, vector &, float)all contexts