mc_rtc  2.14.0
PlanarSurface.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 #include <mc_rbdyn/Surface.h>
8 
9 namespace mc_rbdyn
10 {
11 
12 struct Robot;
13 
14 struct PlanarSurfaceImpl;
15 
17 {
18  PlanarSurface(const std::string & name,
19  const std::string & bodyName,
20  const sva::PTransformd & X_b_s,
21  const std::string & materialName,
22  const std::vector<std::pair<double, double>> & planarPoints);
23 
44  static std::unique_ptr<PlanarSurface> fromXML(const tinyxml2::XMLElement & elem);
45 
46  ~PlanarSurface() override;
47 
48  void computePoints() override;
49 
50  void planarTransform(const double & T, const double & B, const double & N_rot);
51 
52  const std::vector<std::pair<double, double>> & planarPoints() const;
53 
54  void planarPoints(const std::vector<std::pair<double, double>> & planarPoints);
55 
56  tinyxml2::XMLElement * toXML(tinyxml2::XMLDocument & doc) const override;
57 
58  std::shared_ptr<Surface> copy() const override;
59 
60  std::string type() const override;
61 
62 public:
63 private:
64  std::unique_ptr<PlanarSurfaceImpl> impl;
65 };
66 
67 } // namespace mc_rbdyn
#define MC_RBDYN_DLLAPI
Definition: api.h:50
Definition: generic_gripper.h:15
auto Robot(const std::string &name, GetT get_fn)
Definition: Robot.h:56
Definition: PlanarSurface.h:17
void planarPoints(const std::vector< std::pair< double, double >> &planarPoints)
PlanarSurface(const std::string &name, const std::string &bodyName, const sva::PTransformd &X_b_s, const std::string &materialName, const std::vector< std::pair< double, double >> &planarPoints)
std::string type() const override
tinyxml2::XMLElement * toXML(tinyxml2::XMLDocument &doc) const override
static std::unique_ptr< PlanarSurface > fromXML(const tinyxml2::XMLElement &elem)
Construct a PlanarSurface from an XML element.
std::shared_ptr< Surface > copy() const override
const std::vector< std::pair< double, double > > & planarPoints() const
void computePoints() override
void planarTransform(const double &T, const double &B, const double &N_rot)
Definition: Surface.h:26