#include "fcl/geometry/shape/cylinder.h"
#include "fcl/geometry/shape/sphere.h"
#include "fcl/narrowphase/contact_point.h"
#include "fcl/narrowphase/detail/primitive_shape_algorithm/sphere_cylinder-inl.h"
Go to the source code of this file.
Namespaces | |
fcl | |
Main namespace. | |
fcl::detail | |
Functions | |
Custom cylinder-sphere proximity algorithms | |
These functions provide custom algorithms for analyzing the relationship between a sphere and a cylinder. These functions make use of the Drake monogram notation to describe quantities (particularly the poses of shapes). Both shapes must be posed in a common frame (notated as F). This common frame is typically the world frame W. Regardless, if the optional output data is returned, it will be reported in this common frame F. The functions can be executed in one of two ways: to perform a strict boolean query (is colliding/is separated) or to get data which characterizes the colliding or separating state (e.g., penetration depth vs separating distance). The difference in usage is defined by whether the optional out parameters are null or non-null. In the documentation, these are labeled "(optional)". For these functions, if the sphere and cylinder are detected to be touching this is considered a collision. As such, a collision query would report true and a separating distance query would report false. | |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderDistance (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, S *distance, Vector3< S > *p_FSc, Vector3< S > *p_FCs) |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderIntersect (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, std::vector< ContactPoint< S >> *contacts) |
Custom cylinder-sphere proximity algorithms | |
These functions provide custom algorithms for analyzing the relationship between a sphere and a cylinder. These functions make use of the Drake monogram notation to describe quantities (particularly the poses of shapes). Both shapes must be posed in a common frame (notated as F). This common frame is typically the world frame W. Regardless, if the optional output data is returned, it will be reported in this common frame F. The functions can be executed in one of two ways: to perform a strict boolean query (is colliding/is separated) or to get data which characterizes the colliding or separating state (e.g., penetration depth vs separating distance). The difference in usage is defined by whether the optional out parameters are null or non-null. In the documentation, these are labeled "(optional)". For these functions, if the sphere and cylinder are detected to be touching this is considered a collision. As such, a collision query would report true and a separating distance query would report false. | |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderDistance (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, S *distance, Vector3< S > *p_FSc, Vector3< S > *p_FCs) |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderIntersect (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, std::vector< ContactPoint< S >> *contacts) |
Custom cylinder-sphere proximity algorithms | |
These functions provide custom algorithms for analyzing the relationship between a sphere and a cylinder. These functions make use of the Drake monogram notation to describe quantities (particularly the poses of shapes). Both shapes must be posed in a common frame (notated as F). This common frame is typically the world frame W. Regardless, if the optional output data is returned, it will be reported in this common frame F. The functions can be executed in one of two ways: to perform a strict boolean query (is colliding/is separated) or to get data which characterizes the colliding or separating state (e.g., penetration depth vs separating distance). The difference in usage is defined by whether the optional out parameters are null or non-null. In the documentation, these are labeled "(optional)". For these functions, if the sphere and cylinder are detected to be touching this is considered a collision. As such, a collision query would report true and a separating distance query would report false. | |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderIntersect (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, std::vector< ContactPoint< S >> *contacts) |
template<typename S > | |
FCL_EXPORT bool | fcl::detail::sphereCylinderDistance (const Sphere< S > &sphere, const Transform3< S > &X_FS, const Cylinder< S > &cylinder, const Transform3< S > &X_FC, S *distance, Vector3< S > *p_FSc, Vector3< S > *p_FCs) |