| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #ifndef REMOTEAR3_SCENE_RENDER_H
- #define REMOTEAR3_SCENE_RENDER_H
- #include <glm/glm.hpp>
- #include <memory>
- class scene_render {
- public:
- scene_render();
- ~scene_render();
- using actor_token_type = void *;
- actor_token_type create_actor(const char *model_path,
- actor_token_type bg_actor = nullptr);
- static void set_actor_visibility(actor_token_type actor, bool visible);
- static void set_actor_color(actor_token_type actor,
- const float color[3], float ambient_factor = 0.2f);
- static void set_actor_alpha_factor(actor_token_type actor, float alpha_factor = 0.25f);
- static void set_actor_transform(actor_token_type actor, glm::mat4 transform);
- void set_light_direction(glm::vec3 direction);
- void set_light_follow_camera(bool enable = true);
- void set_camera_fov(float fov);
- void set_camera_clip_range(float near = 0.1f, float far = 1000.0f);
- // transform: standard camera coordinate (Z points inside image), like VTK
- void set_camera_transform(glm::mat4 transform);
- void render();
- private:
- struct impl;
- std::unique_ptr<impl> pimpl;
- };
- #endif //REMOTEAR3_SCENE_RENDER_H
|