24 #include <flw/flf/models/base/Programmable.h> 25 #include <flw/flf/models/Mesh.h> 27 #include <flw/flf/loaders/modelloader/ModelLoaderTraits.h> 28 #include <flw/flf/loaders/ProgramLoader.h> 30 #include <flw/cmn/pointers/PointerProtected.h> 36 class TimedBoneUpdateCallback;
56 const std::string& shapePath,
57 const std::string& diffuseMapPath,
58 const std::string& normalMapPath =
"",
59 const std::string& specularMapPath =
"");
63 const std::string& shapePath,
75 void reloadModel(
const std::string& shapePath);
78 const std::string& path
84 void drawFR(
ICamera &camera)
override;
86 void drawPBRP(
ICamera &camera)
override;
88 void drawDR(
ICamera &camera)
override;
91 void performAnimation(GLfloat timeElapsed_us);
93 void setActiveAnimation(GLint animationID);
95 pn<Mesh> getMesh(
size_t id);
100 void log()
const override;
105 pu<ModelLoader::Animator> mAnimator;
110 GLint mUniformLocationCacheBones;
111 GLint mUniformLocationCacheBonesShadow;
112 GLint mUniformLocationCacheBonesShadowColor;
113 vecHeap<Mesh*> mMeshes;
117 void initUniformsCache();
118 void initShadowing();
121 void initAnimations(
const ModelLoader::SceneType& scene);
122 void evaluateAnimations();
123 bool isAnimated()
const override;
127 void loadNodes(
const ModelLoader::NodeType* node,
const ModelLoader::SceneType& scene,
Entity* entity);
130 const ModelLoader::NodeType* node
131 ,
const ModelLoader::SceneType& scene
139 const ModelLoader::ShapeType* shape
Per mesh material info.
Definition: Material.h:32
Base for all renderers.
Definition: IRenderer.h:42
Single GLSL 2D Texture object.
Definition: Texture2D.h:36
Loads programs.
Definition: ProgramLoader.h:37
Fillwave engine core.
Definition: Engine.h:85
Base for all Scene nodes.
Definition: Entity.h:48
Light system knows about all light related stuff.
Definition: LightSystem.h:40
Single GLSL program object.
Definition: Program.h:37
Drawable Mesh set.
Definition: Model.h:42
Stores camera view parameters.
Definition: ICamera.h:32
Entity for which is it possible to add/remove Effect objects.
Definition: Programmable.h:34