Go to the documentation of this file.
16 #ifndef SURGSIM_MATH_SHAPE_H
17 #define SURGSIM_MATH_SHAPE_H
78 virtual int getType()
const = 0;
106 virtual bool isValid()
const = 0;
121 pose = Math::RigidTransform3d::Identity();
150 this->first = posedShapeFirst;
151 this->second = posedShapeSecond;
156 this->first.invalidate();
157 this->second.invalidate();
164 #endif // SURGSIM_MATH_SHAPE_H
virtual ~Shape()
Destructor.
Definition: Shape.cpp:31
ShapeDirection
Type defining the shape direction for certain templatized shape (i.e.
Definition: Shape.h:35
Math::Aabbd m_aabb
Definition: Shape.h:112
virtual std::shared_ptr< Shape > getTransformed(const RigidTransform3d &pose) const
Get a copy of this shape with an applied rigid transform.
Definition: Shape.cpp:40
PosedShape(const T &shapeInput, const Math::RigidTransform3d &poseInput)
Definition: Shape.h:123
PosedShapeMotion(const PosedShape< T > &posedShapeFirst, const PosedShape< T > &posedShapeSecond)
Definition: Shape.h:148
virtual bool isValid() const =0
Check if the shape is valid.
PosedShapeMotion()
Definition: Shape.h:147
PosedShapeMotion is embedding the motion of a PosedShape, providing a posed shape at 2 different inst...
Definition: Shape.h:145
Eigen::Transform< double, 3, Eigen::Isometry > RigidTransform3d
A 3D rigid (isometric) transform, represented as doubles.
Definition: RigidTransform.h:46
::SurgSim::Math::Matrix33d Matrix33d
Definition: Shape.h:69
PosedShape is a transformed shape with a record of the pose used to transform it.
Definition: Shape.h:117
virtual std::string getClassName() const
Get class name.
Definition: Shape.cpp:47
virtual Vector3d getCenter() const =0
Get the volumetric center of the shape.
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:57
Definition: CompoundShapeToGraphics.cpp:29
void invalidate()
Definition: Shape.h:154
virtual const Math::Aabbd & getBoundingBox() const
Definition: Shape.cpp:55
ShapeType
Fixed List of enums for the available Shape types, do not explicitly assign values,...
Definition: Shape.h:44
Math::RigidTransform3d pose
Definition: Shape.h:140
Mixin class for enabling a property system on OSS classes, the instance still needs to initialize pro...
Definition: Accessible.h:37
PosedShape()
Definition: Shape.h:119
Eigen::Matrix< double, 3, 3, Eigen::RowMajor > Matrix33d
A 3x3 matrix of doubles.
Definition: Matrix.h:51
Eigen::AlignedBox< double, 3 > Aabbd
Wrapper around the Eigen type.
Definition: Aabb.h:30
const T & getShape() const
Definition: Shape.h:129
virtual bool isTransformable() const
Definition: Shape.cpp:35
CRTP Base class to implement Object Factory functionality on a base class, use this rather than writi...
Definition: ObjectFactory.h:122
virtual double getVolume() const =0
Get the volume of the shape.
const Math::RigidTransform3d & getPose() const
Definition: Shape.h:133
Generic rigid shape class defining a shape.
Definition: Shape.h:65
::SurgSim::Math::Vector3d Vector3d
Definition: Shape.h:68
void invalidate()
Definition: Shape.h:125
virtual int getType() const =0
Shape()
Constructor.
Definition: Shape.cpp:26
virtual Matrix33d getSecondMomentOfVolume() const =0
Get the second central moment of the volume, commonly used to calculate the moment of inertia matrix.
T shape
Definition: Shape.h:139