// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Classify points around a plane // Not compiled or tested in-world // Setup: Use a spare owned prim. Set NORMAL, ON_PLANE, POINTS and TOLERANCE. Touch for owner-only results. // Stop / restore: Disable/remove. No scene properties change. // Notes: Normal direction determines positive side; the tolerance is measured in coordinate distance units. // License: see LICENSE in this distribution. // Original Incoprea. MIT. vector NORMAL=<0.0,0.0,1.0>; vector ON_PLANE=<0.0,0.0,2.0>; float TOLERANCE=0.01; list POINTS=[<1.0,2.0,3.0>,<1.0,1.0,2.005>,<0.0,0.0,0.0>]; default { touch_start(integer detectedCount) { if(llDetectedKey(0)!=llGetOwner())return; if(llVecMag(NORMAL)<0.000001||TOLERANCE<0.0) { llOwnerSay("Invalid normal/tolerance."); return; } vector n=llVecNorm(NORMAL); integer i; for(i=0;iTOLERANCE)side="positive side"; else if(d< -TOLERANCE)side="negative side"; llOwnerSay((string)i+": "+side+" distance="+(string)d); } } }