Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_anim_path.h51
-rw-r--r--source/blender/blenkernel/BKE_anim_visualization.h56
-rw-r--r--source/blender/blenkernel/BKE_duplilist.h (renamed from source/blender/blenkernel/BKE_anim.h)37
-rw-r--r--source/blender/blenkernel/CMakeLists.txt7
-rw-r--r--source/blender/blenkernel/intern/action.c2
-rw-r--r--source/blender/blenkernel/intern/anim_path.c (renamed from source/blender/blenkernel/intern/anim.c)226
-rw-r--r--source/blender/blenkernel/intern/anim_visualization.c228
-rw-r--r--source/blender/blenkernel/intern/armature.c2
-rw-r--r--source/blender/blenkernel/intern/armature_update.c2
-rw-r--r--source/blender/blenkernel/intern/constraint.c2
-rw-r--r--source/blender/blenkernel/intern/displist.c2
-rw-r--r--source/blender/blenkernel/intern/effect.c2
-rw-r--r--source/blender/blenkernel/intern/font.c2
-rw-r--r--source/blender/blenkernel/intern/lattice.c2
-rw-r--r--source/blender/blenkernel/intern/object.c4
-rw-r--r--source/blender/blenkernel/intern/object_dupli.c2
-rw-r--r--source/blender/blenkernel/intern/particle.c2
-rw-r--r--source/blender/blenkernel/intern/pointcache.c1
-rw-r--r--source/blender/blenkernel/intern/scene.c2
19 files changed, 362 insertions, 270 deletions
diff --git a/source/blender/blenkernel/BKE_anim_path.h b/source/blender/blenkernel/BKE_anim_path.h
new file mode 100644
index 00000000000..64bcedefa58
--- /dev/null
+++ b/source/blender/blenkernel/BKE_anim_path.h
@@ -0,0 +1,51 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+#ifndef __BKE_ANIM_PATH_H__
+#define __BKE_ANIM_PATH_H__
+
+/** \file
+ * \ingroup bke
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct ListBase;
+struct Object;
+struct Path;
+
+/* ---------------------------------------------------- */
+/* Curve Paths */
+
+void free_path(struct Path *path);
+void calc_curvepath(struct Object *ob, struct ListBase *nurbs);
+int where_on_path(struct Object *ob,
+ float ctime,
+ float vec[4],
+ float dir[3],
+ float quat[4],
+ float *radius,
+ float *weight);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/source/blender/blenkernel/BKE_anim_visualization.h b/source/blender/blenkernel/BKE_anim_visualization.h
new file mode 100644
index 00000000000..5dcbfa0919e
--- /dev/null
+++ b/source/blender/blenkernel/BKE_anim_visualization.h
@@ -0,0 +1,56 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+#ifndef __BKE_ANIM_VISUALIZATION_H__
+#define __BKE_ANIM_VISUALIZATION_H__
+
+/** \file
+ * \ingroup bke
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct Object;
+struct ReportList;
+struct Scene;
+struct bAnimVizSettings;
+struct bMotionPath;
+struct bPoseChannel;
+
+/* ---------------------------------------------------- */
+/* Animation Visualization */
+
+void animviz_settings_init(struct bAnimVizSettings *avs);
+
+struct bMotionPath *animviz_copy_motionpath(const struct bMotionPath *mpath_src);
+
+void animviz_free_motionpath_cache(struct bMotionPath *mpath);
+void animviz_free_motionpath(struct bMotionPath *mpath);
+
+struct bMotionPath *animviz_verify_motionpaths(struct ReportList *reports,
+ struct Scene *scene,
+ struct Object *ob,
+ struct bPoseChannel *pchan);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_duplilist.h
index 38af96c2ff0..71b6d06b450 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_duplilist.h
@@ -16,8 +16,8 @@
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*/
-#ifndef __BKE_ANIM_H__
-#define __BKE_ANIM_H__
+#ifndef __BKE_DUPLILIST_H__
+#define __BKE_DUPLILIST_H__
/** \file
* \ingroup bke
@@ -31,40 +31,7 @@ struct Depsgraph;
struct ListBase;
struct Object;
struct ParticleSystem;
-struct Path;
-struct ReportList;
struct Scene;
-struct bAnimVizSettings;
-struct bMotionPath;
-struct bPoseChannel;
-
-/* ---------------------------------------------------- */
-/* Animation Visualization */
-
-void animviz_settings_init(struct bAnimVizSettings *avs);
-
-struct bMotionPath *animviz_copy_motionpath(const struct bMotionPath *mpath_src);
-
-void animviz_free_motionpath_cache(struct bMotionPath *mpath);
-void animviz_free_motionpath(struct bMotionPath *mpath);
-
-struct bMotionPath *animviz_verify_motionpaths(struct ReportList *reports,
- struct Scene *scene,
- struct Object *ob,
- struct bPoseChannel *pchan);
-
-/* ---------------------------------------------------- */
-/* Curve Paths */
-
-void free_path(struct Path *path);
-void calc_curvepath(struct Object *ob, struct ListBase *nurbs);
-int where_on_path(struct Object *ob,
- float ctime,
- float vec[4],
- float dir[3],
- float quat[4],
- float *radius,
- float *weight);
/* ---------------------------------------------------- */
/* Dupli-Geometry */
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 1e230e5af3a..ba4339f56ac 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -70,8 +70,9 @@ set(SRC
intern/DerivedMesh.c
intern/action.c
intern/addon.c
- intern/anim.c
+ intern/anim_path.c
intern/anim_sys.c
+ intern/anim_visualization.c
intern/appdir.c
intern/armature.c
intern/armature_update.c
@@ -250,7 +251,8 @@ set(SRC
BKE_DerivedMesh.h
BKE_action.h
BKE_addon.h
- BKE_anim.h
+ BKE_anim_path.h
+ BKE_anim_visualization.h
BKE_animsys.h
BKE_appdir.h
BKE_armature.h
@@ -286,6 +288,7 @@ set(SRC
BKE_deform.h
BKE_displist.h
BKE_displist_tangent.h
+ BKE_duplilist.h
BKE_dynamicpaint.h
BKE_editlattice.h
BKE_editmesh.h
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index c332939e906..478609f2f3f 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -43,7 +43,7 @@
#include "BLT_translation.h"
#include "BKE_action.h"
-#include "BKE_anim.h"
+#include "BKE_anim_visualization.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim_path.c
index 8804e7ae26c..e073bd6fc82 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim_path.c
@@ -23,236 +23,22 @@
#include "MEM_guardedalloc.h"
-#include <stdlib.h>
+#include <float.h>
-#include "BLI_dlrbTree.h"
-#include "BLI_listbase.h"
-#include "BLI_math.h"
-
-#include "BLT_translation.h"
-
-#include "DNA_anim_types.h"
-#include "DNA_armature_types.h"
+#include "DNA_curve_types.h"
#include "DNA_key_types.h"
-#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_math_vector.h"
-#include "BKE_action.h"
-#include "BKE_anim.h"
-#include "BKE_animsys.h"
+#include "BKE_anim_path.h"
#include "BKE_curve.h"
#include "BKE_key.h"
-#include "BKE_main.h"
-#include "BKE_object.h"
-#include "BKE_particle.h"
-#include "BKE_report.h"
-#include "BKE_scene.h"
-
-#include "DEG_depsgraph.h"
-#include "DEG_depsgraph_build.h"
-#include "DEG_depsgraph_query.h"
-
-#include "GPU_batch.h"
#include "CLG_log.h"
static CLG_LogRef LOG = {"bke.anim"};
-/* --------------------- */
-/* forward declarations */
-
-/* ******************************************************************** */
-/* Animation Visualization */
-
-/* Initialize the default settings for animation visualization */
-void animviz_settings_init(bAnimVizSettings *avs)
-{
- /* sanity check */
- if (avs == NULL) {
- return;
- }
-
- /* path settings */
- avs->path_bc = avs->path_ac = 10;
-
- avs->path_sf = 1; /* xxx - take from scene instead? */
- avs->path_ef = 250; /* xxx - take from scene instead? */
-
- avs->path_viewflag = (MOTIONPATH_VIEW_KFRAS | MOTIONPATH_VIEW_KFNOS);
-
- avs->path_step = 1;
-
- avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS;
-}
-
-/* ------------------- */
-
-/* Free the given motion path's cache */
-void animviz_free_motionpath_cache(bMotionPath *mpath)
-{
- /* sanity check */
- if (mpath == NULL) {
- return;
- }
-
- /* free the path if necessary */
- if (mpath->points) {
- MEM_freeN(mpath->points);
- }
-
- GPU_VERTBUF_DISCARD_SAFE(mpath->points_vbo);
- GPU_BATCH_DISCARD_SAFE(mpath->batch_line);
- GPU_BATCH_DISCARD_SAFE(mpath->batch_points);
-
- /* reset the relevant parameters */
- mpath->points = NULL;
- mpath->length = 0;
-}
-
-/* Free the given motion path instance and its data
- * NOTE: this frees the motion path given!
- */
-void animviz_free_motionpath(bMotionPath *mpath)
-{
- /* sanity check */
- if (mpath == NULL) {
- return;
- }
-
- /* free the cache first */
- animviz_free_motionpath_cache(mpath);
-
- /* now the instance itself */
- MEM_freeN(mpath);
-}
-
-/* ------------------- */
-
-/* Make a copy of motionpath data, so that viewing with copy on write works */
-bMotionPath *animviz_copy_motionpath(const bMotionPath *mpath_src)
-{
- bMotionPath *mpath_dst;
-
- if (mpath_src == NULL) {
- return NULL;
- }
-
- mpath_dst = MEM_dupallocN(mpath_src);
- mpath_dst->points = MEM_dupallocN(mpath_src->points);
-
- /* should get recreated on draw... */
- mpath_dst->points_vbo = NULL;
- mpath_dst->batch_line = NULL;
- mpath_dst->batch_points = NULL;
-
- return mpath_dst;
-}
-
-/* ------------------- */
-
-/**
- * Setup motion paths for the given data.
- * \note Only used when explicitly calculating paths on bones which may/may not be consider already
- *
- * \param scene: Current scene (for frame ranges, etc.)
- * \param ob: Object to add paths for (must be provided)
- * \param pchan: Posechannel to add paths for (optional; if not provided, object-paths are assumed)
- */
-bMotionPath *animviz_verify_motionpaths(ReportList *reports,
- Scene *scene,
- Object *ob,
- bPoseChannel *pchan)
-{
- bAnimVizSettings *avs;
- bMotionPath *mpath, **dst;
-
- /* sanity checks */
- if (ELEM(NULL, scene, ob)) {
- return NULL;
- }
-
- /* get destination data */
- if (pchan) {
- /* paths for posechannel - assume that posechannel belongs to the object */
- avs = &ob->pose->avs;
- dst = &pchan->mpath;
- }
- else {
- /* paths for object */
- avs = &ob->avs;
- dst = &ob->mpath;
- }
-
- /* avoid 0 size allocs */
- if (avs->path_sf >= avs->path_ef) {
- BKE_reportf(reports,
- RPT_ERROR,
- "Motion path frame extents invalid for %s (%d to %d)%s",
- (pchan) ? pchan->name : ob->id.name,
- avs->path_sf,
- avs->path_ef,
- (avs->path_sf == avs->path_ef) ? TIP_(", cannot have single-frame paths") : "");
- return NULL;
- }
-
- /* if there is already a motionpath, just return that,
- * provided it's settings are ok (saves extra free+alloc)
- */
- if (*dst != NULL) {
- int expected_length = avs->path_ef - avs->path_sf;
-
- mpath = *dst;
-
- /* Path is "valid" if length is valid,
- * but must also be of the same length as is being requested. */
- if ((mpath->start_frame != mpath->end_frame) && (mpath->length > 0)) {
- /* outer check ensures that we have some curve data for this path */
- if (mpath->length == expected_length) {
- /* return/use this as it is already valid length */
- return mpath;
- }
- else {
- /* clear the existing path (as the range has changed), and reallocate below */
- animviz_free_motionpath_cache(mpath);
- }
- }
- }
- else {
- /* create a new motionpath, and assign it */
- mpath = MEM_callocN(sizeof(bMotionPath), "bMotionPath");
- *dst = mpath;
- }
-
- /* set settings from the viz settings */
- mpath->start_frame = avs->path_sf;
- mpath->end_frame = avs->path_ef;
-
- mpath->length = mpath->end_frame - mpath->start_frame;
-
- if (avs->path_bakeflag & MOTIONPATH_BAKE_HEADS) {
- mpath->flag |= MOTIONPATH_FLAG_BHEAD;
- }
- else {
- mpath->flag &= ~MOTIONPATH_FLAG_BHEAD;
- }
-
- /* set default custom values */
- mpath->color[0] = 1.0; /* Red */
- mpath->color[1] = 0.0;
- mpath->color[2] = 0.0;
-
- mpath->line_thickness = 2;
- mpath->flag |= MOTIONPATH_FLAG_LINES; /* draw lines by default */
-
- /* allocate a cache */
- mpath->points = MEM_callocN(sizeof(bMotionPathVert) * mpath->length, "bMotionPathVerts");
-
- /* tag viz settings as currently having some path(s) which use it */
- avs->path_bakeflag |= MOTIONPATH_BAKE_HAS_PATHS;
-
- /* return it */
- return mpath;
-}
-
/* ******************************************************************** */
/* Curve Paths - for curve deforms and/or curve following */
diff --git a/source/blender/blenkernel/intern/anim_visualization.c b/source/blender/blenkernel/intern/anim_visualization.c
new file mode 100644
index 00000000000..04dbe4102cc
--- /dev/null
+++ b/source/blender/blenkernel/intern/anim_visualization.c
@@ -0,0 +1,228 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ */
+
+/** \file
+ * \ingroup bke
+ */
+#include "MEM_guardedalloc.h"
+
+#include "DNA_action_types.h"
+#include "DNA_anim_types.h"
+#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
+
+#include "BLT_translation.h"
+
+#include "BKE_anim_visualization.h"
+#include "BKE_report.h"
+
+#include "GPU_batch.h"
+
+/* ******************************************************************** */
+/* Animation Visualization */
+
+/* Initialize the default settings for animation visualization */
+void animviz_settings_init(bAnimVizSettings *avs)
+{
+ /* sanity check */
+ if (avs == NULL) {
+ return;
+ }
+
+ /* path settings */
+ avs->path_bc = avs->path_ac = 10;
+
+ avs->path_sf = 1; /* xxx - take from scene instead? */
+ avs->path_ef = 250; /* xxx - take from scene instead? */
+
+ avs->path_viewflag = (MOTIONPATH_VIEW_KFRAS | MOTIONPATH_VIEW_KFNOS);
+
+ avs->path_step = 1;
+
+ avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS;
+}
+
+/* ------------------- */
+
+/* Free the given motion path's cache */
+void animviz_free_motionpath_cache(bMotionPath *mpath)
+{
+ /* sanity check */
+ if (mpath == NULL) {
+ return;
+ }
+
+ /* free the path if necessary */
+ if (mpath->points) {
+ MEM_freeN(mpath->points);
+ }
+
+ GPU_VERTBUF_DISCARD_SAFE(mpath->points_vbo);
+ GPU_BATCH_DISCARD_SAFE(mpath->batch_line);
+ GPU_BATCH_DISCARD_SAFE(mpath->batch_points);
+
+ /* reset the relevant parameters */
+ mpath->points = NULL;
+ mpath->length = 0;
+}
+
+/* Free the given motion path instance and its data
+ * NOTE: this frees the motion path given!
+ */
+void animviz_free_motionpath(bMotionPath *mpath)
+{
+ /* sanity check */
+ if (mpath == NULL) {
+ return;
+ }
+
+ /* free the cache first */
+ animviz_free_motionpath_cache(mpath);
+
+ /* now the instance itself */
+ MEM_freeN(mpath);
+}
+
+/* ------------------- */
+
+/* Make a copy of motionpath data, so that viewing with copy on write works */
+bMotionPath *animviz_copy_motionpath(const bMotionPath *mpath_src)
+{
+ bMotionPath *mpath_dst;
+
+ if (mpath_src == NULL) {
+ return NULL;
+ }
+
+ mpath_dst = MEM_dupallocN(mpath_src);
+ mpath_dst->points = MEM_dupallocN(mpath_src->points);
+
+ /* should get recreated on draw... */
+ mpath_dst->points_vbo = NULL;
+ mpath_dst->batch_line = NULL;
+ mpath_dst->batch_points = NULL;
+
+ return mpath_dst;
+}
+
+/* ------------------- */
+
+/**
+ * Setup motion paths for the given data.
+ * \note Only used when explicitly calculating paths on bones which may/may not be consider already
+ *
+ * \param scene: Current scene (for frame ranges, etc.)
+ * \param ob: Object to add paths for (must be provided)
+ * \param pchan: Posechannel to add paths for (optional; if not provided, object-paths are assumed)
+ */
+bMotionPath *animviz_verify_motionpaths(ReportList *reports,
+ Scene *scene,
+ Object *ob,
+ bPoseChannel *pchan)
+{
+ bAnimVizSettings *avs;
+ bMotionPath *mpath, **dst;
+
+ /* sanity checks */
+ if (ELEM(NULL, scene, ob)) {
+ return NULL;
+ }
+
+ /* get destination data */
+ if (pchan) {
+ /* paths for posechannel - assume that posechannel belongs to the object */
+ avs = &ob->pose->avs;
+ dst = &pchan->mpath;
+ }
+ else {
+ /* paths for object */
+ avs = &ob->avs;
+ dst = &ob->mpath;
+ }
+
+ /* avoid 0 size allocs */
+ if (avs->path_sf >= avs->path_ef) {
+ BKE_reportf(reports,
+ RPT_ERROR,
+ "Motion path frame extents invalid for %s (%d to %d)%s",
+ (pchan) ? pchan->name : ob->id.name,
+ avs->path_sf,
+ avs->path_ef,
+ (avs->path_sf == avs->path_ef) ? TIP_(", cannot have single-frame paths") : "");
+ return NULL;
+ }
+
+ /* if there is already a motionpath, just return that,
+ * provided it's settings are ok (saves extra free+alloc)
+ */
+ if (*dst != NULL) {
+ int expected_length = avs->path_ef - avs->path_sf;
+
+ mpath = *dst;
+
+ /* Path is "valid" if length is valid,
+ * but must also be of the same length as is being requested. */
+ if ((mpath->start_frame != mpath->end_frame) && (mpath->length > 0)) {
+ /* outer check ensures that we have some curve data for this path */
+ if (mpath->length == expected_length) {
+ /* return/use this as it is already valid length */
+ return mpath;
+ }
+ else {
+ /* clear the existing path (as the range has changed), and reallocate below */
+ animviz_free_motionpath_cache(mpath);
+ }
+ }
+ }
+ else {
+ /* create a new motionpath, and assign it */
+ mpath = MEM_callocN(sizeof(bMotionPath), "bMotionPath");
+ *dst = mpath;
+ }
+
+ /* set settings from the viz settings */
+ mpath->start_frame = avs->path_sf;
+ mpath->end_frame = avs->path_ef;
+
+ mpath->length = mpath->end_frame - mpath->start_frame;
+
+ if (avs->path_bakeflag & MOTIONPATH_BAKE_HEADS) {
+ mpath->flag |= MOTIONPATH_FLAG_BHEAD;
+ }
+ else {
+ mpath->flag &= ~MOTIONPATH_FLAG_BHEAD;
+ }
+
+ /* set default custom values */
+ mpath->color[0] = 1.0; /* Red */
+ mpath->color[1] = 0.0;
+ mpath->color[2] = 0.0;
+
+ mpath->line_thickness = 2;
+ mpath->flag |= MOTIONPATH_FLAG_LINES; /* draw lines by default */
+
+ /* allocate a cache */
+ mpath->points = MEM_callocN(sizeof(bMotionPathVert) * mpath->length, "bMotionPathVerts");
+
+ /* tag viz settings as currently having some path(s) which use it */
+ avs->path_bakeflag |= MOTIONPATH_BAKE_HAS_PATHS;
+
+ /* return it */
+ return mpath;
+}
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 444d63e33d0..38a9864fd36 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -51,7 +51,7 @@
#include "DNA_scene_types.h"
#include "BKE_action.h"
-#include "BKE_anim.h"
+#include "BKE_anim_visualization.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c
index e51b9ea85d1..d0a5e4348b9 100644
--- a/source/blender/blenkernel/intern/armature_update.c
+++ b/source/blender/blenkernel/intern/armature_update.c
@@ -35,7 +35,7 @@
#include "DNA_scene_types.h"
#include "BKE_action.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
#include "BKE_armature.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 04adb642fc0..28ce62c3de2 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -52,7 +52,7 @@
#include "DNA_tracking_types.h"
#include "BKE_action.h"
-#include "BKE_anim.h" /* for the curve calculation part */
+#include "BKE_anim_path.h"
#include "BKE_armature.h"
#include "BKE_bvhutils.h"
#include "BKE_cachefile.h"
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index dc2f603aa5c..907e7eb66ec 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -42,7 +42,7 @@
#include "BLI_string.h"
#include "BLI_utildefines.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
#include "BKE_font.h"
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index f7ddc4385ac..984a7a12b94 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -49,7 +49,7 @@
#include "PIL_time.h"
-#include "BKE_anim.h" /* needed for where_on_path */
+#include "BKE_anim_path.h" /* needed for where_on_path */
#include "BKE_bvhutils.h"
#include "BKE_collection.h"
#include "BKE_collision.h"
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c
index a4da7ceb861..e8ff2ccc1af 100644
--- a/source/blender/blenkernel/intern/font.c
+++ b/source/blender/blenkernel/intern/font.c
@@ -48,7 +48,7 @@
#include "DNA_packedFile_types.h"
#include "DNA_vfont_types.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
#include "BKE_curve.h"
#include "BKE_font.h"
#include "BKE_global.h"
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 3f353d6d576..65412493049 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -45,7 +45,7 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
#include "BKE_animsys.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 7a2e9583aa1..3f94958c779 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -68,7 +68,8 @@
#include "BKE_DerivedMesh.h"
#include "BKE_action.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
+#include "BKE_anim_visualization.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_camera.h"
@@ -77,6 +78,7 @@
#include "BKE_curve.h"
#include "BKE_deform.h"
#include "BKE_displist.h"
+#include "BKE_duplilist.h"
#include "BKE_editmesh.h"
#include "BKE_effect.h"
#include "BKE_fcurve.h"
diff --git a/source/blender/blenkernel/intern/object_dupli.c b/source/blender/blenkernel/intern/object_dupli.c
index 1217d230d0d..f093b8c4211 100644
--- a/source/blender/blenkernel/intern/object_dupli.c
+++ b/source/blender/blenkernel/intern/object_dupli.c
@@ -40,9 +40,9 @@
#include "DNA_scene_types.h"
#include "DNA_vfont_types.h"
-#include "BKE_anim.h"
#include "BKE_animsys.h"
#include "BKE_collection.h"
+#include "BKE_duplilist.h"
#include "BKE_editmesh.h"
#include "BKE_font.h"
#include "BKE_global.h"
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index f110a2bd3ae..067eb6ab18e 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -50,7 +50,7 @@
#include "BLT_translation.h"
-#include "BKE_anim.h"
+#include "BKE_anim_path.h"
#include "BKE_animsys.h"
#include "BKE_boids.h"
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index 76088867997..b1cff53d399 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -51,7 +51,6 @@
#include "PIL_time.h"
-#include "BKE_anim.h"
#include "BKE_appdir.h"
#include "BKE_cloth.h"
#include "BKE_collection.h"
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index b12402d74fc..0011247fcd0 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -59,13 +59,13 @@
#include "BLT_translation.h"
#include "BKE_action.h"
-#include "BKE_anim.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_cachefile.h"
#include "BKE_collection.h"
#include "BKE_colortools.h"
#include "BKE_curveprofile.h"
+#include "BKE_duplilist.h"
#include "BKE_editmesh.h"
#include "BKE_fcurve.h"
#include "BKE_freestyle.h"