Go to the documentation of this file. 1 #ifndef GEOLIB_COMPOSITE_SHAPE_H_
2 #define GEOLIB_COMPOSITE_SHAPE_H_
26 bool intersect(
const Ray& r,
float t0,
float t1,
double& distance)
const;
CompositeShape * clone() const
void addShape(const Shape &shape, const Pose3D &pose)
add a shape to the composite
Box getBoundingBox() const
Returns the smallest box which includes all mesh points. Box is not rotated, but matches the axis of ...
bool intersect(const Ray &r, float t0, float t1, double &distance) const
intersect: currently always throws a logic error
virtual ~CompositeShape()
double getMaxRadius() const
Calculate the maximum distance from the origin of the shape to any point of the shape.
void setMesh(const Mesh &mesh)
set the Mesh Any child classes should throw a std::logic_error in case the mesh should not be changed...
A geometric description of a shape as a union of other shapes.
const std::vector< std::pair< ShapePtr, Transform > > & getShapes() const
Get all the child shapes and their inverse pose relative to the "origin" of the CompositeShape.
bool contains(const Vector3 &p) const
Determines whether a point p lies within the shape.
std::vector< std::pair< ShapePtr, Transform > > shapes_
A geometric description of a shape.