Edytor Solid - Projekt z MIJP 4

Opis

Program Solid jest prostym edytorem trójwymiarowym. Zadanie jakie postawili przed sobą autorzy programu to głównie nauka programowania w środowisku Windows.  Funkcjonalność programu miała znaczenie drugorzędne.

Program służy do  tworzenia i edycji hierarchicznie zbudowanej sceny złożonej z wypukłych brył oraz obiektów.

Użytkownik edytujący scenę składa ją z tak zwanych solid'ów.  Solid jest to wypukła bryła złożona z dowolnej ilości płaszczyzn.  Jedyny sposób w jaki użytkownik wpływa na bryłę to zmiana jej płaszczyzn.  Nie musi martwić się o położenie wierzchołków, zachowanie koplanarności punktów tworzących ściany, itp.  Przy zmianie wierzchołków automatycznie odpowiednio modyfikowane są równania płaszczyzn.  Oprócz brył można też wstawiać obiekty.  W przyszłej wersji programu obiekty mogą służyć jako źródła światła, waypointy lub inne tym podobne rzeczy.

Obsługa

Bryły lub obiekty dodajemy naciskając przyciski na toolbarze.  Zaznaczamy elementy  klikając na nie.  Możemy zaznaczać wiele elementów na raz poprzez klikanie z wciśniętym shiftem.  Modyfikujemy elementy  poprzez ciągnięcie za specjalne punkty lub wpisywanie parametrów w okienko właściwości. Warto zauważyć, że możemy edytować właściwości kilku elementów na raz.  Hierarchię sceny możemy zmieniać przez przeciąganie elementów w okienku drzewa.  Położenie kamer zmieniamy przesuwając myszkę z wciśniętym prawym lub środkowym klawiszem.  Wciśnięcie środkowego klawisza można też zastąpić wciśnięciem prawego i lewego klawisza na raz.

Program umożliwia zapis i odczyt sceny na dysk.  Pliki sceny można edytować edytorem tekstowym.  Program posiada też ograniczone możliwości konfiguracyjne (plik Defaults.cfg i My1.cfg).  Można między innymi definiować możliwe właściwości elementów. Bardzo ważną funkcją programu jest też wielopoziomowe undo.

Przyszłość

Wiele funkcji do programu można by było dodać niewielkim kosztem.  Niestety uniemożliwił to brak czasu.  Zresztą jak już napisałem główne cele pisania programu były edukacyjne.  Jako przykład można podać iż TreeWnd i Splitter są pisane jako pochodne klasy CWnd !  Warto więc zwrócić uwagę na możliwości TreeWnd.  Po pierwsze elementy drzewa można przeciągać.  Przeciąganie elementów poza drzewo przewija je, przytrzymanie przeciąganego elementu nad nierozwiniętym rozwinie go.  Każdy element w drzewie może mieć własny obrazek, poza tym drzewo może wyświetlać elementy dodatkowe (proszę np. wpisać 255 0 0 jako kolor we właściwościach grupy).

Program

Binaria (240k zip)

Autorzy:
    Wojciech Młynarczyk
    Maciej Idaczyk