70 const float warp_sta_local[3],
72 const float warp_end_radius_local[3],
73 const float pivot_local[3],
85 float fac, fac_scaled;
92 CLAMP(fac, 0.0f, 1.0f);
97 float *gp_falloff =
static_cast<float *
>(td->
extra);
98 if (gp_falloff !=
nullptr) {
99 fac_scaled = fac * td->
factor * *gp_falloff;
102 fac_scaled = fac * td->
factor;
106 fac_scaled = fac * td->
factor;
110 interp_v3_v3v3(delta, warp_sta_local, warp_end_radius_local, fac_scaled);
150 float pivot_global[3];
151 float warp_end_radius_global[3];
167 snapGrid(t, angle_rad);
172 const float radius_snap = 0.1f;
174 values.scale *= snap_hack;
176 values.scale /= snap_hack;
193 IFACE_(
"Bend Angle: %s, Radius: %s, Alt: Clamp %s"),
201 IFACE_(
"Bend Angle: %.3f, Radius: %.4f, Alt: Clamp %s"),
207 values.angle *= -1.0f;
217 if (values.angle > 0.0f) {
231 float warp_sta_local[3];
232 float warp_end_local[3];
233 float warp_end_radius_local[3];
234 float pivot_local[3];
236 if (tc->use_local_mat) {
239 sub_v3_v3v3(warp_end_radius_local, warp_end_radius_global, tc->mat[3]);
240 sub_v3_v3v3(pivot_local, pivot_global, tc->mat[3]);
245 copy_v3_v3(warp_end_radius_local, warp_end_radius_global);
250 for (const int i : range) {
251 TransData *td = &tc->data[i];
252 TransDataExtension *td_ext = tc->data_ext ? &tc->data_ext[i] : nullptr;
253 if (td->flag & TD_SKIP) {
256 transdata_elem_bend(t,
264 warp_end_radius_local,
float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3])
MINLINE float shell_angle_to_dist(float angle)
void mul_m3_v3(const float M[3][3], float r[3])
void axis_angle_normalized_to_mat3(float R[3][3], const float axis[3], float angle)
MINLINE float len_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], float t)
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void add_v3_v3(float r[3], const float a[3])
void dist_ensure_v3_v3fl(float v1[3], const float v2[3], float dist)
MINLINE float normalize_v3(float n[3])
#define SNPRINTF_UTF8(dst, format,...)
@ V3D_AROUND_LOCAL_ORIGINS
void ED_area_status_text(ScrArea *area, const char *str)
void ED_view3d_win_to_3d(const View3D *v3d, const ARegion *region, const float depth_pt[3], const float mval[2], float r_out[3])
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
Read Guarded memory(de)allocation.
BMesh const char void * data
void * MEM_callocN(size_t len, const char *str)
void parallel_for(const IndexRange range, const int64_t grain_size, const Function &function, const TaskSizeHints &size_hints=detail::TaskSizeHints_Static(1))
const char * WM_bool_as_string(bool test)