Pivy/pl

Wprowadzenie
Pivy jest biblioteką wiążącą Python do Coin, biblioteką renderowania 3D używaną w FreeCAD do wyświetlania obiektów w oknie widoku 3D. Coin jest otwartą implementacją specyfikacji "Open Inventor" do obsługi grafiki. Dlatego w środowisku FreeCAD terminy Pivy, Coin lub Open Inventor odnoszą się zasadniczo do tego samego.

Po zaimportowaniu do działającego interpretera Python, Pivy pozwala nam na bezpośrednią komunikację z dowolnym działającym scenegrafem Coin, takim jak widok 3D, a nawet na tworzenie nowych. Pivy nie jest wymagany do kompilacji FreeCAD, ale jest wymagany podczas uruchamiania opartych na Pythonie środowisk pracy, które tworzą kształty na ekranie, takich jak Rysunek Roboczy i Architektura. Z tego powodu, Pivy jest zwykle instalowany podczas instalacji programu FreeCAD.

Biblioteka Coin jest podzielona na kilka części, sam Coin do manipulowania scenegrafami oraz wiązania dla kilku systemów GUI, takich jak Windows i Qt. Jeśli są obecne w systemie, moduły te są również dostępne dla Pivy. Moduł Coin jest zawsze obecny i to właśnie z niego będziemy korzystać, ponieważ nie będziemy musieli dbać o zakotwiczenie naszego wyświetlacza 3D w jakimkolwiek interfejsie, to już robi FreeCAD. Jedyne co musimy zrobić to:

Scenograf
Na stronie Scenogram zobaczyliśmy, jak zorganizowana jest typowa scena Coin. Wszystko, co pojawia się w oknie widoku 3D jest scenegrafem Coin, zorganizowanym w ten sam sposób. Mamy jeden węzeł główny, a wszystkie obiekty na ekranie są jego produktami pochodnymi.

FreeCAD posiada łatwy sposób dostępu do węzła głównego scenegrafu widoku 3D:

Spowoduje to zwrócenie węzła głównego:

Możemy skontrolować bezpośrednie obiekty pochodne naszej sceny:

Niektóre z tych węzłów, takie jak czy, mogą mieć same elementy pochodne. Pełną listę dostępnych obiektów Coin można znaleźć w oficjalnej dokumentacji Coin.

Spróbujmy teraz dodać coś do naszego scenegrafu. Dodamy ładny czerwony sześcian:

A teraz spróbujmy tego:

Jak widać wszystko jest nadal dostępne i modyfikowalne w locie. Nie trzeba niczego rekompilować ani przerysowywać, Coin zajmuje się wszystkim. Możesz dodawać obiekty do swojego scenegrafu, zmieniać właściwości, ukrywać je, pokazywać obiekty tymczasowe, cokolwiek zechcesz. Oczywiście, dotyczy to tylko wyświetlania w widoku 3D. Ten widok jest ponownie obliczany przez FreeCAD przy otwieraniu pliku, oraz gdy obiekt wymaga ponownego obliczenia. Tak więc, jeśli zmienisz aspekt istniejącego obiektu FreeCAD, zmiany te zostaną utracone, gdy obiekt zostanie ponownie obliczony lub gdy ponownie otworzysz plik.

Jak już wspomniano, w scenegrafie OpenInventor kolejność jest ważna. Węzeł wpływa na to, co będzie następne. Przykładowo, jeśli chcemy mieć możliwość przesuwania naszego sześcianu, będziemy musieli dodać węzeł  sześcianem:

Aby przesunąć nasz sześcian możemy teraz zrobić:

Wreszcie usunięcie czegoś jest załatwione:

Informacje zwrotne
Mechanizm callback to system, który pozwala bibliotece, takiej jak nasza biblioteka Coin, na odpowiadanie, czyli wywoływanie określonej funkcji z aktualnie uruchomionego obiektu Python. W ten sposób Coin może powiadomić Cię, że w scenie wystąpiło jakieś konkretne zdarzenie. Coin może obserwować bardzo różne rzeczy, takie jak pozycja myszy, kliknięcia przycisków myszy, wciśnięte klawisze klawiatury i wiele innych.

FreeCAD posiada łatwy sposób na wykorzystanie takich wywołań zwrotnych:

Wywołanie zwrotne musi być zainicjowane z obiektu, ponieważ ten obiekt musi być nadal uruchomiony, gdy nastąpi wywołanie zwrotne. Zobacz także kompletną listę możliwych zdarzeń i ich parametrów, lub oficjalną dokumentację Coin.

Dokumentacja
Niestety, Pivy nie ma własnej dokumentacji. Ponieważ jednak jest to dokładny wrapper biblioteki Coin, możesz przeczytać referencję C ++ w celu uzyskania informacji. W tym przypadku musisz przetłumaczyć styl nazewnictwa klas C ++ na styl Pythona.

W C++

W Pivy:


 * Coin3D strona domowa.
 * Pivy strona domowa.
 * Coin3D wiki, na GitHubie.
 * dokumentacja Wiki dla Coin3D, na GitHubie.
 * Coin3D Documentation, najnowsza, automatycznie generowana dokumentacja Doxygen.
 * (Open)Inventor Mentor - zalecane.

Starsze
Te linki dostarczają dokumentacji referencyjnej dla Coin v3.x. Różnice w stosunku do v4.x są minimalne, więc nadal mogą one być przydatne.


 * dokumentacja Coin3D, na BitBucket.
 * dokumentacja Coin3D, na University of Colorado.
 * Open Inventor Reference Documentation, publikacja: MeVisLab.