Blender V4.3
SEQ_transform.hh File Reference

Go to the source code of this file.

Functions

bool SEQ_transform_sequence_can_be_translated (const Sequence *seq)
 
bool SEQ_transform_single_image_check (const Sequence *seq)
 
bool SEQ_transform_test_overlap (const Scene *scene, ListBase *seqbasep, Sequence *test)
 
bool SEQ_transform_test_overlap_seq_seq (const Scene *scene, Sequence *seq1, Sequence *seq2)
 
void SEQ_transform_translate_sequence (Scene *evil_scene, Sequence *seq, int delta)
 
bool SEQ_transform_seqbase_shuffle_ex (ListBase *seqbasep, Sequence *test, Scene *evil_scene, int channel_delta)
 
bool SEQ_transform_seqbase_shuffle (ListBase *seqbasep, Sequence *test, Scene *evil_scene)
 
bool SEQ_transform_seqbase_shuffle_time (blender::Span< Sequence * > strips_to_shuffle, blender::Span< Sequence * > time_dependent_strips, ListBase *seqbasep, Scene *evil_scene, ListBase *markers, bool use_sync_markers)
 
bool SEQ_transform_seqbase_shuffle_time (blender::Span< Sequence * > strips_to_shuffle, ListBase *seqbasep, Scene *evil_scene, ListBase *markers, bool use_sync_markers)
 
void SEQ_transform_handle_overlap (Scene *scene, ListBase *seqbasep, blender::Span< Sequence * > transformed_strips, blender::Span< Sequence * > time_dependent_strips, bool use_sync_markers)
 
void SEQ_transform_handle_overlap (Scene *scene, ListBase *seqbasep, blender::Span< Sequence * > transformed_strips, bool use_sync_markers)
 
bool SEQ_transform_seqbase_isolated_sel_check (ListBase *seqbase)
 
void SEQ_transform_offset_after_frame (Scene *scene, ListBase *seqbase, int delta, int timeline_frame)
 
bool SEQ_transform_is_locked (ListBase *channels, const Sequence *seq)
 
void SEQ_image_transform_mirror_factor_get (const Sequence *seq, float r_mirror[2])
 
void SEQ_image_transform_origin_offset_pixelspace_get (const Scene *scene, const Sequence *seq, float r_origin[2])
 
void SEQ_image_transform_quad_get (const Scene *scene, const Sequence *seq, bool apply_rotation, float r_quad[4][2])
 
void SEQ_image_transform_final_quad_get (const Scene *scene, const Sequence *seq, float r_quad[4][2])
 
void SEQ_image_preview_unit_to_px (const Scene *scene, const float co_src[2], float co_dst[2])
 
void SEQ_image_preview_unit_from_px (const Scene *scene, const float co_src[2], float co_dst[2])
 
void SEQ_image_transform_bounding_box_from_collection (Scene *scene, blender::Span< Sequence * > strips, bool apply_rotation, float r_min[2], float r_max[2])
 

Function Documentation

◆ SEQ_image_preview_unit_from_px()

void SEQ_image_preview_unit_from_px ( const Scene * scene,
const float co_src[2],
float co_dst[2] )

Definition at line 719 of file strip_transform.cc.

Referenced by sequencer_set_2d_cursor_exec().

◆ SEQ_image_preview_unit_to_px()

void SEQ_image_preview_unit_to_px ( const Scene * scene,
const float co_src[2],
float co_dst[2] )

◆ SEQ_image_transform_bounding_box_from_collection()

void SEQ_image_transform_bounding_box_from_collection ( Scene * scene,
blender::Span< Sequence * > strips,
bool apply_rotation,
float r_min[2],
float r_max[2] )

Get viewport axis aligned bounding box from a collection of sequences. The collection must have one or more strips

Parameters
sceneScene in which strips are located
stripsCollection of strips to get the bounding box from
apply_rotationInclude sequence rotation transform in the bounding box calculation
r_minMinimum x and y values
r_maxMaximum x and y values

Definition at line 725 of file strip_transform.cc.

References INIT_MINMAX2, minmax_v2v2_v2(), quad, and SEQ_image_transform_quad_get().

Referenced by gizmo2d_calc_bounds(), and seq_view_collection_rect_preview().

◆ SEQ_image_transform_final_quad_get()

void SEQ_image_transform_final_quad_get ( const Scene * scene,
const Sequence * seq,
float r_quad[4][2] )

Get 4 corner points of strip image. Corner vectors are in viewport space.

Parameters
sceneScene in which strips are located
seqSequence to calculate transformed image quad
r_quadarray of 4 2D vectors

Definition at line 706 of file strip_transform.cc.

References seq_image_transform_quad_get_ex().

Referenced by get_strip_screen_quad(), seq_box_select_rect_image_isect(), seq_draw_image_origin_and_outline(), seq_point_image_isect(), seq_snap_source_points_build_preview(), and seq_snap_target_points_build_preview().

◆ SEQ_image_transform_mirror_factor_get()

void SEQ_image_transform_mirror_factor_get ( const Sequence * seq,
float r_mirror[2] )

◆ SEQ_image_transform_origin_offset_pixelspace_get()

void SEQ_image_transform_origin_offset_pixelspace_get ( const Scene * scene,
const Sequence * seq,
float r_origin[2] )

Get strip transform origin offset from image center NOTE: This function does not apply axis mirror.

Parameters
sceneScene in which strips are located
seqSequence to calculate image transform origin
r_originreturn value

Definition at line 619 of file strip_transform.cc.

References mul_v2_v2(), StripElem::orig_height, StripElem::orig_width, SEQ_image_transform_mirror_factor_get(), Sequence::strip, Strip::stripdata, Strip::transform, and StripTransform::xofs.

Referenced by seq_draw_image_origin_and_outline(), seq_get_strip_pivot_median(), seq_select_seq_from_preview(), seq_snap_source_points_build_preview(), seq_snap_target_points_build_preview(), and SeqToTransData().

◆ SEQ_image_transform_quad_get()

void SEQ_image_transform_quad_get ( const Scene * scene,
const Sequence * seq,
bool apply_rotation,
float r_quad[4][2] )

Get 4 corner points of strip image, optionally without rotation component applied. Corner vectors are in viewport space.

Parameters
sceneScene in which strips are located
seqSequence to calculate transformed image quad
apply_rotationApply sequence rotation transform to the quad
r_quadarray of 4 2D vectors

Definition at line 698 of file strip_transform.cc.

References seq_image_transform_quad_get_ex().

Referenced by SEQ_image_transform_bounding_box_from_collection().

◆ SEQ_transform_handle_overlap() [1/2]

◆ SEQ_transform_handle_overlap() [2/2]

void SEQ_transform_handle_overlap ( Scene * scene,
ListBase * seqbasep,
blender::Span< Sequence * > transformed_strips,
bool use_sync_markers )

◆ SEQ_transform_is_locked()

◆ SEQ_transform_offset_after_frame()

void SEQ_transform_offset_after_frame ( Scene * scene,
ListBase * seqbase,
int delta,
int timeline_frame )

Move strips and markers (if not locked) that start after timeline_frame by delta frames

Parameters
sceneScene in which strips are located
seqbaseListBase in which strips are located
deltaoffset in frames to be applied
timeline_frameframe on timeline from where strips are moved

Definition at line 578 of file strip_transform.cc.

References LISTBASE_FOREACH, SEQ_relations_invalidate_cache_preprocessed(), SEQ_time_left_handle_frame_get(), and SEQ_transform_translate_sequence().

Referenced by SEQ_edit_remove_gaps(), and sequencer_gap_insert_exec().

◆ SEQ_transform_seqbase_isolated_sel_check()

bool SEQ_transform_seqbase_isolated_sel_check ( ListBase * seqbase)

Check if the selected seq's reference unselected seq's.

Definition at line 38 of file strip_transform.cc.

References LISTBASE_FOREACH, SELECT, and SEQ_TYPE_EFFECT.

Referenced by sequencer_clipboard_copy_exec(), and sequencer_meta_make_exec().

◆ SEQ_transform_seqbase_shuffle()

◆ SEQ_transform_seqbase_shuffle_ex()

bool SEQ_transform_seqbase_shuffle_ex ( ListBase * seqbasep,
Sequence * test,
Scene * evil_scene,
int channel_delta )

◆ SEQ_transform_seqbase_shuffle_time() [1/2]

bool SEQ_transform_seqbase_shuffle_time ( blender::Span< Sequence * > strips_to_shuffle,
blender::Span< Sequence * > time_dependent_strips,
ListBase * seqbasep,
Scene * evil_scene,
ListBase * markers,
bool use_sync_markers )

◆ SEQ_transform_seqbase_shuffle_time() [2/2]

bool SEQ_transform_seqbase_shuffle_time ( blender::Span< Sequence * > strips_to_shuffle,
ListBase * seqbasep,
Scene * evil_scene,
ListBase * markers,
bool use_sync_markers )

◆ SEQ_transform_sequence_can_be_translated()

bool SEQ_transform_sequence_can_be_translated ( const Sequence * seq)

◆ SEQ_transform_single_image_check()

bool SEQ_transform_single_image_check ( const Sequence * seq)

Used so we can do a quick check for single image seq since they work a bit differently to normal image seq's (during transform).

Definition at line 33 of file strip_transform.cc.

References Sequence::flag, and SEQ_SINGLE_FRAME_CONTENT.

Referenced by SEQ_give_frame_index(), SEQ_time_left_handle_frame_set(), and strip_draw_context_get().

◆ SEQ_transform_test_overlap()

◆ SEQ_transform_test_overlap_seq_seq()

bool SEQ_transform_test_overlap_seq_seq ( const Scene * scene,
Sequence * seq1,
Sequence * seq2 )

◆ SEQ_transform_translate_sequence()