Uzol Hrany vrcholov#
Vyberie susednú hranu vrcholu a vypíše jej index.
Tento uzol je trochu zvláštny, pretože pracuje v dvoch rôznych oblastiach. Po prvé, vyhodnocuje Váhu pre každú hranu v geometrii. Potom pre každý prvok v kontextovej doméne:
Vyberie vrchol z geometrie na základe Indexu vrcholu.
Nájde hrany pripojené k tomuto vrcholu.
Zoradí tieto hrany podľa ich príslušnej váhy.
Vyberiete hranu z vyššie uvedeného zoradeného zoznamu na základe Indexu triedenia, kde 0 znamená hranu s najnižšou váhou, 1 znamená hranu s druhou najnižšou váhou atď.
Vypíše index tejto hrany v celej geometrii.
Vstupy#
- Index vrcholu
Index vrcholu, pre ktorý sa majú nájsť hrany.
Poznámka
Ak tento vstup nie je pripojený, použije sa index kontextového prvku, čo znamená, že je dôležité, aby bol uzol vyhodnotený v doméne Bod.
- Váhy
Váhy hrán v geometrii. Na rozdiel od ostatných vstupov, ktoré sa riadia kontextovou doménou, tento vstup sa vždy vyhodnocuje v doméne Hrana.
Hrany sú zoradené podľa príslušnej váhy vzostupne. Hrany s rovnakou váhou sú zoradené podľa ich indexu.
- Index zoradenia
Index hrany s hodnotou 0, ktorá sa má vybrať z triedených hrán vrcholu. Ak je táto hodnota mimo rozsahu platných indexov, obteká sa.
Vlastnosti#
Tento uzol nemá žiadne vlastnosti.
Výstupy#
- Index hrany
Geometrický index vybranej hrany. Môžete ho odovzdať uzlu Vyhodnotiť na indexe alebo uzlu Index snímky (s doménou nastavenou na Hrana) na získanie podrobností o hrane.
Ak vrchol nemá žiadne pripojené hrany, Index hrany bude nula.
- Celkovo
Počet hrán pripojených k vybranému vrcholu.
Napríklad#
Nasledujúci príklad vytvára kužeľ v každom vrchole „kocky“, zarovnaný k susednej hrane, ktorá je najviac vertikálna.
Najprv vypočíta „skóre vertikality“ pre každú hranu kocky. Na tento účel odčíta polohy jej vrcholov, pre získanie jej smerového vektora, ktorý normalizuje a použije na výpočet bodového súčinu s osou Z. Absolútna hodnota tohto súčinu nám dáva číslo medzi 0 a 1, kde 0 znamená úplne horizontálne a 1 znamená úplne vertikálne.
Keďže hrany budú zoradené podľa vzostupnej váhy, nastaví váhu = 1 - vertikalita. Takto bude mať najviac vertikálne pripojená hrana každého vrcholu najnižšiu váhu a bude v zozname na prvom mieste.
Ďalej musíme v bodovej oblasti vypočítať rotáciu každého kužeľa. Použitím uzla Zarovnať rotáciu na vektor sa problém zjednoduší a my musíme vypočítať len smerový vektor.
Smerový vektor každého kužeľa je stredový bod najschodnejšej susednej hrany mínus poloha vrcholu. Nájdenie tejto najviac vertikálnej susednej hrany je miestom, kde prichádza na rad uzol Hrany vrcholu: pre každý vrchol zoradí pripojené hrany podľa ich váhy a vyberie prvú z nich (pretože index zoradenia je 0). Keď máme index hrany, použijeme Uzol Vyhodnotiť na indexe na získanie jej stredového bodu.
Po vypočítaní rotácií kužeľov použijeme na ich vytvorenie Uzol Inštancia na body.