diff options
Diffstat (limited to 'src/candy_gear.cpp')
-rw-r--r-- | src/candy_gear.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/candy_gear.cpp b/src/candy_gear.cpp index 2575e83..d0922c6 100644 --- a/src/candy_gear.cpp +++ b/src/candy_gear.cpp @@ -22,6 +22,9 @@ #include <yaml-cpp/yaml.h> +#include "rotation3d.hpp" +#include "vector3d.hpp" + static mrb_value parse_node(mrb_state *mrb, const YAML::Node &node) { @@ -57,6 +60,28 @@ parse_node(mrb_state *mrb, const YAML::Node &node) } static mrb_value +cg_mCandyGear_set_camera_position(mrb_state *mrb, mrb_value self) +{ + std::shared_ptr<glm::vec3> *camera_position; + + mrb_get_args(mrb, "d", &camera_position, &cg_vector3d_type); + cg_core.vk_graphics_pipeline->camera_position = (*camera_position); + + return self; +} + +static mrb_value +cg_mCandyGear_set_camera_rotation(mrb_state *mrb, mrb_value self) +{ + std::shared_ptr<glm::vec3> *camera_rotation; + + mrb_get_args(mrb, "d", &camera_rotation, &cg_rotation3d_type); + cg_core.vk_graphics_pipeline->camera_rotation = (*camera_rotation); + + return self; +} + +static mrb_value cg_mCandyGear_load_yaml(mrb_state *mrb, mrb_value self) { const char *file_path; @@ -109,6 +134,14 @@ cg_candy_gear_init(mrb_state *mrb) struct RClass *cg_m; cg_m = mrb_module_get(mrb, "CandyGear"); + + mrb_define_class_method( + mrb, cg_m, "camera_position=", cg_mCandyGear_set_camera_position, + MRB_ARGS_REQ(1)); + mrb_define_class_method( + mrb, cg_m, "camera_rotation=", cg_mCandyGear_set_camera_rotation, + MRB_ARGS_REQ(1)); + mrb_define_class_method( mrb, cg_m, "load_yaml", cg_mCandyGear_load_yaml, MRB_ARGS_REQ(1)); mrb_define_class_method( |