52 const float mtx[3][3],
53 const float smtx[3][3],
57 float *loc = bezt->
vec[bi];
58 const float *cent = bezt->
vec[1];
69 td2d->
loc[1] = (loc[1] +
offset) * unit_scale;
75 td->center[1] = (cent[1] +
offset) * unit_scale;
81 td2d->
loc[0] = loc[0];
82 td2d->
loc[1] = (loc[1] +
offset) * unit_scale;
88 td->center[1] = (td->center[1] +
offset) * unit_scale;
93 td2d->
h1 = bezt->
vec[0];
94 td2d->
h2 = bezt->
vec[2];
151 const bool use_handle,
154 bool *r_right_handle)
157 bool key = (bezt->
f2 &
SELECT) != 0;
158 bool left = use_handle ? ((bezt->
f1 &
SELECT) != 0) : key;
161 if (use_handle &&
t->is_launch_event_drag) {
176 *r_left_handle =
left;
177 *r_right_handle =
right;
185 bool sel_key, sel_left, sel_right;
188 for (; j < fcu->
totvert; j++) {
193 if (sel_left || sel_key || sel_right) {
216 View2D *v2d = ®ion->v2d;
229 float mtx[3][3], smtx[3][3];
234 bool sel_key, sel_left, sel_right;
260 for (ale = anim_data.first; ale; ale = ale->
next) {
265 bool selected =
false;
282 for (i = 0, bezt = fcu->
bezt; i < fcu->totvert; i++, bezt++) {
290 if (sel_key || sel_left || sel_right) {
304 if (sel_key && !use_local_center) {
347 float xscale, yscale;
357 if (
IS_EQF(xscale, 0.0f) == 0) {
360 if (
IS_EQF(yscale, 0.0f) == 0) {
366 for (ale = anim_data.first; ale; ale = ale->
next) {
374 if (fcu->
bezt ==
NULL || (is_prop_edit && ale->
tag == 0)) {
391 for (i = 0, bezt = fcu->
bezt; i < fcu->totvert; i++, bezt++) {
405 bool is_sel = (sel_key || sel_left || sel_right);
499 if (sel_key && !use_local_center) {
511 if (!(sel_left) || !(sel_right)) {
541 if (hdata && (sel_left) && (sel_right)) {
558 for (ale = anim_data.first; ale; ale = ale->
next) {
579 for (i = 0, bezt = fcu->
bezt; i < fcu->totvert; i++, bezt++) {
585 if (sel_left || sel_key) {
586 td->dist = td->rdist = 0.0f;
594 td->dist = td->rdist = 0.0f;
601 if (sel_right || sel_key) {
602 td->dist = td->rdist = 0.0f;
632 for (i = 0; i < fcu->
totvert; i++, bezt++) {
656 a++, td++, td2d++, tdg++) {
660 float inv_unit_scale = 1.0f / tdg->
unit_scale;
711 if (totvert == 0 || bezts ==
NULL) {
717 for (i = 0; i < totvert; i++, bezm++, prevbezt = bezt, bezt++) {
723 bezm->
pipo = (prevbezt) ? prevbezt->
ipo : bezt->
ipo;
745 if (bezm->
bezt->
vec[1][0] > (bezm + 1)->bezt->vec[1][0]) {
747 (bezm + 1)->newIndex--;
795 for (i = 0; i < totvert; i++, bezm++) {
801 for (j = 0; j < tc->
data_len; j++, td2d++, td++) {
803 if (adjusted[j] != 0) {
810 if (td2d->loc2d == bezm->
bezt->
vec[0]) {
812 td2d->loc2d = (bezts + bezm->
newIndex)->vec[2];
815 td2d->loc2d = (bezts + bezm->
newIndex)->vec[0];
819 else if (td2d->loc2d == bezm->
bezt->
vec[2]) {
821 td2d->loc2d = (bezts + bezm->
newIndex)->vec[0];
824 td2d->loc2d = (bezts + bezm->
newIndex)->vec[2];
828 else if (td2d->loc2d == bezm->
bezt->
vec[1]) {
829 td2d->loc2d = (bezts + bezm->
newIndex)->vec[1];
833 td2d->h1 = (bezts + bezm->
newIndex)->vec[0];
836 td2d->h2 = (bezts + bezm->
newIndex)->vec[2];
874 for (ale = anim_data->
first; ale; ale = ale->
next) {
918 ac.
sl = (
t->area) ?
t->area->spacedata.first :
NULL;
920 ac.
regiontype = (
t->region) ?
t->region->regiontype : 0;
933 for (ale = anim_data.first; ale; ale = ale->
next) {
995 for (ale = anim_data.
first; ale; ale = ale->
next) {
typedef float(TangentPoint)[2]
struct Main * CTX_data_main(const bContext *C)
void testhandles_fcurve(struct FCurve *fcu, eBezTriple_Flag sel_flag, bool use_handle)
void BKE_fcurve_handles_recalc_ex(struct FCurve *fcu, eBezTriple_Flag handle_sel_flag)
bool test_time_fcurve(struct FCurve *fcu)
void sort_time_fcurve(struct FCurve *fcu)
float BKE_nla_tweakedit_remap(struct AnimData *adt, float cframe, short mode)
MINLINE float min_ff(float a, float b)
void copy_m3_m3(float m1[3][3], const float m2[3][3])
void unit_m3(float m[3][3])
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])
#define BEZT_ISSEL_ANY(bezt)
#define OBACT(_view_layer)
@ SIPO_RUNTIME_FLAG_TWEAK_HANDLES_RIGHT
@ SIPO_RUNTIME_FLAG_TWEAK_HANDLES_LEFT
@ V3D_AROUND_LOCAL_ORIGINS
@ ANIMFILTER_DATA_VISIBLE
@ ANIMFILTER_CURVE_VISIBLE
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble right
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
Read Guarded memory(de)allocation.
void UI_view2d_scale_get(const struct View2D *v2d, float *r_x, float *r_y)
void ANIM_animdata_freelist(ListBase *anim_data)
void ANIM_list_elem_update(Main *bmain, Scene *scene, bAnimListElem *ale)
AnimData * ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
void ANIM_nla_mapping_apply_fcurve(AnimData *adt, FCurve *fcu, bool restore, bool only_keys)
float ANIM_unit_mapping_get_factor(Scene *scene, ID *id, FCurve *fcu, short flag, float *r_offset)
short ANIM_get_normalization_flags(bAnimContext *ac)
bool ANIM_animdata_get_context(const bContext *C, bAnimContext *ac)
bool ANIM_animdata_context_getdata(bAnimContext *ac)
size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void ANIM_editkeyframes_refresh(bAnimContext *ac)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
ccl_device_inline float2 fabs(const float2 &a)
SpaceGraph_Runtime runtime
TransCustomDataContainer custom
TransDataCurveHandleFlags * hdata
struct ViewLayer * view_layer
struct bAnimListElem * next