Biblioteka eu07-tools (Python): Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(structures)
Linia 1: Linia 1:
 
Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.
 
Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.
  
= t3d =
+
= Opis funckjonalności =
== structures ==
+
== t3d ==
=== create_submodel ===
+
Moduł zawierający funkcje zapisu oraz odczytu elementów modelu (submodele, include) z pliku oraz funkcje-fabryki do tworzenia tych struktur.
Tworzy instancję konkretnej klasy submodelu.
+
=== load ===
 +
t3d.load(file: TextIO) -> Iterator[t3d.Element]
 +
Odczytuje podany plik i zwraca odczytane struktury w postaci iteratora.
 +
Przykład:
 +
import eu07_tools
 +
 +
# Zgodnie z wytycznymi, pliki powinny być kodowane w standardzie Windows-1250
 +
# oraz posiadać końce linii CRLF.
 +
with open("model.txt", "r", newline="\r\n", encoding="windows-1250") as in_file:
 +
    model_elements = eu07_tools.t3d.load(in_file)
  
Argumenty:
+
    for element in model_elements:
* '''typename''' (str) - nazwa typu submodelu (''Mesh'', ''FreeSpotLight'' lub ''Stars'')
+
        ... # tutaj bawimy się elementami
* '''name''' (str) - nazwa submodelu (wymagana)
 
 
 
=== create_include ===
 
Tworzy instancję klasy ''T3DInclude''
 
 
 
Argumenty:
 
* '''path''' (str) - ścieżka do dołączanego pliku (relatywna)
 
 
 
=== T3DElement ===
 
Klasa bazowa dla konkretnych klas reprezentujących składowe elementy modelu.
 
 
 
Atrybuty:
 
* '''datablock_type''' (str) - nazwa określająca typ elementu ("submodel", "include")
 
 
 
=== T3DInclude ===
 
Klasa reprezentująca plik włączany za pomocą dyrektywy include.
 
 
 
Atrybuty:
 
* '''dziedziczone z T3DElement'''
 
* '''path''' (str) - ścieżka relatywna do włączanego pliku
 
 
 
=== T3DSubmodel ===
 
Klasa bazowa dla konkretnych reprezentacji submodeli.
 
 
 
Atrybuty:
 
* '''dziedziczone z T3DElement'''
 
* '''parent_name''' (str) - nazwa submodelu nadrzędnego
 
* '''name''' (str) - nazwa submodelu
 
* '''anim''' (str) - nazwa typu animacji
 
* '''diffuse''' (ColorRGB) - kolor diffuse
 
* '''selfillum''' (float) - parametr selfillum
 
* '''type''' (str) - nazwa typu submodelu (Mesh, FreeSpotLight lub Stars)
 
* '''max_distance''' (float) - maksymalny promień widoczności
 
* '''min_distance''' (float) - minimalny promień widoczności
 
* '''transform''' (List[float]) - współczynniki macierzy transformacji w formie tablicy jednowymiarowej
 
 
 
=== T3DMeshSubmodel ===
 
Klasa reprezentująca submodel typu "Mesh".
 
 
 
Atrybuty:
 
* '''dziedziczone z T3DElement '''
 
* '''dziedziczone z T3DSubmodel '''
 
* '''ambient''' (ColorRGB) - kolor ambient
 
* '''specular''' (ColorRGB) - kolor specular
 
* '''wire''' (bool) - flaga trybu wireframe
 
* '''wire_size''' (float) - grubość linii w trybie wireframe
 
* '''opacity''' (float) - poziom przezroczystości
 
* '''map''' (str) - tekstura/materiał lub identyfikator skórki wymiennej
 
* '''triangles''' (List[T3DTriangle]) - lista trójkątów, tylko do odczytu!
 
 
 
== input ==
 
== output ==
 
 
 
= scn =
 
== structures ==
 
== input ==
 
== output ==
 

Wersja z 16:12, 6 sie 2019

Biblioteka eu07_tools to zestaw klas i funkcji, które w założeniu mają pomóc w pisaniu programów operujących na plikach symulatora. Jest zaimplementowana w języku Python.

Opis funckjonalności

t3d

Moduł zawierający funkcje zapisu oraz odczytu elementów modelu (submodele, include) z pliku oraz funkcje-fabryki do tworzenia tych struktur.

load

t3d.load(file: TextIO) -> Iterator[t3d.Element]

Odczytuje podany plik i zwraca odczytane struktury w postaci iteratora. Przykład:

import eu07_tools

# Zgodnie z wytycznymi, pliki powinny być kodowane w standardzie Windows-1250
# oraz posiadać końce linii CRLF.
with open("model.txt", "r", newline="\r\n", encoding="windows-1250") as in_file:
    model_elements = eu07_tools.t3d.load(in_file)
    for element in model_elements:
        ... # tutaj bawimy się elementami