7 #include "imstkSphere.h" 8 #include "imstkLogger.h" 22 if (type == DataType::PostTransform)
31 Sphere::setRadius(
const double r)
35 LOG(WARNING) <<
"error: radius supplied is negative";
39 m_transformApplied =
false;
50 if (paddingPercent > 0.0)
52 const Vec3d range = upperCorner - lowerCorner;
53 lowerCorner = lowerCorner - range * (paddingPercent / 100.0);
54 upperCorner = upperCorner + range * (paddingPercent / 100.0);
66 const double s0 = m.block<3, 1>(0, 0).norm();
73 if (m_transformApplied)
78 const double s0 =
m_transform.block<3, 1>(0, 0).norm();
80 m_transformApplied =
true;
Mat4d m_transform
Transformation matrix.
void computeBoundingBox(Vec3d &lowerCorner, Vec3d &upperCorner, const double paddingPercent=0.0) override
Get the min, max of the AABB around the sphere.
void updatePostTransformData() const override
Apply the global transform to the local parameters producing post transformed parameters.
void print() const override
Print the sphere info.
void postModified()
Post modified event.
void print() const override
Print.
void updatePostTransformData() const override
Update the Sphere parameters applying the latest transform.
double m_radius
Radius of the sphere.
double m_radiusPostTransform
Radius of the sphere once transform applied.
double getRadius(DataType type=DataType::PostTransform)
Get/Set the radius of the sphere.
void applyTransform(const Mat4d &m) override
Apply a user transform directly to (pre-transformed) parameters producing new parameters.
Vec3d m_positionPostTransform
position once transform applied
DataType
Enumeration for the data to retrieve PreTransform for data where transform matrix is not applied Po...
void applyTransform(const Mat4d &m) override
Apply a user transform directly to (pre-transformed) parameters producing new parameters.