Namespaces | Functions
narrowphase/detail/primitive_shape_algorithm/plane.h File Reference
#include "fcl/geometry/shape/sphere.h"
#include "fcl/geometry/shape/ellipsoid.h"
#include "fcl/geometry/shape/box.h"
#include "fcl/geometry/shape/capsule.h"
#include "fcl/geometry/shape/cylinder.h"
#include "fcl/geometry/shape/cone.h"
#include "fcl/geometry/shape/convex.h"
#include "fcl/geometry/shape/plane.h"
#include "fcl/narrowphase/contact_point.h"
#include "fcl/narrowphase/detail/primitive_shape_algorithm/plane-inl.h"
Include dependency graph for narrowphase/detail/primitive_shape_algorithm/plane.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 fcl
 Main namespace.
 
 fcl::detail
 

Functions

template<typename S >
FCL_EXPORT bool fcl::detail::boxPlaneIntersect (const Box< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 box half space, a, b, c = +/- edge size n^T * (R(o + a v1 + b v2 + c v3) + T) ~ d so (R^T n) (a v1 + b v2 + c v3) + n * T ~ d check whether d - n * T - (R^T n) (a v1 + b v2 + c v3) >= 0 for some a, b, c and <=0 for some a, b, c so need to check whether |d - n * T| <= |(R^T n)(a v1 + b v2 + c v3)|, the reason is as follows: (R^T n) (a v1 + b v2 + c v3) can get |(R^T n) (a v1 + b v2 + c v3)| for one a, b, c. if |d - n * T| <= |(R^T n)(a v1 + b v2 + c v3)| then can get both positive and negative value on the right side. More...
 
template<typename S >
FCL_EXPORT bool fcl::detail::capsulePlaneIntersect (const Capsule< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2)
 
template<typename S >
FCL_EXPORT bool fcl::detail::capsulePlaneIntersect (const Capsule< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 
template<typename S >
FCL_EXPORT bool fcl::detail::conePlaneIntersect (const Cone< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 
template<typename S >
FCL_EXPORT bool fcl::detail::convexPlaneIntersect (const Convex< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, Vector3< S > *contact_points, S *penetration_depth, Vector3< S > *normal)
 
template<typename S >
FCL_EXPORT bool fcl::detail::cylinderPlaneIntersect (const Cylinder< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2)
 cylinder-plane intersect n^T (R (r * cosa * v1 + r * sina * v2 + h * v3) + T) ~ d need one point to be positive and one to be negative (n^T * v3) * h + n * T -d + r * (cosa * (n^T * R * v1) + sina * (n^T * R * v2)) ~ 0 (n^T * v3) * h + r * (cosa * (n^T * R * v1) + sina * (n^T * R * v2)) + n * T - d ~ 0 More...
 
template<typename S >
FCL_EXPORT bool fcl::detail::cylinderPlaneIntersect (const Cylinder< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 
template<typename S >
FCL_EXPORT bool fcl::detail::ellipsoidPlaneIntersect (const Ellipsoid< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 
template<typename S >
FCL_EXPORT bool fcl::detail::planeIntersect (const Plane< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 
template<>
FCL_EXPORT double fcl::detail::planeIntersectTolerance ()
 
template<typename S >
FCL_EXPORT S fcl::detail::planeIntersectTolerance ()
 
template<typename S >
FCL_EXPORT bool fcl::detail::planeTriangleIntersect (const Plane< S > &s1, const Transform3< S > &tf1, const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Transform3< S > &tf2, Vector3< S > *contact_points, S *penetration_depth, Vector3< S > *normal)
 
template<typename S >
FCL_EXPORT bool fcl::detail::spherePlaneIntersect (const Sphere< S > &s1, const Transform3< S > &tf1, const Plane< S > &s2, const Transform3< S > &tf2, std::vector< ContactPoint< S >> *contacts)
 


fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:49