scene_render.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef REMOTEAR3_SCENE_RENDER_H
  2. #define REMOTEAR3_SCENE_RENDER_H
  3. #include <glm/glm.hpp>
  4. #include <memory>
  5. class scene_render {
  6. public:
  7. scene_render();
  8. ~scene_render();
  9. using actor_token_type = void *;
  10. actor_token_type create_actor(const char *model_path,
  11. actor_token_type bg_actor = nullptr);
  12. static void set_actor_visibility(actor_token_type actor, bool visible);
  13. static void set_actor_color(actor_token_type actor,
  14. const float color[3], float ambient_factor = 0.2f);
  15. static void set_actor_alpha_factor(actor_token_type actor, float alpha_factor = 0.25f);
  16. static void set_actor_transform(actor_token_type actor, glm::mat4 transform);
  17. void set_light_direction(glm::vec3 direction);
  18. void set_light_follow_camera(bool enable = true);
  19. void set_camera_fov(float fov);
  20. void set_camera_clip_range(float near = 0.1f, float far = 1000.0f);
  21. // transform: standard camera coordinate (Z points inside image), like VTK
  22. void set_camera_transform(glm::mat4 transform);
  23. void render();
  24. private:
  25. struct impl;
  26. std::unique_ptr<impl> pimpl;
  27. };
  28. #endif //REMOTEAR3_SCENE_RENDER_H