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/BKE_anim.h')
-rw-r--r--source/blender/blenkernel/BKE_anim.h45
1 files changed, 43 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h
index 584f0da323a..bfba221e488 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -41,6 +41,15 @@ struct bAnimVizSettings;
struct bMotionPath;
struct bPoseChannel;
struct ReportList;
+struct GHash;
+struct DupliCache;
+struct DupliObject;
+struct DupliObjectData;
+struct DerivedMesh;
+struct Strands;
+struct StrandsChildren;
+struct DupliCacheIterator;
+struct CacheLibrary;
/* ---------------------------------------------------- */
/* Animation Visualization */
@@ -65,11 +74,43 @@ int where_on_path(struct Object *ob, float ctime, float vec[4], float dir[3], fl
/* ---------------------------------------------------- */
/* Dupli-Geometry */
-struct ListBase *object_duplilist_ex(struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob, bool update);
-struct ListBase *object_duplilist(struct EvaluationContext *eval_ctx, struct Scene *sce, struct Object *ob);
+struct ListBase *object_duplilist_ex(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, bool update);
+struct ListBase *object_duplilist(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob);
+struct ListBase *group_duplilist_ex(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Group *group, bool update);
+struct ListBase *group_duplilist(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Group *group);
void free_object_duplilist(struct ListBase *lb);
int count_duplilist(struct Object *ob);
+void BKE_object_dupli_cache_update(struct Scene *scene, struct Object *ob, struct EvaluationContext *eval_ctx, float frame);
+void BKE_object_dupli_cache_clear(struct Object *ob);
+void BKE_object_dupli_cache_free(struct Object *ob);
+bool BKE_object_dupli_cache_contains(struct Object *ob, struct Object *other);
+struct DupliObjectData *BKE_dupli_cache_find_data(struct DupliCache *dupcache, struct Object *ob);
+
+void BKE_dupli_object_data_init(struct DupliObjectData *data, struct Object *ob);
+/* does not free data itself */
+void BKE_dupli_object_data_clear(struct DupliObjectData *data);
+void BKE_dupli_object_data_set_mesh(struct DupliObjectData *data, struct DerivedMesh *dm);
+void BKE_dupli_object_data_add_strands(struct DupliObjectData *data, const char *name, struct Strands *strands);
+void BKE_dupli_object_data_add_strands_children(struct DupliObjectData *data, const char *name, struct StrandsChildren *children);
+void BKE_dupli_object_data_find_strands(struct DupliObjectData *data, const char *name, struct Strands **r_strands, struct StrandsChildren **r_children);
+bool BKE_dupli_object_data_acquire_strands(struct DupliObjectData *data, struct Strands *strands);
+bool BKE_dupli_object_data_acquire_strands_children(struct DupliObjectData *data, struct StrandsChildren *children);
+
+struct DupliCache *BKE_dupli_cache_new(void);
+void BKE_dupli_cache_free(struct DupliCache *dupcache);
+void BKE_dupli_cache_clear(struct DupliCache *dupcache);
+void BKE_dupli_cache_clear_instances(struct DupliCache *dupcache);
+struct DupliObjectData *BKE_dupli_cache_add_object(struct DupliCache *dupcache, struct Object *ob);
+struct DupliObject *BKE_dupli_cache_add_instance(struct DupliCache *dupcache, float obmat[4][4], struct DupliObjectData *data);
+void BKE_dupli_cache_from_group(struct Scene *scene, struct Group *group, struct CacheLibrary *cachelib, struct DupliCache *dupcache, struct EvaluationContext *eval_ctx, bool calc_strands_base);
+
+struct DupliCacheIterator *BKE_dupli_cache_iter_new(struct DupliCache *dupcache);
+void BKE_dupli_cache_iter_free(struct DupliCacheIterator *iter);
+bool BKE_dupli_cache_iter_valid(struct DupliCacheIterator *iter);
+void BKE_dupli_cache_iter_next(struct DupliCacheIterator *iter);
+struct DupliObjectData *BKE_dupli_cache_iter_get(struct DupliCacheIterator *iter);
+
typedef struct DupliExtraData {
float obmat[4][4];
unsigned int lay;