Siema,
Mam 2 obiekty(płaszczyzny, które mogą mieć dowolny kształt w 2 wymiarach), które są typu "Mesh". Mesh składa się z trójkątów.
Z każdego mesha mogę pozyskać wszystkie trójkąty, z których się składa. Z trójkątów mogę pobrać 3 punkty, z których się składa p0, p1, p2(x, y, z).
Mam też dostępny obiekt "płaszczyzna"(matematyczny, nie powiązany z powyższymi), który bierze point0 od trójkąta, jego "normalną", tworząc płaszczyznę opisującą trójkąt.
Zadanie jest takie, że jeśli wykryje odległość mniejszą lub równą pewnej granicy(1 cm) mam zwrócić true(x,y,z) lub (xy) lub (xz) lub (yz).
Mój pierwszy pomysł był taki żeby iść po każdym trójkącie z pierwszego mesha, opisywać jego trójkąty jako płaszczyzny, porównywać go z wszystkimi trójkątami drugiego mesha(również opisanymi jako płaszczyzny), sprawdzać najmniejszą odległość między płaszczyznami i jak wykryje przekroczony treshold to zwraca true.
Niestety okazało się, że płaszczyzny nie miały metody liczącej odległości pomiędzy nimi więc zrobiłem coś innego.
Opisuję pierwszy trójkąt jako płaszczyznę i sprawdzając jej odległość z każdym bokiem każdego trójkąta mesha2(p0, p1, p2) sprawdzam czy odległość spełnia powyższy warunek, jeśli tak to po prostu zwracam true).
To drugie rozwiązanie nie jest optymalne i zastanawiam się jak mógłbym to poprawić/zmienić.