#include <model.h>
Public Member Functions | |
Model (Machine *parent) | |
virtual | ~Model () |
Machine * | getParent () |
void | addChild (CellSpace *child) |
void | removeChild (CellSpace *child) |
virtual void | run (CellSpace *pattern, int which, int iteration=1)=0 |
virtual int | getCellSize ()=0 |
virtual void | loadSource ()=0 |
virtual void | renderToTexture (CellSpace *pattern, int which, cl_mem tex)=0 |
Protected Member Functions | |
cl_int | build (string source, string options) |
Protected Attributes | |
cl_kernel | kernel |
cl_kernel | render_kernel |
Machine * | parent |
Model::Model | ( | Machine * | parent | ) |
Model::~Model | ( | ) | [virtual] |
void Model::addChild | ( | CellSpace * | child | ) |
Zaregistruje potomka.
child | ukazovatel na potomka ktory sa ma pridat. |
cl_int Model::build | ( | string | source, | |
string | options | |||
) | [protected] |
Vytvori program pre model a kernel. Zostvy program z predaneho zdrojoveho kodu. Ten musi definovat dva kernel. takeStep a renderToTexture ktore su potom pouzivane.
source | zdrojovy kod modelu | |
options | volitelne volby kompilacie |
virtual int Model::getCellSize | ( | ) | [pure virtual] |
Implemented in SynchronousModel.
Machine* Model::getParent | ( | ) | [inline] |
virtual void Model::loadSource | ( | ) | [pure virtual] |
v tejto metode by sa mal vytvorit zdrojovy kod kernel a nasledne zavolat this->build() pre jeho skompletovanie
Implemented in SynchronousModel.
void Model::removeChild | ( | CellSpace * | child | ) |
Odstrani potomka zo zoznamu. Treba ho nasledne vymazat osobitne.
virtual void Model::renderToTexture | ( | CellSpace * | pattern, | |
int | which, | |||
cl_mem | tex | |||
) | [pure virtual] |
Metoda by mala nastavit parametre kernel pre vykreslenie do buffera.
pattern | potom z ktoreho sa ma kreslit | |
which | ktory z dvojice sa ma vykreslit | |
tex | buffer do ktoreho sa bude kreslit |
Implemented in SynchronousModel.
virtual void Model::run | ( | CellSpace * | pattern, | |
int | which, | |||
int | iteration = 1 | |||
) | [pure virtual] |
Tato metoda by mala nastavit parametre pre kernel a následne zavolat parent->run()
pattern | ukazovatel na potomka obsahujuci stav modelu | |
which | vypocet bude prebiehat iterativne kedy sa zo stareho stavu vyratava novy. tento parameter urcuje ktory je ktory | |
iteration | kolko krat sa ma spustit kernel. pocas nich musi metoda preklapat which medzi 0 a 1 |
Implemented in SynchronousModel.
cl_kernel Model::kernel [protected] |
Machine* Model::parent [protected] |
cl_kernel Model::render_kernel [protected] |