Blender
V3.3
|
GIM_BOX_SET collision methods. More...
#include <gim_box_set.h>
Public Member Functions | |
GIM_TREE_TREE_COLLIDER () | |
void | find_collision (BOX_SET_CLASS0 *boxset1, const btTransform &trans1, BOX_SET_CLASS1 *boxset2, const btTransform &trans2, gim_pair_set &collision_pairs, bool complete_primitive_tests=true) |
Protected Member Functions | |
SIMD_FORCE_INLINE void | retrieve_node0_triangle (GUINT node0) |
SIMD_FORCE_INLINE void | retrieve_node1_triangle (GUINT node1) |
SIMD_FORCE_INLINE void | retrieve_node0_info (GUINT node0) |
SIMD_FORCE_INLINE void | retrieve_node1_info (GUINT node1) |
SIMD_FORCE_INLINE bool | node_collision (GUINT node0, GUINT node1) |
void | find_collision_pairs () |
GIM_BOX_SET collision methods.
Definition at line 433 of file gim_box_set.h.
|
inline |
Definition at line 457 of file gim_box_set.h.
References GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node1, and G_UINT_INFINITY.
|
inline |
Definition at line 612 of file gim_box_set.h.
References GIM_BOX_BOX_TRANSFORM_CACHE::calc_from_homogenic(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_collision_pairs, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t0_is_trimesh, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t1_is_trimesh, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_0to1, and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_1to0.
|
inlineprotected |
Definition at line 549 of file gim_box_set.h.
References gim_array< T >::back(), GUINT, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_collision_pairs, GIM_PAIR::m_index1, GIM_PAIR::m_index2, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_is_leaf, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_is_leaf, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), gim_array< T >::pop_back(), gim_pair_set::push_pair(), gim_array< T >::reserve(), and gim_array< T >::size().
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision().
|
inlineprotected |
Definition at line 508 of file gim_box_set.h.
References GIM_AABB::collide_triangle_exact(), GIM_AABB::increment_margin(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box1, GIM_TRIANGLE::m_margin, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0_plane, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1_plane, GIM_TRIANGLE::m_vertices, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_is_leaf, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_is_leaf, GIM_AABB::overlapping_trans_cache(), result, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t0_is_trimesh, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t1_is_trimesh, and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_1to0.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs().
|
inlineprotected |
Definition at line 490 of file gim_box_set.h.
References GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_has_triangle, and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_is_leaf.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
|
inlineprotected |
Definition at line 464 of file gim_box_set.h.
References GIM_TRIANGLE::get_plane(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0_plane, GIM_TRIANGLE::m_vertices, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_has_triangle, and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_0to1.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
|
inlineprotected |
Definition at line 499 of file gim_box_set.h.
References GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_has_triangle, and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_is_leaf.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
|
inlineprotected |
Definition at line 477 of file gim_box_set.h.
References GIM_TRIANGLE::get_plane(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1_plane, GIM_TRIANGLE::m_vertices, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_has_triangle, GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_1to0, and GIM_BOX_BOX_TRANSFORM_CACHE::transform().
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
GUINT GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node0 |
Definition at line 439 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::GIM_TREE_TREE_COLLIDER(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info().
GUINT GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::current_node1 |
Definition at line 440 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::GIM_TREE_TREE_COLLIDER(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info().
GIM_AABB GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box0 |
Definition at line 447 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info().
GIM_AABB GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_box1 |
Definition at line 448 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info().
BOX_SET_CLASS0* GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset0 |
Definition at line 437 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle().
BOX_SET_CLASS1* GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_boxset1 |
Definition at line 438 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle().
gim_pair_set* GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_collision_pairs |
Definition at line 436 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs().
GIM_TRIANGLE GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0 |
Definition at line 451 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle().
btVector4 GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri0_plane |
Definition at line 452 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle().
GIM_TRIANGLE GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1 |
Definition at line 453 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle().
btVector4 GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::m_tri1_plane |
Definition at line 454 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_has_triangle |
Definition at line 445 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node0_is_leaf |
Definition at line 441 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_info().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_has_triangle |
Definition at line 446 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node1_is_leaf |
Definition at line 442 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision_pairs(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_info().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t0_is_trimesh |
Definition at line 443 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
bool GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::t1_is_trimesh |
Definition at line 444 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision().
btTransform GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_0to1 |
Definition at line 450 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node0_triangle().
GIM_BOX_BOX_TRANSFORM_CACHE GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::trans_cache_1to0 |
Definition at line 449 of file gim_box_set.h.
Referenced by GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::find_collision(), GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::node_collision(), and GIM_TREE_TREE_COLLIDER< BOX_SET_CLASS0, BOX_SET_CLASS1 >::retrieve_node1_triangle().