mc_rtc  2.14.0
CylindricalSurface.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 CylindricalSurfaceImpl;
15 
17 {
18  CylindricalSurface(const std::string & name,
19  const std::string & bodyName,
20  const sva::PTransformd & X_b_s,
21  const std::string & materialName,
22  const double & radius,
23  const double & width);
24 
25  ~CylindricalSurface() override;
26 
41  static std::unique_ptr<CylindricalSurface> fromXML(const tinyxml2::XMLElement & elem);
42 
43  void computePoints() override;
44 
45  const double & radius() const;
46 
47  const double & width() const;
48 
49  void width(const double & width);
50 
51  std::shared_ptr<Surface> copy() const override;
52 
53  std::string type() const override;
54 
55  tinyxml2::XMLElement * toXML(tinyxml2::XMLDocument & doc) const override;
56 
57 private:
58  std::unique_ptr<CylindricalSurfaceImpl> impl;
59 };
60 
61 } // 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: CylindricalSurface.h:17
void computePoints() override
std::string type() const override
static std::unique_ptr< CylindricalSurface > fromXML(const tinyxml2::XMLElement &elem)
Construct a CylindricalSurface from an XML element.
const double & radius() const
CylindricalSurface(const std::string &name, const std::string &bodyName, const sva::PTransformd &X_b_s, const std::string &materialName, const double &radius, const double &width)
const double & width() const
void width(const double &width)
tinyxml2::XMLElement * toXML(tinyxml2::XMLDocument &doc) const override
std::shared_ptr< Surface > copy() const override
Definition: Surface.h:26