54 int factor_accum = 0.0f;
57 for (
int i = 0;
i < tc->data_len;
i++, td++) {
61 const float *center = is_local_center ? td->
center : tc->center_local;
71 factor_accum += td->
factor;
74 if (factor_accum != 0.0f) {
75 radius /= factor_accum;
81 for (
int i = 0;
i < tc->data_len;
i++, td++) {
82 const float *center = is_local_center ? td->
center : tc->center_local;
98 data->radius = radius;
112 const bool is_local_center,
113 const bool is_data_space)
126 const float tratio = ratio * td->
factor;
127 mul_v3_fl(vec, radius * (1.0f - tratio) + to_sphere_info->
radius * tratio);
159 CLAMP(ratio, 0.0f, 1.0f);
183 for (const int i : range) {
184 TransData *td = &tc->data[i];
185 if (td->flag & TD_SKIP) {
188 transdata_elem_to_sphere(t, tc, td, ratio, to_sphere_info, is_local_center, is_data_space);
void mul_m3_v3(const float M[3][3], float r[3])
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void add_v3_v3(float r[3], const float a[3])
MINLINE float normalize_v3(float n[3])
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
#define SNPRINTF_UTF8(dst, format,...)
void ED_area_status_text(ScrArea *area, const char *str)
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))