Definition of a half space.
In its canonical frame, the plane defining the boundary of the half space is that frame's z = 0 plane. By implication, the plane's normal points in the +z direction and the origin lies on the plane. Other shapes are considered to be penetrating the half space if there exists a point on the test shape that lies on the side of the plane opposite the normal.
#include <drake/geometry/shape_specification.h>
Public Member Functions | |
HalfSpace () | |
~HalfSpace () final | |
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable | |
HalfSpace (const HalfSpace &)=default | |
HalfSpace & | operator= (const HalfSpace &)=default |
HalfSpace (HalfSpace &&)=default | |
HalfSpace & | operator= (HalfSpace &&)=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... | |
Static Public Member Functions | |
static math::RigidTransform< double > | MakePose (const Vector3< double > &Hz_dir_F, const Vector3< double > &p_FB) |
Creates the pose of a canonical half space in frame F. 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... | |
HalfSpace | ( | ) |
|
final |
|
static |
Creates the pose of a canonical half space in frame F.
The half space's normal is aligned to the positive z-axis of its canonical frame H. Given a vector that points in the same direction, measured in the F frame (Hz_dir_F) and a position vector to a point on the half space's boundary* expressed in the same frame, p_FB
, creates the pose of the half space in frame F: X_FH
.
Hz_dir_F | A vector in the direction of the positive z-axis of the canonical frame expressed in frame F. It must be a non-zero vector but need not be unit length. |
p_FB | A point B lying on the half space's boundary measured and expressed in frame F. |
X_FH | The pose of the canonical half-space in frame F. |
std::exception | if the normal is close to a zero-vector (e.g., ‖normal_F‖₂ < ε). |