55 td2d->
loc2d =
nullptr;
68 td->
extra =
static_cast<void *
>(tdseq);
85 Strip *strip = ((TransDataSeq *)(td +
i)->extra)->strip;
86 transformed_strips.
add(strip);
100 scene, seqbasep, transformed_strips, dependant, use_sync_markers);
103 if ((custom_data->
data !=
nullptr) && custom_data->
use_free) {
104 TransSeq *ts =
static_cast<TransSeq *
>(custom_data->
data);
107 custom_data->
data =
nullptr;
120 for (
auto item : selection.
items()) {
143 ts->offset_clamp.
xmax);
144 ts->offset_clamp.
xmin =
max_ii(-max_offset, ts->offset_clamp.
xmin);
149 ts->offset_clamp.
xmin);
150 ts->offset_clamp.
xmax =
min_ii(max_offset, ts->offset_clamp.
xmax);
155 Strip *strip = item.value;
160 ts->offset_clamp.
xmax);
167 ts->offset_clamp.
xmin);
190 TransSeq *ts = MEM_new<TransSeq>(__func__);
201 for (
auto item : selection.
items()) {
218 const TransDataSeq *tdseq =
static_cast<TransDataSeq *
>(td->
extra);
219 Strip *strip = tdseq->strip;
226 float offset_clamped[2];
233 transformed_strips.
add(strip);
256 for (
Strip *strip : transformed_strips) {
MINLINE int round_fl_to_int(float a)
MINLINE int min_ii(int a, int b)
MINLINE int max_ii(int a, int b)
void unit_m3(float m[3][3])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
Read Guarded memory(de)allocation.
ItemIterator items() const &
void add_multiple(Span< Key > keys)
int64_t remove_if(Predicate &&predicate)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
int retiming_key_index_get(const Strip *strip, const SeqRetimingKey *key)
void relations_invalidate_cache(Scene *scene, Strip *strip)
bool retiming_selection_has_whole_transition(const Editing *ed, SeqRetimingKey *key)
blender::Map< SeqRetimingKey *, Strip * > retiming_selection_get(const Editing *ed)
int retiming_key_timeline_frame_get(const Scene *scene, const Strip *strip, const SeqRetimingKey *key)
bool transform_test_overlap(const Scene *scene, Strip *strip1, Strip *strip2)
Editing * editing_get(const Scene *scene)
MutableSpan< SeqRetimingKey > retiming_keys_get(const Strip *strip)
SeqRetimingKey * retiming_transition_start_get(SeqRetimingKey *key)
void query_strip_effect_chain(const Scene *scene, Strip *reference_strip, ListBase *seqbase, VectorSet< Strip * > &r_strips)
bool retiming_key_is_transition_type(const SeqRetimingKey *key)
bool retiming_data_is_editable(const Strip *strip)
void iterator_set_expand(const Scene *scene, ListBase *seqbase, VectorSet< Strip * > &strips, void strip_query_func(const Scene *scene, Strip *strip_reference, ListBase *seqbase, VectorSet< Strip * > &strips))
void retiming_key_timeline_frame_set(const Scene *scene, Strip *strip, SeqRetimingKey *key, int timeline_frame, bool keep_retiming)
void retiming_transition_key_frame_set(const Scene *scene, const Strip *strip, SeqRetimingKey *key, const int timeline_frame)
void transform_handle_overlap(Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, bool use_sync_markers)
ListBase * active_seqbase_get(const Editing *ed)
bool transform_strip_can_be_translated(const Strip *strip)
bool retiming_is_last_key(const Strip *strip, const SeqRetimingKey *key)
double original_strip_frame_index