86 const float warp_sta_local[3],
88 const float warp_end_radius_local[3],
89 const float pivot_local[3],
101 float fac, fac_scaled;
108 CLAMP(fac, 0.0f, 1.0f);
114 if (gps !=
nullptr) {
118 fac_scaled = fac * td->
factor;
122 fac_scaled = fac * td->
factor;
126 interp_v3_v3v3(delta, warp_sta_local, warp_end_radius_local, fac_scaled);
161 data->warp_sta_local,
162 data->warp_end_local,
163 data->warp_end_radius_local,
187 float pivot_global[3];
188 float warp_end_radius_global[3];
205 snapGrid(t, angle_rad);
210 const float radius_snap = 0.1f;
212 values.scale *= snap_hack;
214 values.scale /= snap_hack;
231 IFACE_(
"Bend Angle: %s, Radius: %s, Alt: Clamp %s"),
239 IFACE_(
"Bend Angle: %.3f, Radius: %.4f, Alt: Clamp %s"),
245 values.angle *= -1.0f;
255 if (values.angle > 0.0f) {
269 float warp_sta_local[3];
270 float warp_end_local[3];
271 float warp_end_radius_local[3];
272 float pivot_local[3];
274 if (tc->use_local_mat) {
277 sub_v3_v3v3(warp_end_radius_local, warp_end_radius_global, tc->mat[3]);
278 sub_v3_v3v3(pivot_local, pivot_global, tc->mat[3]);
283 copy_v3_v3(warp_end_radius_local, warp_end_radius_global);
290 for (i = 0; i < tc->data_len; i++, td++) {
301 warp_end_radius_local,
310 data.angle = values.angle;
311 data.bend_data = *bend_data;
312 copy_v3_v3(data.warp_sta_local, warp_sta_local);
313 copy_v3_v3(data.warp_end_local, warp_end_local);
314 copy_v3_v3(data.warp_end_radius_local, warp_end_radius_local);
316 data.is_clamp = is_clamp;
369 data->warp_init_dist =
len_v3v3(data->warp_end, data->warp_sta);
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(dst, format,...)
void BLI_task_parallel_range(int start, int stop, void *userdata, TaskParallelRangeFunc func, const TaskParallelSettings *settings)
BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
@ 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.
void *(* MEM_callocN)(size_t len, const char *str)
float warp_end_radius_local[3]
const TransDataContainer * tc
TransCustomDataContainer custom
float multi_frame_falloff
bGPDstroke_Runtime runtime
const char * WM_bool_as_string(bool test)