Код
on inOut(pA, pB, pC, testVector)
global scene
-- определяем вектора между pC - pA
-- и pB - pA.
vectorA = pC - pA
vectorB = pB - pA
-- найдем разницу векторов, которую присвоим
-- нормали плоскости
myNormal = vectorA.cross (vectorB)
-- нормализуем результат
myNormal.normalize ()
-- определим вектор между testVector и любой
-- точкой плоскости. В этом случае я выбрал
-- pA, так как мы знае что она на плоскости
dVector = testVector - pA
-- нормализуем dVector
dvector.normalize ()
-- найдем скалярное произведение нормали и dVector'a.
-- так как эти два вектора были нормализованы
-- результатом будет косинус угла между этими векторами
testresult = mynormal.dot (dvector)
-- проверим находится ли точка на плоскости,
-- снизу или сверху плоскости.
if testresult = 0 then
return #onPlane
else if testresult > 0 then
return #inside
else if testresult < 0 then
return #outside
end if
end