diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_anim.h')
-rw-r--r-- | source/blender/blenkernel/BKE_anim.h | 45 |
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; |