or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
Animation Filtering Replacement
Animation Data Sources
Current datasources (and a few desired ones):
Purple tag: yet to be implemented.
UI Filters / Source Selectors
We may want to split these up. Currently these are about the source of the shown data, while others are filtering that data. I’m listing them here in one place anyway, because they are currently rather entangled.
Purple tag: yet to be implemented.
Code-side Filters
These filters are currently defined in Blender’s code to achieve the above, and usually combinations are used to query for animation data.
ANIMFILTER_DATA_VISIBLE
ANIMFILTER_LIST_VISIBLE
ANIMFILTER_CURVE_VISIBLE
ANIMFILTER_LIST_CHANNELS
ANIMFILTER_ACTIVE
ANIMFILTER_ACTGROUPED
ANIMFILTER_SEL
ANIMFILTER_UNSEL
ANIMFILTER_FOREDIT
ANIMFILTER_SELEDIT
ANIMFILTER_ANIMDATA
ANIMFILTER_NODUPLIS
ANIMFILTER_FCURVESONLY
ANIMFILTER_TMP_PEEK
ANIMFILTER_TMP_IGNORE_ONLYSEL
These combine the following concepts:
Uses of those filters
transform_convert_nla.c
,transform_convert_graph.c
,transform_convert_action.c
)nla_buttons.c
,nla_channels.c
,nla_select.c
,nla_edit.c
,nla_draw.c
):ANIMFILTER_ANIMDATA
)?anim_channels_define.c
,anim_channels_edit.c
)ANIMFILTER_NODUPLIS
, and depending on whether editing is necessary,ANIMFILTER_FOREDIT
. Rather inconsistent with the other flags, though.anim_deps.c
)graph_select.c
)anim_filters.c
)keyframes_edit.c
,keyframes_keylist.cc
)ANIMFILTER_DATA_VISIBLE
with the occasionalANIMFILTER_FCURVESONLY
editaction_gpencil.c
): copy-pasting of GP frames.screen_context.c
)screen_ops.c
)action_draw.cc
,action_edit.cc
,graph_draw.c
,graph_ops.c
,space_graph.c
)action_edit.cc
,graph_edit.c
,graph_slider_ops.c
)graph_view.c
)action_select.cc
,graph_view.c
), both screen-space and the regular 'selected and visible' queries.graph_util.c
)Almost name collision
What's described below is handled in #106028: Refactor: remove enum eAnimFilterFlags.
The above flags are defined in
ED_anim_api.h
asenum eAnimFilter_Flags
. BUT: inED_keyframing.h
there isenum eAnimFilterFlags
. Note the different names, one has_
and the other does not. The latter has the following flags:These are used in:
view3d_draw.cc
), to colour the name of the selected object depending on whether there is a key on the current frame or not. Always usesANIMFILTER_KEYS_LOCAL
.keyframing.c
), to determine whether the 'only replace existing keys' mode should auto-key. Always usesANIMFILTER_KEYS_LOCAL
.fcurve_frame_has_keyframe(..., filter)
is used in a few places, sometimes with, sometimes without filters. But the only filter it uses isANIMFILTER_KEYS_MUTED
, which is never set.Conclusion: the use of these filter flags seems to have been reduced over time to only, always use
ANIMFILTER_KEYS_LOCAL
. This means that:filter
parameters can be removed from the functions that pass them.Editor-side Behaviour
Editors should be able to set up their own sources and filtering. This should allow pinning of animation data to those editors, making them independent of the selected/active datablocks in the scene.
Transform System Integration
It should be possible to connect the filtered data with the transform system.
Dependency Graph Integration
Animation Data Sources need to be able to set up depsgraph relations.
Data Flow Diagram