static void blender_camera_view_subset(BL::RenderEngine& b_engine, BL::RenderSettings& b_render, BL::Scene& b_scene, BL::Object& b_ob, BL::SpaceView3D& b_v3d, BL::RegionView3D& b_rv3d, int width, int height, BoundBox2D *view_box, BoundBox2D *cam_box) { BoundBox2D cam, view; float view_aspect, cam_aspect, sensor_size; /* get viewport viewplane */ BlenderCamera view_bcam; blender_camera_init(&view_bcam, b_render); blender_camera_from_view(&view_bcam, b_engine, b_scene, b_v3d, b_rv3d, width, height, true); blender_camera_viewplane(&view_bcam, width, height, &view, &view_aspect, &sensor_size); /* get camera viewplane */ BlenderCamera cam_bcam; blender_camera_init(&cam_bcam, b_render); blender_camera_from_object(&cam_bcam, b_engine, b_ob, true); blender_camera_viewplane(&cam_bcam, cam_bcam.full_width, cam_bcam.full_height, &cam, &cam_aspect, &sensor_size); /* return */ *view_box = view * (1.0f/view_aspect); *cam_box = cam * (1.0f/cam_aspect); }
void BlenderSync::sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height) { BlenderCamera bcam; blender_camera_init(&bcam, b_scene); blender_camera_from_view(&bcam, b_scene, b_v3d, b_rv3d, width, height); blender_camera_border(&bcam, b_scene, b_v3d, b_rv3d, width, height); blender_camera_sync(scene->camera, &bcam, width, height); }
void BlenderSync::sync_view(BL::SpaceView3D& b_v3d, BL::RegionView3D& b_rv3d, int width, int height) { BlenderCamera bcam; BL::RenderSettings b_render_settings(b_scene.render()); blender_camera_init(&bcam, b_render_settings); blender_camera_from_view(&bcam, b_engine, b_scene, b_v3d, b_rv3d, width, height); blender_camera_border(&bcam, b_engine, b_render_settings, b_scene, b_v3d, b_rv3d, width, height); blender_camera_sync(scene->camera, &bcam, width, height); }