Classes | Functions

OpenTissue::collision::continuous Namespace Reference

Classes

class  DefaultMotionPolicy

Functions

template<typename transform_type , typename object_type1 , typename object_type2 , typename motion_policy >
bool conservative_advancement (transform_type const &T_a, typename transform_type::vector3_type const &v_a, typename transform_type::vector3_type const &omega_a, object_type1 &A, typename transform_type::value_type const &r_max_a, transform_type const &T_b, typename transform_type::vector3_type const &v_b, typename transform_type::vector3_type const &omega_b, object_type2 &B, typename transform_type::value_type const &r_max_b, typename transform_type::vector3_type &p_a, typename transform_type::vector3_type &p_b, typename transform_type::value_type &time_of_impact, size_t &iterations, typename transform_type::value_type const &epsilon, typename transform_type::value_type const &max_tau, size_t const &max_iterations, motion_policy const &)
template<typename transform_type , typename object_type1 , typename object_type2 , typename motion_policy >
bool motion_interpolation (transform_type const &A_from, transform_type const &A_to, object_type1 &A, typename transform_type::value_type const &r_max_a, transform_type const &B_from, transform_type const &B_to, object_type2 &B, typename transform_type::value_type const &r_max_b, typename transform_type::vector3_type &p_a, typename transform_type::vector3_type &p_b, typename transform_type::value_type &time_of_impact, size_t &iterations, typename transform_type::value_type const &epsilon, size_t const &max_iterations, motion_policy const &policy)

Function Documentation

template<typename transform_type , typename object_type1 , typename object_type2 , typename motion_policy >
bool OpenTissue::collision::continuous::conservative_advancement ( transform_type const &  T_a,
typename transform_type::vector3_type const &  v_a,
typename transform_type::vector3_type const &  omega_a,
object_type1 &  A,
typename transform_type::value_type const &  r_max_a,
transform_type const &  T_b,
typename transform_type::vector3_type const &  v_b,
typename transform_type::vector3_type const &  omega_b,
object_type2 &  B,
typename transform_type::value_type const &  r_max_b,
typename transform_type::vector3_type p_a,
typename transform_type::vector3_type p_b,
typename transform_type::value_type &  time_of_impact,
size_t &  iterations,
typename transform_type::value_type const &  epsilon,
typename transform_type::value_type const &  max_tau,
size_t const &  max_iterations,
motion_policy const &   
) [inline]

Conservative Advancement. This function tries to determine whether two objects have impacted during their motion. The function assumes that the objects will move continuously in the future with contact linear and angular velocities.

Parameters:
T_a The initial placement of object A.
v_a The contact linear velocity of object A.
w_a The contact angular velocity of object A.
A The shape/geometry of object A.
r_max_a Maximum radius of the shape of object A.
T_b The initial placement of object B.
v_b The contact linear velocity of object B.
w_b The contact angular velocity of object B.
B The shape/geometry of object B.
r_max_b Maximum radius of the shape of object B.
p_a Upon return this argument holds the cloest point on object A in case of an impact.
p_b Upon return this argument holds the cloest point on object B in case of an impact.
time_of_impact Upon return if an impact is found then this argument holds the estimated value of the time of impact.
iterations Upon return this argument holds the number of used iterations by the function. If the value is equal to the max_iterations argument then the function did not converge to an answer.
epsilon The size of the collision envelope. That is the smallest separation distance between A and B where we consider A and B to be in touching contact.
max_tau The maximum time into the future that the function will look for a time of impact.
max_iterations The maximum number of allowed iterations that the function can take.
policy A motion policy that provides the details of any sub-algorithms/routines needed by the function.
Returns:
If an impact is found then the return value is true otherwise it is false.
template<typename transform_type , typename object_type1 , typename object_type2 , typename motion_policy >
bool OpenTissue::collision::continuous::motion_interpolation ( transform_type const &  A_from,
transform_type const &  A_to,
object_type1 &  A,
typename transform_type::value_type const &  r_max_a,
transform_type const &  B_from,
transform_type const &  B_to,
object_type2 &  B,
typename transform_type::value_type const &  r_max_b,
typename transform_type::vector3_type p_a,
typename transform_type::vector3_type p_b,
typename transform_type::value_type &  time_of_impact,
size_t &  iterations,
typename transform_type::value_type const &  epsilon,
size_t const &  max_iterations,
motion_policy const &  policy 
) [inline]

Motion Interpolation. This function tries to determine whether two objects have impacted during their motion. The motion of the objects is specified by giving initial and final positions of the objects. From these discrete poses the function will reconstruct the continuous inbetween motion under the assumption that the objects moved at contact linear and angular velocities between their starting and finial positions.

Parameters:
A_from The initial placement of object A.
A_to The final placement of object A.
A The shape/geometry of object A.
r_max_a Maximum radius of the shape of object A.
B_from The initial placement of object B.
B_to The final placement of object B.
B The shape/geometry of object B.
r_max_b Maximum radius of the shape of object B.
p_a Upon return this argument holds the cloest point on object A in case of an impact.
p_b Upon return this argument holds the cloest point on object B in case of an impact.
time_of_impact Upon return if an impact is found then this argument holds the estimated value of the time of impact.
iterations Upon return this argument holds the number of used iterations by the function. If the value is equal to the max_iterations argument then the function did not converge to an answer.
epsilon The size of the collision envelope. That is the smallest separation distance between A and B where we consider A and B to be in touching contact.
max_iterations The maximum number of allowed iterations that the function can take.
policy A motion policy that provides the details of any sub-algorithms/routines needed by the function.
Returns:
If an impact is found then the return value is true otherwise it is false.