Kanter av vertexnod¶

Väljer en angränsande kant till ett toppunkt och matar ut dess index.
Den här noden är lite speciell eftersom den arbetar inom två olika domäner. Först utvärderar den en Weight för varje kant i geometrin. Sedan, för varje objekt i kontextdomänen, kommer den att göra det:
Välj en vertex från geometrin baserat på Vertex Index.
Hitta de kanter som är kopplade till detta toppunkt.
Sortera dessa kanter efter deras tillhörande vikt.
Välj en kant från ovanstående sorterade lista baserat på Sort Index, där 0 betyder kanten med den lägsta vikten, 1 betyder kanten med den näst lägsta vikten och så vidare.
Utmatning av det geometriomfattande indexet för denna kant.
Inmatningar¶
- Index för toppunkt
Indexet för den toppunkt som kanterna ska hittas för.
Observera
Om denna ingång inte är ansluten används index för kontextobjektet, vilket innebär att det är viktigt att noden utvärderas i Point-domänen.
- Vikter
Vikterna för kanterna i geometrin. Till skillnad från de andra indata som följer kontextdomänen utvärderas denna alltid i Edge-domänen.
Kanterna sorteras efter deras tillhörande vikt i stigande ordning. Kanter med samma vikt sorteras efter deras index.
- Sortera index
Det 0-baserade indexet för den kant som ska väljas från vertexets sorterade kanter. Om detta värde ligger utanför intervallet för giltiga index kommer det att omslutas.
Egenskaper¶
Denna nod har inga egenskaper.
Utgångar¶
- Kantindex
Det geometriska indexet för den valda kanten. Du kan skicka detta till Utvärdera vid Index Node eller Exempel på indexnod (med domänen inställd på Edge) för att hämta detaljer om kanten.
Om vertexen inte har några anslutna kanter kommer Edge Index att vara noll.
- Totalt
Antalet kanter som är anslutna till det valda toppunktet.
Exempel¶
I exemplet nedan skapas en kon vid varje toppunkt i en ”kub”, i linje med den angränsande kant som är mest vertikal.
Först beräknar vi en ”vertikalitetspoäng” för var och en av kubens kanter. För att göra detta subtraherar vi positionerna för dess hörn för att få dess riktningsvektor, som vi normaliserar och använder för att beräkna punktprodukten med Z-axeln. Det absoluta värdet av detta ger oss ett tal mellan 0 och 1, där 0 betyder helt horisontellt och 1 betyder helt vertikalt.
Eftersom kanterna kommer att sorteras efter stigande vikt sätter vi vikt = 1 - vertikalitet. På så sätt får den mest vertikalt anslutna kanten till varje toppunkt lägst vikt och kommer först i listan.
Därefter, i punktdomänen, måste vi beräkna rotationen för varje kon. Genom att använda Rikta in rotationen mot vektornoden förenklas problemet och vi behöver bara beräkna en riktningsvektor.
Riktningsvektorn för varje kon är mittpunkten för den mest vertikala angränsande kanten minus vertexets position. Det är för att hitta den mest vertikala grannkanten som noden Edges of Vertex kommer in i bilden: för varje vertex sorterar den de anslutna kanterna efter vikt och väljer den första (eftersom sorteringsindexet är 0). När vi har kantens index använder vi Utvärdera vid Index Node för att hämta dess mittpunkt.
När konernas rotationer har beräknats använder vi Instans på Points Node för att skapa dem.

Exempel på nodkonfiguration. (Högerklicka och välj ”Öppna bilden i en ny flik” för att se en större version)¶

Den resulterande geometrin.¶