Blender  V3.3
Classes | Typedefs | Functions
transform_snap_sequencer.c File Reference
#include <stdlib.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BKE_context.h"
#include "ED_screen.h"
#include "ED_transform.h"
#include "UI_view2d.h"
#include "SEQ_channels.h"
#include "SEQ_effects.h"
#include "SEQ_iterator.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "SEQ_sequencer.h"
#include "SEQ_time.h"
#include "transform.h"
#include "transform_convert.h"
#include "transform_snap.h"

Go to the source code of this file.

Classes

struct  TransSeqSnapData
 

Typedefs

typedef struct TransSeqSnapData TransSeqSnapData
 

Functions

TransSeqSnapData * transform_snap_sequencer_data_alloc (const TransInfo *t)
 
void transform_snap_sequencer_data_free (TransSeqSnapData *data)
 
bool transform_snap_sequencer_calc (TransInfo *t)
 
void transform_snap_sequencer_apply_translate (TransInfo *t, float *vec)
 
static int transform_snap_sequencer_to_closest_strip_ex (TransInfo *t, int frame_1, int frame_2)
 
bool ED_transform_snap_sequencer_to_closest_strip_calc (Scene *scene, ARegion *region, int frame_1, int frame_2, int *r_snap_distance, float *r_snap_frame)
 
void ED_draw_sequencer_snap_point (struct bContext *C, float snap_point)
 
Snap sources
static int seq_get_snap_source_points_len (SeqCollection *snap_sources)
 
static void seq_snap_source_points_alloc (TransSeqSnapData *snap_data, SeqCollection *snap_sources)
 
static int cmp_fn (const void *a, const void *b)
 
static void seq_snap_source_points_build (const Scene *scene, TransSeqSnapData *snap_data, SeqCollection *snap_sources)
 
Snap targets
static void query_strip_effects_fn (const Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection)
 
static SeqCollection * seq_collection_extract_effects (SeqCollection *collection)
 
static SeqCollection * query_snap_targets (Scene *scene, SeqCollection *snap_sources, bool exclude_selected)
 
static int seq_get_snap_target_points_count (short snap_mode, SeqCollection *snap_targets)
 
static void seq_snap_target_points_alloc (short snap_mode, TransSeqSnapData *snap_data, SeqCollection *snap_targets)
 
static void seq_snap_target_points_build (Scene *scene, short snap_mode, TransSeqSnapData *snap_data, SeqCollection *snap_targets)
 
Snap utilities
static int seq_snap_threshold_get_frame_distance (const TransInfo *t)
 

Typedef Documentation

◆ TransSeqSnapData

Function Documentation

◆ cmp_fn()

static int cmp_fn ( const void *  a,
const void *  b 
)
static

◆ ED_draw_sequencer_snap_point()

void ED_draw_sequencer_snap_point ( struct bContext *  C,
float  snap_point 
)

Definition at line 387 of file transform_snap_sequencer.c.

References C, drawSnapping(), MOD_SNAP, POINT_INIT, SPACE_SEQ, t, TARGET_INIT, and TFM_SEQ_SLIDE.

Referenced by draw_seq_in_view().

◆ ED_transform_snap_sequencer_to_closest_strip_calc()

bool ED_transform_snap_sequencer_to_closest_strip_calc ( struct Scene *  scene,
struct ARegion *  region,
int  frame_1,
int  frame_2,
int *  r_snap_distance,
float *  r_snap_frame 
)

Iterates over all the strips and finds the closest snapping candidate of either frame_1 or frame_2. The closest snapping candidate will be the closest start or end frame of an existing strip.

Returns
True if there was anything to snap to.

Definition at line 368 of file transform_snap_sequencer.c.

References scene, SEQ_tool_settings_snap_mode_get(), t, TransConvertType_Sequencer, transform_snap_sequencer_to_closest_strip_ex(), and validSnap().

Referenced by update_overlay_strip_position_data().

◆ query_snap_targets()

static SeqCollection* query_snap_targets ( Scene *  scene,
SeqCollection *  snap_sources,
bool  exclude_selected 
)
static

◆ query_strip_effects_fn()

static void query_strip_effects_fn ( const Scene *  scene,
Sequence *  seq_reference,
ListBase *  seqbase,
SeqCollection *  collection 
)
static

◆ seq_collection_extract_effects()

static SeqCollection* seq_collection_extract_effects ( SeqCollection *  collection)
static

◆ seq_get_snap_source_points_len()

static int seq_get_snap_source_points_len ( SeqCollection *  snap_sources)
static

Definition at line 45 of file transform_snap_sequencer.c.

References SEQ_collection_len().

Referenced by seq_snap_source_points_alloc().

◆ seq_get_snap_target_points_count()

static int seq_get_snap_target_points_count ( short  snap_mode,
SeqCollection *  snap_targets 
)
static

◆ seq_snap_source_points_alloc()

static void seq_snap_source_points_alloc ( TransSeqSnapData *  snap_data,
SeqCollection *  snap_sources 
)
static

◆ seq_snap_source_points_build()

static void seq_snap_source_points_build ( const Scene *  scene,
TransSeqSnapData *  snap_data,
SeqCollection *  snap_sources 
)
static

◆ seq_snap_target_points_alloc()

static void seq_snap_target_points_alloc ( short  snap_mode,
TransSeqSnapData *  snap_data,
SeqCollection *  snap_targets 
)
static

◆ seq_snap_target_points_build()

static void seq_snap_target_points_build ( Scene *  scene,
short  snap_mode,
TransSeqSnapData *  snap_data,
SeqCollection *  snap_targets 
)
static

◆ seq_snap_threshold_get_frame_distance()

static int seq_snap_threshold_get_frame_distance ( const TransInfo *  t)
static

◆ transform_snap_sequencer_apply_translate()

void transform_snap_sequencer_apply_translate ( TransInfo *  t,
float *  vec 
)

◆ transform_snap_sequencer_calc()

bool transform_snap_sequencer_calc ( TransInfo *  t)

◆ transform_snap_sequencer_data_alloc()

TransSeqSnapData* transform_snap_sequencer_data_alloc ( const TransInfo *  t)

◆ transform_snap_sequencer_data_free()

void transform_snap_sequencer_data_free ( TransSeqSnapData *  data)

Definition at line 279 of file transform_snap_sequencer.c.

References data, and MEM_freeN.

Referenced by freeSnapping(), and transform_snap_sequencer_to_closest_strip_ex().

◆ transform_snap_sequencer_to_closest_strip_ex()

static int transform_snap_sequencer_to_closest_strip_ex ( TransInfo *  t,
int  frame_1,
int  frame_2 
)
static