83 const float3 &snap_source_local,
87 float rotate_offset[3] = {0};
88 bool use_rotate_offset =
false;
104 original_normal = td->
axismtx[1];
107 original_normal = td->
axismtx[2];
122 use_rotate_offset =
true;
138 if (use_rotate_offset) {
144 float *gp_falloff =
static_cast<float *
>(td->extra);
145 if (gp_falloff !=
nullptr) {
186 const int r_str_maxncpy,
225 float val = ival + dvec[0];
227 dvec[0] = val - ival;
252 for (
int i = 0; i < 3; i++) {
266 IFACE_(
"Proportional Size"),
289 "D: %s D: %s (%s)%s",
298 "D: %s D: %s D: %s (%s)%s",
322 "Dx: %s Dy: %s (%s)%s",
331 "Dx: %s Dy: %s Dz: %s (%s)%s",
419 add_v3_v3(r_val, absolute_grid_snap_offset);
422 t->
con.
applyVec(t,
nullptr,
nullptr, r_val, r_val);
462 float3 snap_source_local(0);
465 if (tc->use_local_mat) {
473 for (
int i = 0; i < tc->data_len; i++, td++) {
484 data.snap_source_local = snap_source_local;
486 data.rotate_mode = rotate_mode;
501 float base_offset[2] = {0.0f, 0.0f};
512 for (
TransData *td = tc->data; td < tc->
data + tc->data_len; td++) {
518 if (
min[0] < base_offset[0]) {
519 vec[0] += base_offset[0] -
min[0];
522 else if (
max[0] > base_offset[0] + t->
aspect[0]) {
523 vec[0] -=
max[0] - base_offset[0] - t->
aspect[0];
527 if (
min[1] < base_offset[1]) {
528 vec[1] += base_offset[1] -
min[1];
531 else if (
max[1] > base_offset[1] + t->
aspect[1]) {
532 vec[1] -=
max[1] - base_offset[1] - t->
aspect[1];
542 float global_dir[3] = {0.0f};
579 t->
con.
applyVec(t,
nullptr,
nullptr, in, global_dir);
630 "Use 'Time_Translate' transform mode instead of 'Translation' mode "
631 "for translating keyframes in Dope Sheet Editor");
int BKE_image_find_nearest_tile_with_offset(const Image *image, const float co[2], float r_uv_offset[2]) ATTR_NONNULL(2
void BKE_report(ReportList *reports, eReportType type, const char *message)
size_t BKE_unit_value_as_string(char *str, int str_maxncpy, double value, int prec, int type, const UnitSettings *settings, bool pad)
void mul_m3_v3(const float M[3][3], float r[3])
void unit_m3(float m[3][3])
void mul_v3_m3v3(float r[3], const float M[3][3], const float a[3])
void rotation_between_vecs_to_mat3(float m[3][3], const float v1[3], const float v2[3])
MINLINE float len_squared_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
void minmax_v2v2_v2(float min[2], float max[2], const float vec[2])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE bool is_zero_v3(const float v[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void zero_v3(float r[3])
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void add_v3_v3(float r[3], const float a[3])
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
size_t BLI_snprintf_rlen(char *__restrict dst, size_t dst_maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
size_t BLI_snprintf(char *__restrict dst, size_t dst_maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char char size_t BLI_strncpy_rlen(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
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)
#define IN_RANGE_INCL(a, b, c)
@ SNODE_INSERTOFS_DIR_RIGHT
void ED_area_status_text(ScrArea *area, const char *str)
eV3DProjStatus ED_view3d_project_float_global(const ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag)
Read Guarded memory(de)allocation.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
void *(* MEM_callocN)(size_t len, const char *str)
VecBase< T, 3 > transform_direction(const MatBase< T, 3, 3 > &mat, const VecBase< T, 3 > &direction)
VecBase< T, 3 > transform_point(const CartesianBasis &basis, const VecBase< T, 3 > &v)
MatBase< float, 4, 4 > float4x4
MatBase< float, 3, 3 > float3x3
VecBase< float, 3 > float3
void(* applyVec)(const TransInfo *t, const TransDataContainer *tc, const TransData *td, const float in[3], float r_out[3])
const TransDataContainer * tc
enum eTranslateRotateMode rotate_mode
float snap_spatial_precision
float values_modal_offset[4]
TransCustomDataContainer custom
TransConvertTypeInfo * data_type
struct TranslateCustomData::@376367331311145166135334120242146075304217117146 prev
enum eTranslateRotateMode rotate_mode