/** ******************************************************************************* @file /gui/model/DrawModel.h @brief funkce na vykreslovani modelu @author Vajicek @version 0.1 ******************************************************************************/ #ifndef MODELDRAW_H #define MODELDRAW_H #include "gui/model/ModelRep.h" namespace gui{ /** Testovaci geometrie. Vykresli kouli. */ extern void Sphere(); /** Testovaci material. Nastavi material na pevne hodnoty. */ extern void SetMaterial_v0(); /// Vykreslovaci flagy. //@{ /// Zakaze nastavovat material pri vykreslovani. #define DRAW_NOMATERIAL 1 /// Zakaze nastavovat texturu pri vykreslovani. #define DRAW_NOTEXTURE 2 /// Zakaze nastavovat submaterial pri vykreslovani. #define DRAW_NOSUBMATERIAL 4 /// Vykresli dratenou kostru. #define DRAW_WIRE 8 /// Vykresli i neviditelne casti modelu, helpery. #define DRAW_HELPER 16 /// Nastavi texturu materialu. #define DRAW_MATERIAL_TEXTURE 32 /// Bude pri pouzivat vykreslovani pouzivat lokalni transformace. #define RIGID_TRANSFORM 64 /// Nastavi barvu materialu. #define DRAW_COLOR_MATERIAL 128 /// Prijemce stinu, modifikuje stencilbuffer. #define DRAW_SHADOWRECEIVER 256 //@} /** Nastaveni materialu. Nastavi material vcetne submaterialu a textury. @param m model z jehoz databaze se maji materialy nastavit @param material cislo materialu @param submaterial cislo submaterialu @param flags priznaky @return DRAW_MATERIAL_TEXTURE pokud material obsahoval texturu */ extern int SetMaterial_v2(TModel* m, int material, int submaterial, int flags); /** Nastaveni materialu. Nastavi material vcetne textury. @param m model z jehoz databaze se maji materialy nastavit @param i cislo materialu @param flags priznaky @return DRAW_MATERIAL_TEXTURE pokud material obsahoval texturu */ extern int SetMaterial_v1(TModel* m, int i, int flags); /** Vykresli model. Optimalizovana verze kreslici procedury, pouziva pole, zadne submaterialy. Nepouziva lokalni transformace. @param m model @param flags priznaky */ extern void DrawModel_v1(TModel* m, int flags); /** Vykresli model. Vykresli model po trojuhelnicich. Vcetne submaterialu. Pomalejsi. Nepouziva lokalni transformace. @param m model @param flags priznaky */ extern void DrawModel_v2(TModel* m, int flags); /** Vykresli model. Vykresli model podle hierarchie s lokalnimi transformacemi. Pouzije materialy. @param m model @param flags priznaky */ extern void DrawModel_v3(TModel* m, int flags); /** Vykresli instanci modelu. Vykresli model podle hierarchie s lokalnimi transformacemi. Pouzije materialy. Rozlysuje prijemce stinu a podle toho modifkuje scencil buffer. @param inst Instance modelu. @param flags Priznaky. */ extern void DrawModel_v3(TModelInstance* inst, int flags); /** Vykresli instanci modelu. Optimalizovana verze. Nerekurzi. @param inst Instance modelu. @param flags Priznaky. */ extern void DrawModel_v4(TModelInstance* inst, int flags); }//gui #endif //MODELDRAW_H /*****************************************************************************/