19 if (strip ==
nullptr) {
44 Strip *other = con_strip->strip_ref;
46 if (con_other->strip_ref == strip) {
48 MEM_delete(con_other);
61 for (
Strip *strip : strip_list) {
70 if (strip ==
nullptr) {
74 Strip *other = con_strip->strip_ref;
75 bool is_one_way =
true;
77 if (con_other->strip_ref == strip) {
85 MEM_delete(con_strip);
92 if (strip1 ==
nullptr || strip2 ==
nullptr) {
96 strip_list.
add(strip1);
97 strip_list.
add(strip2);
104 strip_list.
remove_if([&](
Strip *strip) {
return strip ==
nullptr; });
106 for (
Strip *strip1 : strip_list) {
108 for (
Strip *strip2 : strip_list) {
109 if (strip1 == strip2) {
122 if (strip !=
nullptr) {
124 connections.
add(con->strip_ref);
132 if (strip ==
nullptr) {
140 const int expected_connection_num = strip_list.
size() - 1;
141 for (
Strip *strip1 : strip_list) {
143 int found_connection_num = connections.
size();
144 if (found_connection_num != expected_connection_num) {
147 for (
Strip *strip2 : connections) {
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(ListBase *lb)
BLI_INLINE bool BLI_listbase_is_empty(const ListBase *lb)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
bool contains(const Key &key) const
int64_t remove_if(Predicate &&predicate)
void * MEM_callocN(size_t len, const char *str)
void * MEM_dupallocN(const void *vmemh)
bool disconnect(Strip *strip)
bool are_strips_connected_together(blender::VectorSet< Strip * > &strip_list)
static void strip_connections_free(Strip *strip)
void connect(Strip *strip1, Strip *strip2)
void cut_one_way_connections(Strip *strip)
blender::VectorSet< Strip * > connected_strips_get(const Strip *strip)
bool is_strip_connected(const Strip *strip)
void connections_duplicate(ListBase *connections_dst, ListBase *connections_src)