Convex.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2020 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 #include <mc_tvm/api.h>
8 #include <mc_tvm/fwd.h>
9 
10 #include <mc_rbdyn/RobotModule.h>
11 #include <mc_rbdyn/fwd.h>
12 
13 #include <tvm/graph/abstract/Node.h>
14 
15 namespace mc_tvm
16 {
17 
23 struct MC_TVM_DLLAPI Convex : public tvm::graph::abstract::Node<Convex>
24 {
25  friend struct mc_rbdyn::Robot;
26 
27 private:
28  struct NewConvexToken
29  {
30  };
31 
32 public:
33  SET_OUTPUTS(Convex, Position)
34  SET_UPDATES(Convex, Position)
35 
36 
44  Convex(NewConvexToken,
45  mc_rbdyn::S_ObjectPtr object,
46  const mc_rbdyn::RobotFrame & frame,
47  const sva::PTransformd & X_f_c);
48 
49  Convex(const Convex &) = delete;
50  Convex & operator=(const Convex &) = delete;
51 
53  inline mc_rbdyn::S_ObjectPtr convex() noexcept { return object_; }
54 
56  inline const mc_rbdyn::RobotFrame & frame() { return *frame_; }
57 
58 private:
59  mc_rbdyn::S_ObjectPtr object_;
61  sva::PTransformd X_f_c_;
62 
63  void updatePosition();
64 };
65 
66 } // namespace mc_tvm
mc_rbdyn::S_ObjectPtr
std::shared_ptr< sch::S_Object > S_ObjectPtr
Definition: RobotModule.h:35
mc_tvm::Convex::frame
const mc_rbdyn::RobotFrame & frame()
Definition: Convex.h:56
MC_TVM_DLLAPI
#define MC_TVM_DLLAPI
Definition: api.h:47
mc_rbdyn::Robot
Definition: Robot.h:62
mc_tvm
Definition: CollisionFunction.h:15
RobotModule.h
mc_rbdyn::RobotFrame
Definition: RobotFrame.h:21
fwd.h
fwd.h
mc_rbdyn::ConstRobotFramePtr
std::shared_ptr< const RobotFrame > ConstRobotFramePtr
Definition: fwd.h:25
mc_tvm::Convex::convex
mc_rbdyn::S_ObjectPtr convex() noexcept
Definition: Convex.h:53
api.h
mc_tvm::Convex
Definition: Convex.h:23