triangle_motion_bound_visitor.h
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2011-2014, Willow Garage, Inc.
5  * Copyright (c) 2014-2016, Open Source Robotics Foundation
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * * Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above
15  * copyright notice, this list of conditions and the following
16  * disclaimer in the documentation and/or other materials provided
17  * with the distribution.
18  * * Neither the name of Open Source Robotics Foundation nor the names of its
19  * contributors may be used to endorse or promote products derived
20  * from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  */
35 
38 #ifndef FCL_CCD_TRIANGLEMOTIONBOUNDVISITOR_H
39 #define FCL_CCD_TRIANGLEMOTIONBOUNDVISITOR_H
40 
41 #include "fcl/common/unused.h"
42 
45 #include "fcl/math/bv/RSS.h"
51 
52 namespace fcl
53 {
54 
55 template <typename S>
56 class MotionBase;
57 
58 template <typename S>
59 class SplineMotion;
60 
61 template <typename S>
62 class ScrewMotion;
63 
64 template <typename S>
65 class InterpMotion;
66 
67 template <typename S>
68 class TranslationMotion;
69 
70 template <typename, typename>
71 struct TriangleMotionBoundVisitorVisitImpl;
72 
73 template <typename S>
74 class FCL_EXPORT TriangleMotionBoundVisitor
75 {
76 public:
77  TriangleMotionBoundVisitor(
78  const Vector3<S>& a_, const Vector3<S>& b_,
79  const Vector3<S>& c_, const Vector3<S>& n_);
80 
81  virtual S visit(const MotionBase<S>& motion) const { FCL_UNUSED(motion); return 0; }
82  virtual S visit(const SplineMotion<S>& motion) const;
83  virtual S visit(const ScrewMotion<S>& motion) const;
84  virtual S visit(const InterpMotion<S>& motion) const;
85  virtual S visit(const TranslationMotion<S>& motion) const;
86 
87 protected:
88  template <typename, typename>
90 
91  friend struct TriangleMotionBoundVisitorVisitImpl<double, SplineMotion<double>>;
92  friend struct TriangleMotionBoundVisitorVisitImpl<double, ScrewMotion<double>>;
93  friend struct TriangleMotionBoundVisitorVisitImpl<double, InterpMotion<double>>;
95 
96  Vector3<S> a, b, c, n;
97 };
98 
99 } // namespace fcl
100 
102 
103 #endif
fcl::SplineMotion
Definition: bv_motion_bound_visitor.h:48
screw_motion.h
taylor_vector.h
interp_motion.h
translation_motion.h
triangle_motion_bound_visitor-inl.h
fcl::ScrewMotion
Definition: bv_motion_bound_visitor.h:51
fcl::TriangleMotionBoundVisitor::n
Vector3< S > n
Definition: triangle_motion_bound_visitor.h:96
unused.h
fcl::TranslationMotion
Definition: bv_motion_bound_visitor.h:57
fcl::Vector3
Eigen::Matrix< S, 3, 1 > Vector3
Definition: types.h:70
spline_motion.h
fcl::MotionBase
Definition: bv_motion_bound_visitor.h:45
fcl::TriangleMotionBoundVisitor::visit
virtual S visit(const MotionBase< S > &motion) const
Definition: triangle_motion_bound_visitor.h:81
fcl::InterpMotion
Linear interpolation motion Each Motion is assumed to have constant linear velocity and angular veloc...
Definition: bv_motion_bound_visitor.h:54
FCL_UNUSED
#define FCL_UNUSED(x)
Definition: unused.h:39
fcl::TriangleMotionBoundVisitorVisitImpl
Definition: triangle_motion_bound_visitor-inl.h:68
RSS.h
bv_motion_bound_visitor.h
taylor_matrix.h
fcl
Main namespace.
Definition: broadphase_bruteforce-inl.h:45


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