Model Class Reference

#include <model.h>

Inheritance diagram for Model:

AsynchronousModel SynchronousModel

List of all members.

Public Member Functions

 Model (Machine *parent)
virtual ~Model ()
MachinegetParent ()
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_program program
vector< CellSpace * > patterns
cl_kernel kernel
cl_kernel render_kernel
Machineparent


Detailed Description

Abstraktna trieda poskytujuca jednotne rozhranie na pracu s roznymi modelmi. Trieda ktora bude dedit musi implementovat tieto metody: void run(CellSpace *pattern, int which, int iteration = 1); int getCellSize(); void loadSource(); void renderToTexture(CellSpace *pattern, int which, cl_mem tex);

Constructor & Destructor Documentation

Model::Model ( Machine parent  ) 

Model::~Model (  )  [virtual]


Member Function Documentation

void Model::addChild ( CellSpace child  ) 

Zaregistruje potomka.

Parameters:
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.

Parameters:
source zdrojovy kod modelu
options volitelne volby kompilacie

virtual int Model::getCellSize (  )  [pure virtual]

Returns:
pocet bajtov ktore zabera reprezentacia zdvojenie jednej bunky.

Implemented in SynchronousModel, and AsynchronousModel.

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, and AsynchronousModel.

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.

Parameters:
pattern potom z ktoreho sa ma kreslit
which ktory z dvojice sa ma vykreslit
tex buffer do ktoreho sa bude kreslit

Implemented in SynchronousModel, and AsynchronousModel.

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()

Parameters:
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, and AsynchronousModel.


Member Data Documentation

cl_kernel Model::kernel [protected]

Machine* Model::parent [protected]

vector<CellSpace*> Model::patterns [protected]

cl_program Model::program [protected]

cl_kernel Model::render_kernel [protected]


The documentation for this class was generated from the following files:

Generated on Tue May 11 22:08:03 2010 for Cellula by  doxygen 1.5.8