Blender V4.5
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
27bool transform_single_image_check(const Strip *strip);
28bool transform_test_overlap(const Scene *scene, ListBase *seqbasep, Strip *test);
29bool transform_test_overlap(const Scene *scene, Strip *strip1, Strip *strip2);
30void transform_translate_strip(Scene *evil_scene, Strip *strip, int delta);
35 Strip *test,
36 Scene *evil_scene,
37 int channel_delta);
38bool transform_seqbase_shuffle(ListBase *seqbasep, Strip *test, Scene *evil_scene);
39bool transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
40 blender::Span<Strip *> time_dependent_strips,
41 ListBase *seqbasep,
42 Scene *evil_scene,
43 ListBase *markers,
44 bool use_sync_markers);
45bool transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
46 ListBase *seqbasep,
47 Scene *evil_scene,
48 ListBase *markers,
49 bool use_sync_markers);
50
52 ListBase *seqbasep,
53 blender::Span<Strip *> transformed_strips,
54 blender::Span<Strip *> time_dependent_strips,
55 bool use_sync_markers);
57 ListBase *seqbasep,
58 blender::Span<Strip *> transformed_strips,
59 bool use_sync_markers);
63void strip_channel_set(Strip *strip, int channel);
72void transform_offset_after_frame(Scene *scene, ListBase *seqbase, int delta, int timeline_frame);
73
78bool transform_is_locked(ListBase *channels, const Strip *strip);
79
80/* Image transformation. */
81
91 const Strip *strip);
101blender::Array<blender::float2> image_transform_quad_get(const Scene *scene,
102 const Strip *strip,
103 bool apply_rotation);
115blender::Array<blender::float2> image_transform_final_quad_get(const Scene *scene,
116 const Strip *strip);
117
120
131blender::Bounds<blender::float2> image_transform_bounding_box_from_collection(
132 Scene *scene, blender::Span<Strip *> strips, bool apply_rotation);
133
141blender::float3x3 image_transform_matrix_get(const Scene *scene, const Strip *strip);
142
143} // namespace blender::seq
struct ListBase ListBase
struct Scene Scene
struct 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)
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