Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | CollPair |
struct | EdgeCollPair |
struct | FaceCollPair |
struct | CollisionRelation |
struct | ColliderCache |
Typedefs | |
typedef struct CollPair | CollPair |
typedef struct EdgeCollPair | EdgeCollPair |
typedef struct FaceCollPair | FaceCollPair |
typedef struct CollisionRelation | CollisionRelation |
typedef struct ColliderCache | ColliderCache |
Enumerations | |
enum | COLLISION_FLAGS { COLLISION_IN_FUTURE = (1 << 1) , COLLISION_INACTIVE = (1 << 4) } |
Functions | |
struct BVHTree * | bvhtree_build_from_mvert (const struct MVert *mvert, const struct MVertTri *tri, int tri_num, float epsilon) |
void | bvhtree_update_from_mvert (struct BVHTree *bvhtree, const struct MVert *mvert, const struct MVert *mvert_moving, const struct MVertTri *tri, int tri_num, bool moving) |
void | collision_move_object (struct CollisionModifierData *collmd, float step, float prevstep, bool moving_bvh) |
void | collision_get_collider_velocity (float vel_old[3], float vel_new[3], struct CollisionModifierData *collmd, struct CollPair *collpair) |
struct ListBase * | BKE_collision_relations_create (struct Depsgraph *depsgraph, struct Collection *collection, unsigned int modifier_type) |
void | BKE_collision_relations_free (struct ListBase *relations) |
struct Object ** | BKE_collision_objects_create (struct Depsgraph *depsgraph, struct Object *self, struct Collection *collection, unsigned int *numcollobj, unsigned int modifier_type) |
void | BKE_collision_objects_free (struct Object **objects) |
struct ListBase * | BKE_collider_cache_create (struct Depsgraph *depsgraph, struct Object *self, struct Collection *collection) |
void | BKE_collider_cache_free (struct ListBase **colliders) |
typedef struct ColliderCache ColliderCache |
typedef struct CollisionRelation CollisionRelation |
typedef struct EdgeCollPair EdgeCollPair |
typedef struct FaceCollPair FaceCollPair |
enum COLLISION_FLAGS |
Enumerator | |
---|---|
COLLISION_IN_FUTURE | |
COLLISION_INACTIVE |
Definition at line 26 of file BKE_collision.h.
struct ListBase* BKE_collider_cache_create | ( | struct Depsgraph * | depsgraph, |
struct Object * | self, | ||
struct Collection * | collection | ||
) |
Create effective list of colliders from relations built beforehand. Self will be excluded.
Definition at line 1322 of file collision.c.
References BKE_modifiers_findby_type(), BLI_addtail(), CollisionModifierData::bvhtree, col, collision_move_object(), DEG_get_collision_relations(), DEG_get_evaluated_id(), depsgraph, eModifierType_Collision, LISTBASE_FOREACH, MEM_callocN, and NULL.
Referenced by dynamics_step(), and eff_calc_visibility().
Definition at line 1359 of file collision.c.
References BLI_freelistN(), MEM_freeN, and NULL.
Referenced by dynamics_step(), eff_calc_visibility(), and SCULPT_cloth_simulation_free().
struct Object** BKE_collision_objects_create | ( | struct Depsgraph * | depsgraph, |
struct Object * | self, | ||
struct Collection * | collection, | ||
unsigned int * | numcollobj, | ||
unsigned int | modifier_type | ||
) |
Create effective list of colliders from relations built beforehand. Self will be excluded.
Definition at line 1275 of file collision.c.
References BLI_listbase_count(), PartDeflect::deflect, DEG_get_collision_relations(), DEG_get_evaluated_id(), depsgraph, eModifierType_Collision, LISTBASE_FOREACH, MEM_callocN, MEM_freeN, NULL, and Object::pd.
Referenced by ccd_build_deflector_hash(), ccd_update_deflector_hash(), cloth_bvh_collision(), dynamicPaint_doStep(), query_external_colliders(), and surface_getBrushFlags().
Definition at line 1315 of file collision.c.
References MEM_freeN.
Referenced by ccd_build_deflector_hash(), ccd_update_deflector_hash(), cloth_bvh_collision(), dynamicPaint_doStep(), query_external_colliders(), and surface_getBrushFlags().
struct ListBase* BKE_collision_relations_create | ( | struct Depsgraph * | depsgraph, |
struct Collection * | collection, | ||
unsigned int | modifier_type | ||
) |
Create list of collision relations in the collection or entire scene. This is used by the depsgraph to build relations, as well as faster lookup of colliders during evaluation.
Definition at line 1247 of file collision.c.
References add_collision_object(), BASE_ENABLED_RENDER, BASE_ENABLED_VIEWPORT, BKE_collection_or_layer_objects(), DAG_EVAL_RENDER, DEG_get_input_view_layer(), DEG_get_mode(), depsgraph, Base::flag, MEM_callocN, Base::next, and Base::object.
Referenced by blender::deg::build_collision_relations().
Definition at line 1267 of file collision.c.
References BLI_freelistN(), and MEM_freeN.
Referenced by blender::deg::clear_physics_relations().
struct BVHTree* bvhtree_build_from_mvert | ( | const struct MVert * | mvert, |
const struct MVertTri * | tri, | ||
int | tri_num, | ||
float | epsilon | ||
) |
Referenced by deformVerts().
void bvhtree_update_from_mvert | ( | struct BVHTree * | bvhtree, |
const struct MVert * | mvert, | ||
const struct MVert * | mvert_moving, | ||
const struct MVertTri * | tri, | ||
int | tri_num, | ||
bool | moving | ||
) |
Referenced by deformVerts().
void collision_get_collider_velocity | ( | float | vel_old[3], |
float | vel_new[3], | ||
struct CollisionModifierData * | collmd, | ||
struct CollPair * | collpair | ||
) |
Definition at line 1716 of file collision.c.
References CollPair::bp1, CollPair::bp2, CollPair::bp3, MVert::co, collision_compute_barycentric(), collision_interpolateOnTriangle(), copy_v3_v3(), CollisionModifierData::current_v, CollisionModifierData::current_x, CollPair::pb, u1, and u2.
void collision_move_object | ( | struct CollisionModifierData * | collmd, |
float | step, | ||
float | prevstep, | ||
bool | moving_bvh | ||
) |
Move Collision modifier object inter-frame with step = [0,1]
step | is limited from 0 (frame start position) to 1 (frame end position). |
Definition at line 65 of file collision.c.
References CollisionModifierData::bvhtree, bvhtree_update_from_mvert(), MVert::co, CollisionModifierData::current_v, CollisionModifierData::current_x, CollisionModifierData::current_xnew, interp_v3_v3v3(), CollisionModifierData::is_static, CollisionModifierData::mvert_num, sub_v3_v3v3(), CollisionModifierData::tri, CollisionModifierData::tri_num, CollisionModifierData::x, CollisionModifierData::xnew, and zero_v3().
Referenced by BKE_collider_cache_create(), cloth_brush_collider_cache_create(), and cloth_bvh_collision().