![]() |
Blender V2.61 - r43446
|
#include <math.h>#include <float.h>#include <stdlib.h>#include <string.h>#include "BKE_collision.h"#include "DNA_cloth_types.h"#include "BLI_kdopbvh.h"Go to the source code of this file.
Classes | |
| struct | CollPair |
| struct | EdgeCollPair |
| struct | FaceCollPair |
| struct | ColliderCache |
Typedefs | |
| typedef struct CollPair | CollPair |
| typedef struct EdgeCollPair | EdgeCollPair |
| typedef struct FaceCollPair | FaceCollPair |
| typedef struct ColliderCache | ColliderCache |
Enumerations | |
| enum | COLLISION_FLAGS { COLLISION_IN_FUTURE = (1 << 1) } |
Functions | |
| BVHTree * | bvhtree_build_from_mvert (struct MFace *mfaces, unsigned int numfaces, struct MVert *x, unsigned int numverts, float epsilon) |
| void | bvhtree_update_from_mvert (BVHTree *bvhtree, struct MFace *faces, int numfaces, struct MVert *x, struct MVert *xnew, int numverts, int moving) |
| struct LinkNode * | BLI_linklist_append_fast (struct LinkNode **listp, void *ptr) |
| void | collision_move_object (struct CollisionModifierData *collmd, float step, float prevstep) |
| void | collisions_compute_barycentric (float pv[3], float p1[3], float p2[3], float p3[3], float *w1, float *w2, float *w3) |
| void | interpolateOnTriangle (float to[3], float v1[3], float v2[3], float v3[3], double w1, double w2, double w3) |
| struct Object ** | get_collisionobjects (struct Scene *scene, struct Object *self, struct Group *group, unsigned int *numcollobj) |
| struct ListBase * | get_collider_cache (struct Scene *scene, struct Object *self, struct Group *group) |
| void | free_collider_cache (struct ListBase **colliders) |
Definition in file BKE_collision.h.
| typedef struct ColliderCache ColliderCache |
| typedef struct EdgeCollPair EdgeCollPair |
| typedef struct FaceCollPair FaceCollPair |
| enum COLLISION_FLAGS |
Definition at line 62 of file BKE_collision.h.
| BVHTree* bvhtree_build_from_mvert | ( | struct MFace * | mfaces, |
| unsigned int | numfaces, | ||
| struct MVert * | x, | ||
| unsigned int | numverts, | ||
| float | epsilon | ||
| ) |
Referenced by deformVerts().
| void bvhtree_update_from_mvert | ( | BVHTree * | bvhtree, |
| struct MFace * | faces, | ||
| int | numfaces, | ||
| struct MVert * | x, | ||
| struct MVert * | xnew, | ||
| int | numverts, | ||
| int | moving | ||
| ) |
Referenced by collision_move_object(), and deformVerts().
| void collision_move_object | ( | struct CollisionModifierData * | collmd, |
| float | step, | ||
| float | prevstep | ||
| ) |
Definition at line 77 of file collision.c.
References CollisionModifierData::bvhtree, bvhtree_update_from_mvert(), MVert::co, CollisionModifierData::current_v, CollisionModifierData::current_x, CollisionModifierData::current_xnew, i, CollisionModifierData::mfaces, CollisionModifierData::numfaces, CollisionModifierData::numverts, VECADDS, VECSUB, CollisionModifierData::x, and CollisionModifierData::xnew.
Referenced by add_collider_cache_object(), and cloth_bvh_objcollision().
| void collisions_compute_barycentric | ( | float | pv[3], |
| float | p1[3], | ||
| float | p2[3], | ||
| float | p3[3], | ||
| float * | w1, | ||
| float * | w2, | ||
| float * | w3 | ||
| ) |
| void free_collider_cache | ( | struct ListBase ** | colliders | ) |
Definition at line 2257 of file collision.c.
References BLI_freelistN(), MEM_freeN(), and NULL.
Referenced by dynamics_step(), eff_calc_visibility(), and hair_velocity_smoothing().
| struct ListBase* get_collider_cache | ( | struct Scene * | scene, |
| struct Object * | self, | ||
| struct Group * | group | ||
| ) | [read] |
Definition at line 2232 of file collision.c.
References add_collider_cache_object(), ListBase::first, Group::gobject, Base::lay, GroupObject::next, NULL, GroupObject::ob, Base::object, and SETLOOPER.
Referenced by dynamics_step(), eff_calc_visibility(), and hair_velocity_smoothing().
| struct Object** get_collisionobjects | ( | struct Scene * | scene, |
| struct Object * | self, | ||
| struct Group * | group, | ||
| unsigned int * | numcollobj | ||
| ) | [read] |
Definition at line 2168 of file collision.c.
References add_collision_object(), ListBase::first, Group::gobject, Base::lay, MEM_callocN(), GroupObject::next, GroupObject::ob, Base::object, and SETLOOPER.
Referenced by cloth_bvh_objcollision().
| void interpolateOnTriangle | ( | float | to[3], |
| float | v1[3], | ||
| float | v2[3], | ||
| float | v3[3], | ||
| double | w1, | ||
| double | w2, | ||
| double | w3 | ||
| ) |