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 | ||
) |