.. _program_listing_file_SPlisHSPlasH_PF_SimulationDataPF.h: Program Listing for File SimulationDataPF.h =========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``SPlisHSPlasH/PF/SimulationDataPF.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef __SimulationDataPF_h__ #define __SimulationDataPF_h__ #include "SPlisHSPlasH/Common.h" #include "SPlisHSPlasH/FluidModel.h" #include namespace SPH { class SimulationDataPF { public: SimulationDataPF(); virtual ~SimulationDataPF(); protected: std::vector> m_old_position; std::vector> m_num_fluid_neighbors; std::vector> m_s; std::vector> m_mat_diag; std::vector m_particleOffset; public: virtual void init(); virtual void cleanup(); virtual void reset(); void performNeighborhoodSearchSort(); void emittedParticles(FluidModel *model, const unsigned int startIndex); FORCE_INLINE const Vector3r getOldPosition(const unsigned int fluidIndex, const unsigned int i) const { return m_old_position[fluidIndex][i]; } FORCE_INLINE Vector3r& getOldPosition(const unsigned int fluidIndex, const unsigned int i) { return m_old_position[fluidIndex][i]; } FORCE_INLINE void setOldPosition(const unsigned int fluidIndex, const unsigned int i, const Vector3r p) { m_old_position[fluidIndex][i] = p; } FORCE_INLINE const unsigned int getNumFluidNeighbors(const unsigned int fluidIndex, const unsigned int i) const { return m_num_fluid_neighbors[fluidIndex][i]; } FORCE_INLINE unsigned int& getNumFluidNeighbors(const unsigned int fluidIndex, const unsigned int i) { return m_num_fluid_neighbors[fluidIndex][i]; } FORCE_INLINE void setNumFluidNeighbors(const unsigned int fluidIndex, const unsigned int i, const unsigned int n) { m_num_fluid_neighbors[fluidIndex][i] = n; } FORCE_INLINE const Vector3r& getS(const unsigned int fluidIndex, const unsigned int i) const { return m_s[fluidIndex][i]; } FORCE_INLINE Vector3r& getS(const unsigned int fluidIndex, const unsigned int i) { return m_s[fluidIndex][i]; } FORCE_INLINE void setS(const unsigned int fluidIndex, const unsigned int i, const Vector3r & s) { m_s[fluidIndex][i] = s; } FORCE_INLINE const Vector3r& getDiag(const unsigned int fluidIndex, const unsigned int i) const { return m_mat_diag[fluidIndex][i]; } FORCE_INLINE Vector3r& getDiag(const unsigned int fluidIndex, const unsigned int i) { return m_mat_diag[fluidIndex][i]; } FORCE_INLINE void setDiag(const unsigned int fluidIndex, const unsigned int i, const Vector3r & s) { m_mat_diag[fluidIndex][i] = s; } FORCE_INLINE const unsigned int & getParticleOffset(const unsigned int fluidIndex) const { return m_particleOffset[fluidIndex]; } }; } #endif