summaryrefslogtreecommitdiff
path: root/src/candy_gear.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/candy_gear.cpp')
-rw-r--r--src/candy_gear.cpp33
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(