Program Listing for File VorticityConfinement.h

Return to documentation for file (SPlisHSPlasH/Vorticity/VorticityConfinement.h)

#ifndef __VorticityConfinement_h__
#define __VorticityConfinement_h__

#include "SPlisHSPlasH/Common.h"
#include "SPlisHSPlasH/FluidModel.h"
#include "VorticityBase.h"

namespace SPH
{
    class VorticityConfinement : public VorticityBase
    {
    protected:
        std::vector<Vector3r> m_omega;
        std::vector<Real> m_normOmega;

    public:
        VorticityConfinement(FluidModel *model);
        virtual ~VorticityConfinement(void);

        static NonPressureForceBase* creator(FluidModel* model) { return new VorticityConfinement(model); }

        virtual void step();
        virtual void reset();

        virtual void performNeighborhoodSearchSort();

        FORCE_INLINE const Vector3r& getAngularVelocity(const unsigned int i) const
        {
            return m_omega[i];
        }

        FORCE_INLINE Vector3r& getAngularVelocity(const unsigned int i)
        {
            return m_omega[i];
        }

        FORCE_INLINE void setAngularVelocity(const unsigned int i, const Vector3r& val)
        {
            m_omega[i] = val;
        }
    };
}

#endif