Definition of a cone.
Its point is at the origin, its height extends in the direction of the frame's +z axis. Or, more formally: a finite section of a Lorentz cone (aka "second-order cone"), defined by
sqrt(x²/a² + y²/b²) ≤ z; z ∈ [0, height],
where a
and b
are the lengths of the principal semi-axes of the horizontal section at z=height()
.
This shape is currently only supported by Meshcat. It will not appear in any renderings, proximity queries, or other visualizers.
#include <drake/geometry/shape_specification.h>
Public Member Functions | |
MeshcatCone (double height, double a=1.0, double b=1.0) | |
Constructs the parameterized cone. More... | |
MeshcatCone (const Vector3< double > &measures) | |
Constructs a cone with a vector of measures: height and principal semi-axes. More... | |
~MeshcatCone () final | |
double | height () const |
double | a () const |
double | b () const |
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable | |
MeshcatCone (const MeshcatCone &)=default | |
MeshcatCone & | operator= (const MeshcatCone &)=default |
MeshcatCone (MeshcatCone &&)=default | |
MeshcatCone & | operator= (MeshcatCone &&)=default |
Public Member Functions inherited from Shape | |
virtual | ~Shape () |
void | Reify (ShapeReifier *reifier, void *user_data=nullptr) const |
Causes this description to be reified in the given reifier . More... | |
std::unique_ptr< Shape > | Clone () const |
Creates a unique copy of this shape. More... | |
std::string_view | type_name () const |
Returns the (unqualified) type name of this Shape, e.g., "Box". More... | |
std::string | to_string () const |
Returns a string representation of this shape. More... | |
template<typename ReturnType = void, typename Visitor > | |
decltype(auto) | Visit (Visitor &&visitor) const |
Calls the given visitor function with *this as the sole argument, but with *this downcast to be the shape's concrete subclass. More... | |
Additional Inherited Members | |
Protected Types inherited from Shape | |
using | VariantShapeConstPtr = std::variant< const Box *, const Capsule *, const Convex *, const Cylinder *, const Ellipsoid *, const HalfSpace *, const Mesh *, const MeshcatCone *, const Sphere * > |
(Internal use only) All concrete subclasses, as const pointers. More... | |
Protected Member Functions inherited from Shape | |
Shape () | |
(Internal use only) Constructor for use by derived classes. More... | |
Shape (const Shape &)=default | |
(Internal use only) For derived classes. More... | |
Shape & | operator= (const Shape &)=default |
(Internal use only) For derived classes. More... | |
Shape (Shape &&)=default | |
(Internal use only) For derived classes. More... | |
Shape & | operator= (Shape &&)=default |
(Internal use only) For derived classes. More... | |
|
default |
|
default |
|
explicit |
Constructs the parameterized cone.
std::exception | if height , a , or b are not strictly positive. |
|
explicit |
Constructs a cone with a vector of measures: height and principal semi-axes.
std::exception | if the measures are not strictly positive. |
|
final |
double a | ( | ) | const |
double b | ( | ) | const |
double height | ( | ) | const |
|
default |
|
default |