Go to the documentation of this file.
38 #ifndef FCL_SHAPE_CONE_INL_H
39 #define FCL_SHAPE_CONE_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 * (0.1 * lz * lz + 3 * radius * radius / 20);
94 S iz = 0.3 * V * radius * radius;
100 template <
typename S>
107 template <
typename S>
111 std::vector<Vector3<S>> result(7);
114 auto r2 = radius * 2 / std::sqrt(3.0);
131 template <
typename S>
134 std::stringstream ss;
135 ss << std::setprecision(precision);
136 ss <<
"Cone<" << S_str <<
">(" << radius <<
", " << lz <<
");";
static const char * value()
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
Base class for all basic geometric shapes.
Eigen::Matrix< S, 3, 1 > Vector3
Eigen::Matrix< S, 3, 3 > Matrix3
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...
Vector3< S > computeCOM() const override
static constexpr S pi()
The mathematical constant pi.
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
Matrix3< S > computeMomentofInertia() const override
S computeVolume() const override
NODE_TYPE
traversal node type: bounding volume (AABB, OBB, RSS, kIOS, OBBRSS, KDOP16, KDOP18,...
void computeLocalAABB() override
Compute AABB.
NODE_TYPE getNodeType() const override
Get node type: a cone.
template class FCL_EXPORT Cone< double >
fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:48