Merge branch 'master' into blender2.8
This commit is contained in:
@@ -130,6 +130,8 @@ int BKE_scene_camera_switch_update(struct Scene *scene);
|
|||||||
char *BKE_scene_find_marker_name(struct Scene *scene, int frame);
|
char *BKE_scene_find_marker_name(struct Scene *scene, int frame);
|
||||||
char *BKE_scene_find_last_marker_name(struct Scene *scene, int frame);
|
char *BKE_scene_find_last_marker_name(struct Scene *scene, int frame);
|
||||||
|
|
||||||
|
int BKE_scene_frame_snap_by_seconds(struct Scene *scene, double interval_in_seconds, int cfra);
|
||||||
|
|
||||||
/* checks for cycle, returns 1 if it's all OK */
|
/* checks for cycle, returns 1 if it's all OK */
|
||||||
bool BKE_scene_validate_setscene(struct Main *bmain, struct Scene *sce);
|
bool BKE_scene_validate_setscene(struct Main *bmain, struct Scene *sce);
|
||||||
|
|
||||||
|
|||||||
@@ -1207,6 +1207,16 @@ char *BKE_scene_find_last_marker_name(Scene *scene, int frame)
|
|||||||
return best_marker ? best_marker->name : NULL;
|
return best_marker ? best_marker->name : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int BKE_scene_frame_snap_by_seconds(Scene *scene, double interval_in_seconds, int cfra)
|
||||||
|
{
|
||||||
|
const int fps = round_db_to_int(FPS * interval_in_seconds);
|
||||||
|
const int second_prev = cfra - mod_i(cfra, fps);
|
||||||
|
const int second_next = second_prev + fps;
|
||||||
|
const int delta_prev = cfra - second_prev;
|
||||||
|
const int delta_next = second_next - cfra;
|
||||||
|
return (delta_prev < delta_next) ? second_prev : second_next;
|
||||||
|
}
|
||||||
|
|
||||||
void BKE_scene_remove_rigidbody_object(struct Main *bmain, Scene *scene, Object *ob)
|
void BKE_scene_remove_rigidbody_object(struct Main *bmain, Scene *scene, Object *ob)
|
||||||
{
|
{
|
||||||
/* remove rigid body constraint from world before removing object */
|
/* remove rigid body constraint from world before removing object */
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "BKE_global.h"
|
#include "BKE_global.h"
|
||||||
#include "BKE_main.h"
|
#include "BKE_main.h"
|
||||||
#include "BKE_sound.h"
|
#include "BKE_sound.h"
|
||||||
|
#include "BKE_scene.h"
|
||||||
|
|
||||||
#include "UI_view2d.h"
|
#include "UI_view2d.h"
|
||||||
|
|
||||||
@@ -98,9 +99,14 @@ static void change_frame_apply(bContext *C, wmOperator *op)
|
|||||||
float frame = RNA_float_get(op->ptr, "frame");
|
float frame = RNA_float_get(op->ptr, "frame");
|
||||||
bool do_snap = RNA_boolean_get(op->ptr, "snap");
|
bool do_snap = RNA_boolean_get(op->ptr, "snap");
|
||||||
|
|
||||||
if (do_snap && CTX_wm_space_seq(C)) {
|
if (do_snap) {
|
||||||
|
if (CTX_wm_space_seq(C)) {
|
||||||
frame = BKE_sequencer_find_next_prev_edit(scene, frame, SEQ_SIDE_BOTH, true, false, false);
|
frame = BKE_sequencer_find_next_prev_edit(scene, frame, SEQ_SIDE_BOTH, true, false, false);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
frame = BKE_scene_frame_snap_by_seconds(scene, 1.0, frame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* set the new frame number */
|
/* set the new frame number */
|
||||||
if (scene->r.flag & SCER_SHOW_SUBFRAME) {
|
if (scene->r.flag & SCER_SHOW_SUBFRAME) {
|
||||||
|
|||||||
Reference in New Issue
Block a user