summaryrefslogtreecommitdiff
path: root/src/view_3d.cpp
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2022-12-23 15:02:39 -0300
committerFrederico Linhares <fred@linhares.blue>2022-12-23 15:02:39 -0300
commit75337ae1c59e8b2c3bc6fbcd7ccafc7a8205d6b2 (patch)
tree10b33abdf881e33ff20b7a11a789f62dd05124cf /src/view_3d.cpp
parent1cd2d838bf1682e125d52d12ac6f2960df65c7e0 (diff)
feat Add size to projections in 2D views
Diffstat (limited to 'src/view_3d.cpp')
-rw-r--r--src/view_3d.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/view_3d.cpp b/src/view_3d.cpp
index 1b733b8..92e57c9 100644
--- a/src/view_3d.cpp
+++ b/src/view_3d.cpp
@@ -38,16 +38,19 @@ static mrb_value
cg_cView3D_initialize(mrb_state *mrb, mrb_value self)
{
std::shared_ptr<glm::vec4> *region;
+ mrb_float projection_width, projection_height;
std::shared_ptr<VK::View3D> *ptr;
- mrb_get_args(mrb, "d", &region, &cg_vector_4d_type);
+ mrb_get_args(mrb, "dff", &region, &cg_vector_4d_type,
+ &projection_width, &projection_height);
ptr = (std::shared_ptr<VK::View3D>*)DATA_PTR(self);
if(ptr) mrb_free(mrb, ptr);
ptr = (std::shared_ptr<VK::View3D>*)mrb_malloc(
mrb, sizeof(std::shared_ptr<VK::View3D>));
new(ptr)std::shared_ptr<VK::View3D>(
- std::make_shared<VK::View3D>(*region->get()));
+ std::make_shared<VK::View3D>(
+ *region->get(), projection_width, projection_height));
mrb_data_init(self, ptr, &cg_view_3d_type);
return self;
@@ -86,7 +89,7 @@ cg_view_3d_init(mrb_state *mrb)
cg_cView3D = mrb_define_class_under(mrb, cg_m, "View3D", mrb->object_class);
MRB_SET_INSTANCE_TT(cg_cView3D, MRB_TT_DATA);
mrb_define_method(
- mrb, cg_cView3D, "initialize", cg_cView3D_initialize, MRB_ARGS_REQ(1));
+ mrb, cg_cView3D, "initialize", cg_cView3D_initialize, MRB_ARGS_REQ(3));
mrb_define_method(
mrb, cg_cView3D, "camera_position=", cg_cView3D_set_camera_position,
MRB_ARGS_REQ(1));