Program Listing for File BoundaryModel.cpp

Return to documentation for file (SPlisHSPlasH/BoundaryModel.cpp)

#include "BoundaryModel.h"
#include "SPHKernels.h"
#include <iostream>
#include "TimeManager.h"
#include "TimeStep.h"
#include "Utilities/Logger.h"
#include "NeighborhoodSearch.h"
#include "Simulation.h"

using namespace SPH;


BoundaryModel::BoundaryModel() :
    m_forcePerThread(),
    m_torquePerThread()
{
}

BoundaryModel::~BoundaryModel(void)
{
    m_forcePerThread.clear();
    m_torquePerThread.clear();

    delete m_rigidBody;
}

void BoundaryModel::reset()
{
    for (int j = 0; j < m_forcePerThread.size(); j++)
    {
        m_forcePerThread[j].setZero();
        m_torquePerThread[j].setZero();
    }
}

void BoundaryModel::getForceAndTorque(Vector3r &force, Vector3r &torque)
{
    force.setZero();
    torque.setZero();
    for (int j = 0; j < m_forcePerThread.size(); j++)
    {
        force += m_forcePerThread[j];
        torque += m_torquePerThread[j];
    }
}

void BoundaryModel::clearForceAndTorque()
{
    for (int j = 0; j < m_forcePerThread.size(); j++)
    {
        m_forcePerThread[j].setZero();
        m_torquePerThread[j].setZero();
    }
}