53 float mat[4][4], mat_space[4][4], imat_space[4][4];
71 if (shape_keys_len != 0) {
73 for (
int i = 0; i < shape_keys_len; i++, co_dst++) {
82 float mat[4][4], vec[3];
91 "transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
103 float mat[3][3], vec[3];
114 "transform matrix=%m3 space=%s verts=%s use_shapekey=%s",
135 "transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
170 }
while ((l_iter = l_iter->
next) != l_first);
175 const bool use_faces,
176 const bool use_faces_step)
199 if (!use_faces_step) {
246 if (!use_faces_step) {
275 const bool use_faces,
276 const bool use_faces_step)
286 if (!use_faces_step) {
345 if (!use_faces_step) {
400 int i, j, clipx, clipy, clipz;
401 int xaxis, yaxis, zaxis;
433 if (clipx &&
fabsf(
v->
co[0]) <= clip_dist) {
436 if (clipy &&
fabsf(
v->
co[1]) <= clip_dist) {
439 if (clipz &&
fabsf(
v->
co[2]) <= clip_dist) {
477 if (cd_loop_uv_offset != -1) {
479 if (use_ccw ==
false) {
560 if (cd_loop_uv_offset != -1) {
580 if (cd_loop_color_offset != -1) {
582 if (use_ccw ==
false) {
653 *lcol = cols[(f->
len - i - 1)];
662 if (cd_loop_color_offset != -1) {
typedef float(TangentPoint)[2]
CustomData interface, see also DNA_customdata_types.h.
int CustomData_number_of_layers(const struct CustomData *data, int type)
int CustomData_get_offset(const struct CustomData *data, int type)
#define BLI_array_alloca(arr, realsize)
void unit_m3(float m[3][3])
void unit_m4(float m[4][4])
bool invert_m4_m4(float R[4][4], const float A[4][4])
void transform_pivot_set_m4(float mat[4][4], const float pivot[3])
void mul_m4_v3(const float M[4][4], float r[3])
#define mul_m4_series(...)
bool is_zero_m4(const float mat[4][4])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], const float t)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void zero_v3(float r[3])
NSNotificationCenter * center
Read Guarded memory(de)allocation.
#define BM_FACE_FIRST_LOOP(p)
#define BM_ELEM_CD_GET_VOID_P(ele, offset)
BMVert * BM_vert_create(BMesh *bm, const float co[3], const BMVert *v_example, const eBMCreateFlag create_flag)
Main function for creating a new vertex.
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_ELEM(ele, iter, data, itype)
#define BM_ITER_ELEM_INDEX(ele, iter, data, itype, indexvar)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BMO_slot_mat4_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, float r_mat[4][4])
void BMO_slot_buffer_flag_enable(BMesh *bm, BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, const char htype, const short oflag)
BMO_FLAG_BUFFER.
#define BMO_edge_flag_test(bm, e, oflag)
void BMO_slot_vec_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, float r_vec[3])
#define BMO_edge_flag_enable(bm, e, oflag)
float BMO_slot_float_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name)
#define BMO_vert_flag_enable(bm, e, oflag)
#define BMO_vert_flag_set(bm, e, oflag, val)
#define BMO_edge_flag_set(bm, e, oflag, val)
#define BMO_face_flag_enable(bm, e, oflag)
#define BMO_ITER(ele, iter, slot_args, slot_name, restrict_flag)
#define BMO_face_flag_set(bm, e, oflag, val)
int BMO_slot_buffer_count(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name)
#define BMO_face_flag_test(bm, e, oflag)
void BMO_slot_buffer_from_enabled_flag(BMesh *bm, BMOperator *op, BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, const char htype, const short oflag)
bool BMO_slot_bool_get(BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name)
bool BMO_op_callf(BMesh *bm, const int flag, const char *fmt,...)
ATTR_WARN_UNUSED_RESULT const BMFlagLayer const short oflag
void BM_face_normal_flip_ex(BMesh *bm, BMFace *f, const int cd_loop_mdisp_offset, const bool use_loop_mdisp_flip)
Face Flip Normal.
BLI_INLINE BMVert * BM_edge_other_vert(BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
BLI_INLINE bool BM_edge_is_wire(const BMEdge *e) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
void bmo_rotate_exec(BMesh *bm, BMOperator *op)
void bmo_region_extend_exec(BMesh *bm, BMOperator *op)
void bmo_reverse_uvs_exec(BMesh *bm, BMOperator *op)
static void bmo_region_extend_expand(BMesh *bm, BMOperator *op, const bool use_faces, const bool use_faces_step)
void bmo_transform_exec(BMesh *bm, BMOperator *op)
static void bmo_face_flag_set_flush(BMesh *bm, BMFace *f, const short oflag, const bool value)
void bmo_reverse_colors_exec(BMesh *bm, BMOperator *op)
void bmo_rotate_colors_exec(BMesh *bm, BMOperator *op)
static void bm_face_reverse_uvs(BMFace *f, const int cd_loop_uv_offset)
void bmo_rotate_uvs_exec(BMesh *bm, BMOperator *op)
void bmo_translate_exec(BMesh *bm, BMOperator *op)
void bmo_create_vert_exec(BMesh *bm, BMOperator *op)
static void bm_face_reverse_colors(BMFace *f, const int cd_loop_color_offset)
void bmo_smooth_vert_exec(BMesh *UNUSED(bm), BMOperator *op)
void bmo_scale_exec(BMesh *bm, BMOperator *op)
static void bmo_region_extend_contract(BMesh *bm, BMOperator *op, const bool use_faces, const bool use_faces_step)
void bmo_reverse_faces_exec(BMesh *bm, BMOperator *op)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
struct BMOpSlot slots_out[BMO_OP_MAX_SLOTS]
struct BMOpSlot slots_in[BMO_OP_MAX_SLOTS]