mpiechota Napisano 10 Marzec 2007 Napisano 10 Marzec 2007 napisałem funkcję, która z założenia zaznacza wszystkie fejsy (face) przylegające do zaznaczonych edżów (edge) obiektów Editable Poly. Działa ok... wszystko ładnie... tylko czasem nie zaznaczy jakiegoś fejsa (face). Poszukałem błędu. Oto on: tkwi w wartości level flags dla niektórych edżów (edge) kawałek z MaxScript Listenera polyop.getEdgeFlags poly 89 > 65545 polyop.setEdgeFlags poly 89 1 > OK polyop.getEdgeFlags poly 89 > 65545 polyop.setEdgeFlags poly 89 0 > OK polyop.getEdgeFlags poly 89 > 0 polyop.setEdgeFlags poly 89 1 > OK polyop.getEdgeFlags poly 89 > 65545 Co to (niecenzuralne słowo) jest? :> Bo zdębiałem. Wyciąg z helpa: bit 1: vertex is selected bit 2: vertex is dead bit 3: reserved bit 4: indicates the vertex faces "backwards" in the current viewport bit 5-24: reserved bit 25-32: available for general use i tak jest dla większości edżów :> czyli 1 dla zaznaczonych 0 dla nie zaznaczonych To co to jest to 65545 dla niektórych zaznaczonych, bo ja nawet w google tego nie znalazłem :) No i najważniejsze pytanie: Czemu ja tego nie mogę ustawić na 1?????? Wiecej szczegolow (chociaz niepotrzebnych): obiekt: pionowy słup editable poly z poprzesuwanymi skryptem vertexami = 1/4 sklepienia krzyżowego zaznaczony jest jeden edge i nastepnie edgeloop, no i jeden edge ma wartosc 65545 :> w razie czego moge calosc skryptu wrzucic :>
lechoo Napisano 15 Marzec 2007 Napisano 15 Marzec 2007 Troche poeksperymentowalem z get i setEdgeFlags ale nie udalo mi sie odtworzyc takiego bledu. Moze sprobuj po kazdm setEdgeFlags odswiezyc scene, mozliwe ze trzeba wymusic na obiekcie update jakiejs jego wewnetrznej informacji.
mpiechota Napisano 15 Marzec 2007 Autor Napisano 15 Marzec 2007 Może coś z moją maszyną nie tak... no nie wiem... testowałem to kilka razy i oznaczenie flagi po restarcie kompa dalej jest jakieś dziwne typu 63732 albo po kolejnym restarcie 63552 może jakiś bug W każdym bądź razie problem omijam na razie tak: - żeby dowiedzieć się czy krawęź jest zaznaczona if (edge_flag == 1 or edge_flag > 32) do bla bla bla i skrypt działa niezależnie od błędu ale nie lubię takiej nieprzewidywalności i tak dziękuję za pomoc
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się