2 #ifndef GRAMODS_GRAPHICS_OBJRENDERER
3 #define GRAMODS_GRAPHICS_OBJRENDERER
5 #include <gmGraphics/Renderer.hh>
6 #include <gmGraphics/ImageTexture.hh>
8 #include <gmCore/io_eigen.hh>
9 #include <gmCore/OFactory.hh>
11 BEGIN_NAMESPACE_GMGRAPHICS;
29 Eigen::Vector3f color_ambient;
31 Eigen::Vector3f color_diffuse;
33 Eigen::Vector3f color_specular;
35 Eigen::Vector3f color_emissive;
44 std::shared_ptr<gmGraphics::ImageTexture> texture_ambient = 0;
46 std::shared_ptr<gmGraphics::ImageTexture> texture_diffuse = 0;
48 std::shared_ptr<gmGraphics::ImageTexture> texture_specular = 0;
50 std::shared_ptr<gmGraphics::ImageTexture> texture_emissive = 0;
59 void initialize()
override;
64 void render(
const Camera &camera,
const Eigen::Affine3f &Mm)
override;
72 void getNearFar(
const Camera &camera,
73 const Eigen::Affine3f &Mm,
82 void setFile(std::filesystem::path file);
90 void setRecenter(
bool on);
95 std::vector<Material> getMaterials()
const;
101 void setMaterials(
const std::vector<Material> &materials);
114 std::unique_ptr<Impl> _impl;
118 END_NAMESPACE_GMGRAPHICS;
The base of graphics Camera implementations.
Definition: Camera.hh:19
A renderer that draws an obj file.
Definition: ObjRenderer.hh:17
The base of graphics Renderer implementations.
Definition: Renderer.hh:17
Line for intersection with ray or segment.
Definition: IntersectionLine.hh:15
Definition: ObjRenderer.cpp:29
Data struct for material data used in the obj file rendering.
Definition: ObjRenderer.hh:26
float shininess
Shininess, i.e.
Definition: ObjRenderer.hh:41