10 #include "imstkVecDataArray.h" 24 PbdState(
const int numElements) :
25 m_pos(
std::make_shared<VecDataArray<double, 3>>(numElements)),
26 m_vel(
std::make_shared<VecDataArray<double, 3>>(numElements)),
27 m_acc(
std::make_shared<VecDataArray<double, 3>>(numElements))
29 std::fill_n(m_pos->getPointer(), numElements, Vec3d::Zero());
30 std::fill_n(m_vel->getPointer(), numElements, Vec3d::Zero());
31 std::fill_n(m_acc->getPointer(), numElements, Vec3d::Zero());
34 virtual ~PbdState() =
default;
44 std::shared_ptr<VecDataArray<double, 3>>
getPositions() {
return m_pos; }
49 std::shared_ptr<VecDataArray<double, 3>>
getVelocities() {
return m_vel; }
69 void setState(std::shared_ptr<PbdState> rhs);
72 std::shared_ptr<VecDataArray<double, 3>> m_pos;
73 std::shared_ptr<VecDataArray<double, 3>> m_vel;
74 std::shared_ptr<VecDataArray<double, 3>> m_acc;
std::shared_ptr< VecDataArray< double, 3 > > getAccelerations()
Returns the vector of current nodal accelerations.
std::shared_ptr< VecDataArray< double, 3 > > getPositions()
Returns the vector of current nodal positions.
void setVelocities(std::shared_ptr< VecDataArray< double, 3 >> velocities)
Set the vector for velocities.
std::shared_ptr< VecDataArray< double, 3 > > getVelocities()
Returns the vector of current nodal velocities.
void setState(std::shared_ptr< PbdState > rhs)
Set the state to a given one, copies vector values by value instead of references.
void setPositions(std::shared_ptr< VecDataArray< double, 3 >> positions)
Sets the vector that stores the positions.
void setAccelerations(std::shared_ptr< VecDataArray< double, 3 >> accelerations)
Set the vector for accelerations.