#include <ControllerPriorityMixer.h>


Classes | |
| struct | MIX_NODE |
Public Member Functions | |
| CControllerPriorityMixer (const std::string &name) | |
| virtual | ~CControllerPriorityMixer (void) |
| bool | IsEmpty () |
| void | RegisterController (CntType *cnt, float *weight, char priority) |
| void | UnRegisterController (CntType *cnt) |
| void | Normalize () |
| ParamType * | GetParameter () |
| virtual void | Update (float dt) |
| CNTRL_CLASS_NAME (CControllerMixer) | |
Protected Attributes | |
| std::vector< MIX_NODE > | m_controllers |
| seznam zaregistrovanych controlleru, serazene podle priority | |
| ParamType | m_accumulated_param |
| hodnota parametru | |
Slouzi k michani controlleru. Vsechny zaregistrovane controllery jsou serazeny podle priority.
Odstranuje pripadne nedostatky neprioritniho mixeru.
CntType = typ controlleru
ParamType = typ parametru
| CControllerPriorityMixer< CntType, ParamType >::CControllerPriorityMixer | ( | const std::string & | name | ) |
Konstruktor
| name | nazev controlleru |
| CControllerPriorityMixer< CntType, ParamType >::~CControllerPriorityMixer | ( | void | ) | [virtual] |
Destruktor
| ParamType * CControllerPriorityMixer< CntType, ParamType >::GetParameter | ( | ) | [inline] |
Ziskani parametru
| bool CControllerPriorityMixer< CntType, ParamType >::IsEmpty | ( | ) | [inline] |
Zjisteni zda jsou v zaregistrovany nejake controllery
| void CControllerPriorityMixer< CntType, ParamType >::Normalize | ( | ) |
Normalizace vah, tak aby soucet vsech vah byl 1
| void CControllerPriorityMixer< CntType, ParamType >::RegisterController | ( | CntType * | cnt, |
| float * | weight, | ||
| char | priority | ||
| ) |
Zaregistruje novy controller. Vaha je udavana jako ukazatel, na ktery muze byt navazan jiny controller.
Vaha muze byt vetsi nez 1. Takovy controller prevezme uplnou okntrolu nad hodnotou parametru. (Pokud tedy bude dostatek zbyvajici vahy) Lze registrovat je controllery, ktere maji stejny parametr jako prvni zaregistrovany.
Controller bude zarazen na misto v seznamu podle sve priority.
| cnt | ukazatel na controller |
| weight | ukazatel na vahu |
| priority | priorita |
| void CControllerPriorityMixer< CntType, ParamType >::UnRegisterController | ( | CntType * | cnt | ) |
Odregistruje controller
| cnt | ukazatel na controller, ktery ma byt odebran, pokud neexistuje nic se neprovede |
| void CControllerPriorityMixer< CntType, ParamType >::Update | ( | float | dt | ) | [virtual] |
Aktualizace controlleru, u vsech controlleru se zavola update a takto nove vznikle hodnoty parametru se linearne smichaji.
Pouziva se zbyvajici vaha, ktera se na zacatku rovna 1 a postupne jak se zprocovavaji controllery se od ni odecita vaha daneho
controlleru. Pokud je vaha = 0, update metoda konci a to i kdyby nebyly zpracovany vsechny controllery.
| dt |
Implements CController.
Reimplemented in CControllerPriorityMixerSlerp< CntType >.
1.8.0