Blender V5.0
SEQ_transform.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2004 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
10
11#include "BLI_array.hh"
12#include "BLI_bounds_types.hh"
14#include "BLI_span.hh"
15
16struct ListBase;
17struct Scene;
18struct Strip;
19
20namespace blender::seq {
21
28bool transform_single_image_check(const Strip *strip);
29bool transform_test_overlap(const Scene *scene, ListBase *seqbasep, Strip *test);
30bool transform_test_overlap(const Scene *scene, Strip *strip1, Strip *strip2);
31void transform_translate_strip(Scene *evil_scene, Strip *strip, int delta);
36 Strip *test,
37 Scene *evil_scene,
38 int channel_delta);
39bool transform_seqbase_shuffle(ListBase *seqbasep, Strip *test, Scene *evil_scene);
40bool transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
41 blender::Span<Strip *> time_dependent_strips,
42 ListBase *seqbasep,
43 Scene *evil_scene,
44 ListBase *markers,
45 bool use_sync_markers);
46bool transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
47 ListBase *seqbasep,
48 Scene *evil_scene,
49 ListBase *markers,
50 bool use_sync_markers);
51
53 ListBase *seqbasep,
54 blender::Span<Strip *> transformed_strips,
55 blender::Span<Strip *> time_dependent_strips,
56 bool use_sync_markers);
58 ListBase *seqbasep,
59 blender::Span<Strip *> transformed_strips,
60 bool use_sync_markers);
64void strip_channel_set(Strip *strip, int channel);
73void transform_offset_after_frame(Scene *scene, ListBase *seqbase, int delta, int timeline_frame);
74
79bool transform_is_locked(ListBase *channels, const Strip *strip);
80
81/* Image transformation. */
82
92 const Strip *strip);
93
101float2 image_transform_origin_get(const Scene *scene, const Strip *strip);
102
109float2 transform_image_raw_size_get(const Scene *scene, const Strip *strip);
110
120blender::Array<blender::float2> image_transform_quad_get(const Scene *scene,
121 const Strip *strip,
122 bool apply_rotation);
134blender::Array<blender::float2> image_transform_final_quad_get(const Scene *scene,
135 const Strip *strip);
136
139
150blender::Bounds<blender::float2> image_transform_bounding_box_from_collection(
151 Scene *scene, blender::Span<Strip *> strips, bool apply_rotation);
152
160blender::float3x3 image_transform_matrix_get(const Scene *scene, const Strip *strip);
161
162} // namespace blender::seq
struct ListBase ListBase
struct Scene Scene
struct Strip Strip
float2 transform_image_raw_size_get(const Scene *scene, const Strip *strip)
Array< float2 > image_transform_final_quad_get(const Scene *scene, const Strip *strip)
Bounds< float2 > image_transform_bounding_box_from_collection(Scene *scene, blender::Span< Strip * > strips, bool apply_rotation)
float3x3 image_transform_matrix_get(const Scene *scene, const Strip *strip)
void transform_translate_strip(Scene *evil_scene, Strip *strip, int delta)
Array< float2 > image_transform_quad_get(const Scene *scene, const Strip *strip, bool apply_rotation)
void strip_channel_set(Strip *strip, int channel)
bool transform_test_overlap(const Scene *scene, Strip *strip1, Strip *strip2)
float2 image_transform_mirror_factor_get(const Strip *strip)
bool transform_single_image_check(const Strip *strip)
bool transform_seqbase_shuffle_ex(ListBase *seqbasep, Strip *test, Scene *evil_scene, int channel_delta)
void transform_offset_after_frame(Scene *scene, ListBase *seqbase, const int delta, const int timeline_frame)
float2 image_transform_origin_offset_pixelspace_get(const Scene *scene, const Strip *strip)
float2 image_transform_origin_get(const Scene *scene, const Strip *strip)
bool transform_seqbase_shuffle_time(blender::Span< Strip * > strips_to_shuffle, ListBase *seqbasep, Scene *evil_scene, ListBase *markers, const bool use_sync_markers)
bool transform_is_locked(ListBase *channels, const Strip *strip)
void transform_handle_overlap(Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, bool use_sync_markers)
bool transform_strip_can_be_translated(const Strip *strip)
float2 image_preview_unit_to_px(const Scene *scene, const float2 co_src)
bool transform_seqbase_shuffle(ListBase *seqbasep, Strip *test, Scene *evil_scene)
float2 image_preview_unit_from_px(const Scene *scene, const float2 co_src)
VecBase< float, 2 > float2
MatBase< float, 3, 3 > float3x3