Blender V2.61 - r43446
Classes | Typedefs | Functions

anim.c File Reference

#include <stdio.h>
#include <math.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_group_types.h"
#include "DNA_key_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_scene_types.h"
#include "DNA_vfont_types.h"
#include "BKE_animsys.h"
#include "BKE_curve.h"
#include "BKE_DerivedMesh.h"
#include "BKE_depsgraph.h"
#include "BKE_font.h"
#include "BKE_group.h"
#include "BKE_global.h"
#include "BKE_key.h"
#include "BKE_lattice.h"
#include "BKE_main.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
#include "BKE_particle.h"
#include "BKE_scene.h"
#include "BKE_utildefines.h"
#include "BKE_anim.h"
#include "BKE_report.h"

Go to the source code of this file.

Classes

struct  MPathTarget
struct  vertexDupliData

Typedefs

typedef struct MPathTarget MPathTarget
typedef struct vertexDupliData vertexDupliData

Functions

static void object_duplilist_recursive (ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int level, int animated)
void animviz_settings_init (bAnimVizSettings *avs)
void animviz_free_motionpath_cache (bMotionPath *mpath)
void animviz_free_motionpath (bMotionPath *mpath)
bMotionPathanimviz_verify_motionpaths (ReportList *reports, Scene *scene, Object *ob, bPoseChannel *pchan)
void animviz_get_object_motionpaths (Object *ob, ListBase *targets)
static void motionpaths_calc_optimise_depsgraph (Scene *scene, ListBase *targets)
static void motionpaths_calc_update_scene (Scene *scene)
static void motionpaths_calc_bake_targets (Scene *scene, ListBase *targets)
void animviz_calc_motionpaths (Scene *scene, ListBase *targets)
void free_path (Path *path)
void calc_curvepath (Object *ob)
int interval_test (int min, int max, int p1, int cycl)
int where_on_path (Object *ob, float ctime, float *vec, float *dir, float *quat, float *radius, float *weight)
static DupliObjectnew_dupli_object (ListBase *lb, Object *ob, float mat[][4], int lay, int index, int type, int animated)
static void group_duplilist (ListBase *lb, Scene *scene, Object *ob, int level, int animated)
static void frames_duplilist (ListBase *lb, Scene *scene, Object *ob, int level, int animated)
static void vertex_dupli__mapFunc (void *userData, int index, float *co, float *no_f, short *no_s)
static void vertex_duplilist (ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int level, int animated)
static void face_duplilist (ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int level, int animated)
static void new_particle_duplilist (ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], ParticleSystem *psys, int level, int animated)
static Objectfind_family_object (Object **obar, char *family, char ch)
static void font_duplilist (ListBase *lb, Scene *scene, Object *par, int level, int animated)
ListBaseobject_duplilist (Scene *sce, Object *ob)
void free_object_duplilist (ListBase *lb)
int count_duplilist (Object *ob)

Detailed Description

Definition in file anim.c.


Typedef Documentation

typedef struct MPathTarget MPathTarget

Function Documentation

void animviz_calc_motionpaths ( Scene scene,
ListBase targets 
)
void animviz_free_motionpath ( bMotionPath mpath)
void animviz_free_motionpath_cache ( bMotionPath mpath)

Definition at line 113 of file anim.c.

References bMotionPath::length, MEM_freeN(), NULL, and bMotionPath::points.

Referenced by animviz_free_motionpath().

void animviz_get_object_motionpaths ( Object ob,
ListBase targets 
)
void animviz_settings_init ( bAnimVizSettings avs)
bMotionPath* animviz_verify_motionpaths ( ReportList reports,
Scene scene,
Object ob,
bPoseChannel pchan 
) [read]
void calc_curvepath ( Object ob)
int count_duplilist ( Object ob)
static void face_duplilist ( ListBase lb,
ID id,
Scene scene,
Object par,
float  par_space_mat[][4],
int  level,
int  animated 
) [static]
static Object* find_family_object ( Object **  obar,
char *  family,
char  ch 
) [static]

Definition at line 1477 of file anim.c.

References G, Object::id, ID::name, ID::next, and strlen().

Referenced by font_duplilist().

static void font_duplilist ( ListBase lb,
Scene scene,
Object par,
int  level,
int  animated 
) [static]
static void frames_duplilist ( ListBase lb,
Scene scene,
Object ob,
int  level,
int  animated 
) [static]
void free_object_duplilist ( ListBase lb)
void free_path ( Path path)
static void group_duplilist ( ListBase lb,
Scene scene,
Object ob,
int  level,
int  animated 
) [static]
int interval_test ( int  min,
int  max,
int  p1,
int  cycl 
)

Definition at line 572 of file anim.c.

References max, and min.

Referenced by where_on_path().

static void motionpaths_calc_bake_targets ( Scene scene,
ListBase targets 
) [static]
static void motionpaths_calc_optimise_depsgraph ( Scene scene,
ListBase targets 
) [static]
static void motionpaths_calc_update_scene ( Scene scene) [static]
static DupliObject* new_dupli_object ( ListBase lb,
Object ob,
float  mat[][4],
int  lay,
int  index,
int  type,
int  animated 
) [static]
static void new_particle_duplilist ( ListBase lb,
ID id,
Scene scene,
Object par,
float  par_space_mat[][4],
ParticleSystem psys,
int  level,
int  animated 
) [static]

Definition at line 1185 of file anim.c.

References add_v3_v3v3(), BKE_curframe(), BLI_rand(), BLI_srandom(), ParticleSystem::child, ParticleSystem::childcache, ParticleKey::co, ParticleCacheKey::co, copy_m4_m4(), copy_v3_v3(), ParticleDupliWeight::count, ParticleSettings::draw, ParticleSettings::draw_as, ParticleSettings::dup_group, ParticleSettings::dup_ob, Group::dupli_ofs, ParticleSettings::dupliweights, ELEM, end_latt_deform(), ListBase::first, ParticleData::flag, ParticleSystem::flag, G, Group::gobject, group_handle_recalc_and_update(), GS, ID_GR, ParticleSystem::imat, Object::imat, invert_m4_m4(), is_zero_v3(), ParticleSystem::lattice, Object::lay, MAX_DUPLI_RECUR, MEM_callocN(), MEM_freeN(), mul_mat3_m4_fl(), mult_m4_m4m4(), ID::name, new_dupli_object(), GroupObject::next, ParticleDupliWeight::next, normalize_qt_qt(), NULL, ParticleSimulationData::ob, GroupObject::ob, ParticleDupliWeight::ob, OB_DUPLIGROUP, OB_DUPLIPARTS, Object::obmat, DupliObject::omat, DupliObject::orco, ChildParticle::parent, PARS_NO_DISP, PARS_UNEXIST, ParticleSystem::part, PART_DRAW_COUNT_GR, PART_DRAW_GLOBAL_OB, PART_DRAW_GR, PART_DRAW_OB, PART_DRAW_PARENT, PART_DRAW_RAND_GR, PART_DRAW_REND, PART_DRAW_ROTATE_OB, PART_DRAW_WHOLE_GR, PART_HAIR, ParticleSystem::particles, ParticleSystem::pathcache, ParticleSimulationData::psmd, ParticleSimulationData::psys, psys_check_enabled(), psys_check_group_weights(), psys_get_child_size(), psys_get_dupli_path_transform(), psys_get_dupli_texture(), psys_get_lattice(), psys_get_modifier(), psys_get_particle_state(), PSYS_HAIR_DONE, quat_to_mat4(), ParticleSettings::ren_as, ParticleSystem::renderdata, ParticleKey::rot, ParticleSimulationData::scene, ParticleSystem::seed, ParticleData::size, size(), state, ParticleCacheKey::steps, sub_v3_v3v3(), ParticleKey::time, ParticleData::time, ParticleSystem::totcached, ParticleSystem::totchild, ParticleSystem::totchildcache, ParticleSystem::totpart, Object::trackflag, ParticleSettings::type, Object::upflag, DupliObject::uv, vec_to_quat(), and where_is_object_time().

Referenced by object_duplilist_recursive().

ListBase* object_duplilist ( Scene sce,
Object ob 
) [read]
static void object_duplilist_recursive ( ID id,
Scene scene,
Object ob,
ListBase duplilist,
float  par_space_mat[][4],
int  level,
int  animated 
) [static]
static void vertex_dupli__mapFunc ( void *  userData,
int  index,
float *  co,
float *  no_f,
short *  no_s 
) [static]
static void vertex_duplilist ( ListBase lb,
ID id,
Scene scene,
Object par,
float  par_space_mat[][4],
int  level,
int  animated 
) [static]
int where_on_path ( Object ob,
float  ctime,
float *  vec,
float *  dir,
float *  quat,
float *  radius,
float *  weight 
)