7 #include "imstkRbdConstraint.h"     8 #include "imstkPointSet.h"     9 #include "imstkVecDataArray.h"    19     Vec3d centroid = Vec3d(0.0, 0.0, 0.0);
    20     if (useBoundingBoxOrigin)
    23         pointset->computeBoundingBox(min, max);
    24         centroid = (min + max) * 0.5;
    26     std::shared_ptr<VecDataArray<double, 3>> verticesPtr = pointset->getVertexPositions(Geometry::DataType::PreTransform);
    28     for (
int i = 0; i < vertices.size(); i++)
    30         const Vec3d r = vertices[i] - centroid;
    31         results(0, 0) += r[1] * r[1] + r[2] * r[2];
    32         results(1, 1) += r[0] * r[0] + r[2] * r[2];
    33         results(2, 2) += r[0] * r[0] + r[1] * r[1];
    34         results(1, 0) += -r[0] * r[1];
    35         results(2, 0) += -r[0] * r[2];
    36         results(2, 1) += -r[1] * r[2];
    38     results(0, 2)    = results(2, 0);
    39     results(0, 1)    = results(1, 0);
    40     results(1, 2)    = results(2, 1);
    41     m_intertiaTensor = results * m_mass * scale;
 
void setInertiaFromPointSet(std::shared_ptr< PointSet > pointset, const double scale=1.0, const bool useBoundingBoxOrigin=true)
Convience function to set the inertia tensor based off provided geometry assuming uniform mass at eac...