Go to the documentation of this file.
38 #ifndef FCL_SHAPE_CYLINDER_INL_H
39 #define FCL_SHAPE_CYLINDER_INL_H
66 const Vector3<S> v_delta(radius, radius, 0.5 * lz);
67 this->aabb_local.max_ = v_delta;
68 this->aabb_local.min_ = -v_delta;
70 this->aabb_center = this->aabb_local.center();
71 this->aabb_radius = (this->aabb_local.min_ - this->aabb_center).norm();
92 S V = computeVolume();
93 S ix = V * (3 * radius * radius + lz * lz) / 12;
94 S iz = V * radius * radius / 2;
100 template <
typename S>
104 std::vector<Vector3<S>> result(12);
107 auto r2 = radius * 2 / std::sqrt(3.0);
129 template <
typename S>
132 std::stringstream ss;
133 ss << std::setprecision(precision);
134 ss <<
"Cylinder<" << S_str <<
">(" << radius <<
", " << lz <<
");";
static const char * value()
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
Base class for all basic geometric shapes.
void computeLocalAABB() override
Compute AABB.
Eigen::Matrix< S, 3, 1 > Vector3
Eigen::Matrix< S, 3, 3 > Matrix3
Cylinder(S radius, S lz)
Constructor.
NODE_TYPE getNodeType() const override
Get node type: a cylinder.
S computeVolume() const override
std::vector< Vector3< S > > getBoundVertices(const Transform3< S > &tf) const
get the vertices of some convex shape which can bound this shape in a specific configuration
template class FCL_EXPORT Cylinder< double >
static constexpr S pi()
The mathematical constant pi.
Matrix3< S > computeMomentofInertia() const override
std::string representation(int precision=20) const
Create a string that should be sufficient to recreate this shape. This is akin to the repr() implemen...
NODE_TYPE
traversal node type: bounding volume (AABB, OBB, RSS, kIOS, OBBRSS, KDOP16, KDOP18,...
fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:48