Blender V5.0
bmesh_structure.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
17
18#include "BLI_compiler_attrs.h"
19#include "BLI_compiler_compat.h"
20
21#include "bmesh_class.hh"
22
23/* LOOP CYCLE MANAGEMENT */
24/*****loop cycle functions, e.g. loops surrounding a face**** */
26
27/* DISK CYCLE MANAGEMENT */
76
77/* RADIAL CYCLE MANAGEMENT */
93/* NOTE:
94 * bmesh_radial_loop_next(BMLoop *l) / prev.
95 * just use member access l->radial_next, l->radial_prev now */
96
98 const BMVert *v,
107 ATTR_NONNULL();
114 ATTR_NONNULL();
122 ATTR_NONNULL();
124 ATTR_NONNULL();
126 ATTR_NONNULL();
127/*****radial cycle functions, e.g. loops surrounding edges**** */
129
130/* EDGE UTILITIES */
131void bmesh_disk_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src) ATTR_NONNULL();
137void bmesh_edge_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src) ATTR_NONNULL();
140 ATTR_NONNULL();
142
143#include "intern/bmesh_structure_inline.hh" /* IWYU pragma: export */
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
#define BLI_INLINE
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
bool bmesh_loop_validate(BMFace *f) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BMLoop * bmesh_radial_faceloop_find_first(const BMLoop *l, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BME RADIAL FIND FIRST FACE VERT.
int bmesh_radial_facevert_count(const BMLoop *l, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
RADIAL COUNT FACE VERT.
BMEdge * bmesh_disk_edge_exists(const BMVert *v1, const BMVert *v2) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void bmesh_disk_edge_append(BMEdge *e, BMVert *v) ATTR_NONNULL()
bool bmesh_radial_facevert_check(const BMLoop *l, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
RADIAL CHECK FACE VERT.
BLI_INLINE BMEdge * bmesh_disk_edge_prev(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BMLoop * bmesh_disk_faceloop_find_first(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void bmesh_radial_loop_unlink(BMLoop *l) ATTR_NONNULL()
BMLoop * bmesh_disk_faceloop_find_first_visible(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int bmesh_disk_facevert_count(const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
DISK COUNT FACE VERT.
BMEdge * bmesh_disk_faceedge_find_next(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool bmesh_radial_validate(int radlen, BMLoop *l) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BMEdge * bmesh_disk_faceedge_find_first(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
FIND FIRST FACE EDGE.
void bmesh_disk_vert_replace(BMEdge *e, BMVert *v_dst, BMVert *v_src) ATTR_NONNULL()
void bmesh_disk_edge_remove(BMEdge *e, BMVert *v) ATTR_NONNULL()
void bmesh_radial_loop_remove(BMEdge *e, BMLoop *l) ATTR_NONNULL()
BMESH RADIAL REMOVE LOOP.
int bmesh_disk_facevert_count_at_most(const BMVert *v, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BLI_INLINE BMEdge * bmesh_disk_edge_next_safe(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void bmesh_edge_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src) ATTR_NONNULL()
void bmesh_radial_loop_append(BMEdge *e, BMLoop *l) ATTR_NONNULL()
BMLoop * bmesh_radial_faceloop_find_vert(const BMFace *f, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void bmesh_disk_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src) ATTR_NONNULL()
BLI_INLINE BMEdge * bmesh_disk_edge_prev_safe(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool bmesh_disk_validate(int len, BMEdge *e, BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BMLoop * bmesh_radial_faceloop_find_next(const BMLoop *l, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BLI_INLINE BMEdge * bmesh_disk_edge_next(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int bmesh_radial_facevert_count_at_most(const BMLoop *l, const BMVert *v, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
uint len