Ankieta

Jak adresować submodele?

Nie wiem o co chodzi/jest mi to obojętne.
22 (45.8%)
model.submodel
12 (25%)
submodel@model
5 (10.4%)
model->submodel
2 (4.2%)
model[submodel]
0 (0%)
model.submodels.submodel
4 (8.3%)
model.submodels[submodel]
3 (6.3%)

Głosów w sumie: 48

Autor Wątek:  Konwencja odwołań do submodeli  (Przeczytany 3837 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6301
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 330
Konwencja odwołań do submodeli
« dnia: 05 Stycznia 2014, 13:47:01 »
Potrzeba taka występuje w paru przypadkach, jednak obecnie jest to potrzebne dla eventu wykonywanego po zakończeniu animacji submodelu. Niby można równocześnie z uruchomieniem animacji modelu dodać do kolejki event z odpowiednim opóźnieniem, ale trzeba to opóźnienie dobrać lub policzyć, co się nie sprawdza, jeśli istnieje możliwość przedłużenia lub zmiany kierunku animacji.

Przykładowo, czas ruchu obrotnicy zależy od jej aktualnego i docelowego położenia, a do tego obsługując obrotnicę ręcznie można zadać jej nową pozycję zanim osiągnie poprzednio zadaną. Wyliczanie z góry czasu trwania tego ruchu było by dosyć karkołomne. Podobna sytuacja jest w przypadku zapór, które mogą być opuszczone zaraz po lekkim podniesieniu, albo ponownie podniesione, gdy już rozpoczęto ich opuszczanie.

Dlatego wczoraj dodałem opcję generowania eventu po zakończeniu animacji. Event ten jest generowany przez submodel, który podlega animacji. Ponieważ w modelu może być wiele animowanych submodeli, nazwa eventu musi zawierać nazwę modelu oraz nazwę submodelu. Na początek utworzyłem nazwę o postaci model.submodel:done, gdzie "model" oraz "submodel" są odpowiednimi nazwami obiektów, a ":done" jest końcówką związaną z zakończeniem animacji. Niemniej równie dobrze mogła by być używana nazwa submodel@model:done albo model->submodel:done.

Być może ktoś ma lepsze propozycje, to dodam je do ankiety.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Konwencja odwołań do submodeli
« Odpowiedź #1 dnia: 06 Stycznia 2014, 12:08:07 »
Nie mogę zagłosować - dostaję:
Cytuj
Weryfikacja sesji nie powiodła się. Wyloguj i zaloguj się ponownie, a potem spróbuj jeszcze raz.
Po przelogowaniu jest tak samo.
Zagłosować chciałem na opcję model.submodels.submodel - wydaje się bardziej rozwojowe niż model.submodel (może kiedyś pojawi się konieczność interakcji innych elementów modelu niż tylko submodele?). A kropka to już chyba skrzywienie zawodowe... :)

  Dodano: 06 Stycznia 2014, 12:09:17
Oo, jednak udało mi się zagłosować...
« Ostatnia zmiana: 06 Stycznia 2014, 12:09:17 wysłana przez muri »

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6301
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 330
Odp: Konwencja odwołań do submodeli
« Odpowiedź #2 dnia: 06 Stycznia 2014, 21:15:31 »
Własności modelu niebędące submodelami można np. poprzedzić znakiem @, czyli model.@visible albo użyć wtedy -> zamiast kropki, czyli model->visible. A model.visible oznaczałby wtedy submodel o nazwie visible, chociaż pewnie by to wprowadzało zamieszanie. Modyfikowanie własności modeli jest na razie nie odległą perspektywą.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline Quark-t

  • Administrator
  • Wiadomości: 3590
  • Automaty liczą...
    • Zobacz profil
  • Otrzymane polubienia: 47
Odp: Konwencja odwołań do submodeli
« Odpowiedź #3 dnia: 06 Stycznia 2014, 21:47:51 »
A nie prościej submodel@model (czyli submodel AT model) i model.własność? Robienie miksów z oznaczeń skończy się czymś w stylu model.!@#$%^cośtam…
Pozdrawiam, dr inż. Quark-t

Offline ryba825

  • Wiadomości: 83
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Konwencja odwołań do submodeli
« Odpowiedź #4 dnia: 06 Stycznia 2014, 21:58:46 »
To może bardziej obiektowo?
model.własność
model.submodels[submodel] lub model.submodels.submodel
model.submodels[submodel].własność lub model.submodels.submodel.własność
Wygląda karkołomnie, ale jest proste i nie wprowadza dodatkowych znaków. Wystarczy wiedzieć, że model ma kolekcję submodeli, które mają własności. Poza tym jest pewna hierarchia i jest pewnie, że to co jest w model.submodels to submodel, a nie własność modelu.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6301
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 330
Odp: Konwencja odwołań do submodeli
« Odpowiedź #5 dnia: 06 Stycznia 2014, 22:28:48 »
To jest propozycja, która może się rozwinąć w różne strony. Ja jestem zwolennikiem oznaczeń krótkich i czytelnych dla większości.

  Dodano: 06 Stycznia 2014, 23:12:07
Idąc np. w stronę Lua, można by zrobić model.sub["submodel"].done(), przyjmując że słowo event ma podobne znaczenie, co function, tylko nieco inną składnię dalej...
« Ostatnia zmiana: 06 Stycznia 2014, 23:12:07 wysłana przez Ra »
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni