85 float viewport_size[4];
117 for (i = 0, fed = env->
data; i < env->totvert; i++, fed++) {
181 for (
int i = 0; i < fcu->
totvert; i++, bezt++) {
256 immUniform4f(
"outlineColor", hcolor[0], hcolor[1], hcolor[2], 1.0f);
263 for (
int i = 0; i < fcu->
totvert; i++, prevbezt = bezt, bezt++) {
297 const bool sel_handle_only,
317 const BezTriple *left_bezt = active_keyframe_index > 0 ? &fcu->
bezt[active_keyframe_index - 1] :
348 bool sel_handle_only)
422 for (sel = 0; sel < 2; sel++) {
427 for (
b = 0;
b < fcu->
totvert;
b++, prevbezt = bezt, bezt++) {
500 float x,
float y,
float xscale,
float yscale,
float hsize,
uint pos)
524 float hsize, xscale, yscale;
532 last = (first) ? (first + (fcu->
totvert - 1)) : (
NULL);
568 const bool use_nla_remap,
569 const bool draw_extrapolation)
581 FCurve fcurve_for_draw = *fcu_;
587 ac->
scene,
id, &fcurve_for_draw, mapping_flag, &
offset);
604 float pixels_per_sample = 1.5f;
617 if (samplefreq < 0.1f) {
623 if (samplefreq < 0.00001f) {
624 samplefreq = 0.00001f;
636 if (!draw_extrapolation) {
645 if (fcu_end < fcu_start) {
646 SWAP(
float, fcu_start, fcu_end);
650 stime =
max_ff(stime, fcu_start);
651 etime =
min_ff(etime, fcu_end);
654 const int total_samples = roundf((etime - stime) / samplefreq);
655 if (total_samples <= 0) {
672 for (
int i = 0; i < total_samples; i++) {
673 const float ctime = stime + i * samplefreq;
674 float eval_time = eval_start + i * eval_freq;
683 if (eval_time > eval_end) {
684 eval_time = eval_end;
708 const bool draw_extrapolation)
710 if (!draw_extrapolation && fcu->
totvert == 1) {
715 FPoint *fpt = prevfpt + 1;
722 const bool extrap_left = draw_extrapolation && prevfpt->
vec[0] > v2d->
cur.
xmin;
727 const bool extrap_right = draw_extrapolation && (prevfpt +
b - 1)->vec[0] < v2d->
cur.
xmax;
748 v[1] = prevfpt->
vec[1];
752 fac = (prevfpt->
vec[0] - fpt->
vec[0]) / (prevfpt->
vec[0] -
v[0]);
756 v[1] = prevfpt->
vec[1] - fac * (prevfpt->
vec[1] - fpt->
vec[1]);
782 v[1] = prevfpt->
vec[1];
787 fac = (prevfpt->
vec[0] - fpt->
vec[0]) / (prevfpt->
vec[0] -
v[0]);
791 v[1] = prevfpt->
vec[1] - fac * (prevfpt->
vec[1] - fpt->
vec[1]);
810 for (i = 0, bezt = fcu->
bezt; i < fcu->totvert; i++, bezt++) {
823 if (!draw_extrapolation && fcu->
totvert == 1) {
829 float v1[2],
v2[2], v3[2], v4[2];
830 float *fp,
data[120];
849 if (draw_extrapolation && prevbezt->
vec[1][0] > v2d->
cur.
xmin) {
857 v1[1] = prevbezt->
vec[1][1];
861 fac = (prevbezt->
vec[1][0] - bezt->
vec[1][0]) / (prevbezt->
vec[1][0] -
v1[0]);
865 v1[1] = prevbezt->
vec[1][1] - fac * (prevbezt->
vec[1][1] - bezt->
vec[1][1]);
869 fac = (prevbezt->
vec[0][0] - prevbezt->
vec[1][0]) / (prevbezt->
vec[1][0] -
v1[0]);
873 v1[1] = prevbezt->
vec[1][1] - fac * (prevbezt->
vec[0][1] - prevbezt->
vec[1][1]);
881 v1[0] = prevbezt->
vec[1][0];
882 v1[1] = prevbezt->
vec[1][1];
892 v1[0] = prevbezt->
vec[1][0];
893 v1[1] = prevbezt->
vec[1][1];
896 v1[0] = bezt->
vec[1][0];
897 v1[1] = prevbezt->
vec[1][1];
902 v1[0] = prevbezt->
vec[1][0];
903 v1[1] = prevbezt->
vec[1][1];
923 v1[0] = prevbezt->
vec[1][0];
924 v1[1] = prevbezt->
vec[1][1];
934 v1[0] = prevbezt->
vec[1][0];
935 v1[1] = prevbezt->
vec[1][1];
936 v2[0] = prevbezt->
vec[2][0];
937 v2[1] = prevbezt->
vec[2][1];
939 v3[0] = bezt->
vec[0][0];
940 v3[1] = bezt->
vec[0][1];
941 v4[0] = bezt->
vec[1][0];
942 v4[1] = bezt->
vec[1][1];
948 v1[1],
v2[1], v3[1], v4[1],
data + 1, resol,
sizeof(
float[3]));
950 for (fp =
data; resol; resol--, fp += 3) {
962 v1[0] = prevbezt->
vec[1][0];
963 v1[1] = prevbezt->
vec[1][1];
969 if (draw_extrapolation && prevbezt->
vec[1][0] < v2d->
cur.
xmax) {
976 v1[1] = prevbezt->
vec[1][1];
981 fac = (prevbezt->
vec[1][0] - bezt->
vec[1][0]) / (prevbezt->
vec[1][0] -
v1[0]);
985 v1[1] = prevbezt->
vec[1][1] - fac * (prevbezt->
vec[1][1] - bezt->
vec[1][1]);
989 fac = (prevbezt->
vec[2][0] - prevbezt->
vec[1][0]) / (prevbezt->
vec[1][0] -
v1[0]);
993 v1[1] = prevbezt->
vec[1][1] - fac * (prevbezt->
vec[2][1] - prevbezt->
vec[1][1]);
1043 float viewport_size[4];
1103 else if (fcu->
fpt) {
1124 switch (fcm->type) {
1195 float viewport_size[4];
1232 float y = fcu->
curval * unitfac;
1249 if (y <= v2d->cur.ymax) {
1315 float viewport_size[4];
1360 for (ale = anim_data.
first; ale; ale = ale->
next) {
1363 ale_active_fcurve = ale;
1371 if (ale_active_fcurve !=
NULL) {
1408 size_t channel_index = 0;
1424 size_t channel_index = 0;
Blender kernel action and pose functionality.
struct AnimData * BKE_animdata_from_id(const struct ID *id)
void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride)
float evaluate_fcurve(struct FCurve *fcu, float evaltime)
struct FModifier * find_active_fmodifier(ListBase *modifiers)
bool BKE_fcurve_are_keyframes_usable(struct FCurve *fcu)
bool BKE_fcurve_is_protected(struct FCurve *fcu)
int BKE_fcurve_active_keyframe_index(const struct FCurve *fcu)
bool BKE_fcurve_calc_range(struct FCurve *fcu, float *min, float *max, bool do_sel_only, bool do_min_length)
void BKE_fcurve_correct_bezpart(const float v1[2], float v2[2], float v3[2], const float v4[2])
float BKE_nla_tweakedit_remap(struct AnimData *adt, float cframe, short mode)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE float len_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
#define IN_RANGE(a, b, c)
@ FMODIFIER_TYPE_ENVELOPE
#define FCURVE_ACTIVE_KEYFRAME_NONE
@ FCURVE_EXTRAPOLATE_CONSTANT
#define BEZT_ISSEL_ANY(bezt)
@ SIPO_NO_DRAW_EXTRAPOLATION
#define ACHANNEL_HEIGHT(ac)
#define ACHANNEL_FIRST_TOP(ac)
#define ACHANNEL_STEP(ac)
#define ACHANNEL_TOT_HEIGHT(ac, item_amount)
@ ANIMFILTER_DATA_VISIBLE
@ ANIMFILTER_CURVE_VISIBLE
@ ANIMFILTER_LIST_VISIBLE
@ ANIMFILTER_LIST_CHANNELS
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_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 y
_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
_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 v1
void GPU_matrix_pop(void)
void GPU_matrix_scale_2f(float x, float y)
void GPU_matrix_push(void)
void GPU_matrix_translate_2f(float x, float y)
@ GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR
@ GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR
@ GPU_SHADER_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA
@ GPU_SHADER_2D_UNIFORM_COLOR
@ GPU_SHADER_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_OUTLINE_AA
@ GPU_SHADER_2D_FLAT_COLOR
void GPU_program_point_size(bool enable)
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
float GPU_line_width_get(void)
void GPU_line_smooth(bool enable)
void GPU_point_size(float size)
void GPU_viewport_size_get_f(float coords[4])
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
void UI_block_end(const struct bContext *C, uiBlock *block)
void UI_block_draw(const struct bContext *C, struct uiBlock *block)
uiBlock * UI_block_begin(const struct bContext *C, struct ARegion *region, const char *name, eUIEmbossType emboss)
void UI_GetThemeColor3fv(int colorid, float col[3])
@ TH_HANDLE_VERTEX_SELECT
void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
void UI_GetThemeColor4fv(int colorid, float col[4])
float UI_GetThemeValuef(int colorid)
void UI_view2d_scale_get(const struct View2D *v2d, float *r_x, float *r_y)
float UI_view2d_scale_get_x(const struct View2D *v2d)
void ANIM_channel_draw_widgets(const bContext *C, bAnimContext *ac, bAnimListElem *ale, uiBlock *block, rctf *rect, size_t channel_index)
void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc, size_t channel_index)
void ANIM_animdata_freelist(ListBase *anim_data)
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)
size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
SyclQueue void void size_t num_bytes void
static void draw_fcurve_sample_control(float x, float y, float xscale, float yscale, float hsize, uint pos)
void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *region)
static bool draw_fcurve_handles_check(SpaceGraph *sipo, FCurve *fcu)
static void draw_fcurve_curve_bezts(bAnimContext *ac, ID *id, FCurve *fcu, View2D *v2d, uint pos, const bool draw_extrapolation)
static void draw_fcurve_curve(bAnimContext *ac, ID *id, FCurve *fcu_, View2D *v2d, uint pos, const bool use_nla_remap, const bool draw_extrapolation)
static void graph_draw_driver_debug(bAnimContext *ac, ID *id, FCurve *fcu)
static void draw_fcurve_active_handle_vertices(const FCurve *fcu, const bool sel_handle_only, const uint pos)
static void draw_fcurve_selected_handle_vertices(FCurve *fcu, View2D *v2d, bool sel, bool sel_handle_only, uint pos)
static void draw_fcurve_modifier_controls_envelope(FModifier *fcm, View2D *v2d, AnimData *adt_nla_remap)
static void draw_fcurve_keyframe_vertices(FCurve *fcu, View2D *v2d, bool edit, uint pos)
static void set_fcurve_vertex_color(FCurve *fcu, bool sel)
void graph_draw_ghost_curves(bAnimContext *ac, SpaceGraph *sipo, ARegion *region)
static void draw_fcurve_handle_vertices(FCurve *fcu, View2D *v2d, bool sel_handle_only, uint pos)
static void draw_fcurve_vertices(ARegion *region, FCurve *fcu, bool do_handles, bool sel_handle_only)
static void draw_fcurve_samples(SpaceGraph *sipo, ARegion *region, FCurve *fcu)
static void draw_fcurve_curve_samples(bAnimContext *ac, ID *id, FCurve *fcu, View2D *v2d, const uint shdr_pos, const bool draw_extrapolation)
static float fcurve_display_alpha(FCurve *fcu)
static void draw_fcurve_selected_keyframe_vertices(FCurve *fcu, View2D *v2d, bool edit, bool sel, uint pos)
static bool fcurve_can_use_simple_bezt_drawing(FCurve *fcu)
static void draw_fcurve_active_vertex(const FCurve *fcu, const View2D *v2d, const uint pos)
static void draw_fcurve(bAnimContext *ac, SpaceGraph *sipo, ARegion *region, bAnimListElem *ale)
void graph_draw_curves(bAnimContext *ac, SpaceGraph *sipo, ARegion *region, short sel)
static void draw_fcurve_handles(SpaceGraph *sipo, FCurve *fcu)
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
IMETHOD Vector diff(const Vector &a, const Vector &b, double dt=1)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
SpaceGraph_Runtime runtime
struct bAnimListElem * next