11 #ifndef CUBBYFLOW_CUDA_PARTICLE_SYSTEM_SOLVER3_HPP 12 #define CUBBYFLOW_CUDA_PARTICLE_SYSTEM_SOLVER3_HPP 14 #ifdef CUBBYFLOW_USE_CUDA 33 class CUDAParticleSystemSolver3 :
public CUDAParticleSystemSolverBase3
39 CUDAParticleSystemSolver3();
42 CUDAParticleSystemSolver3(
float radius,
float mass);
45 CUDAParticleSystemSolver3(
const CUDAParticleSystemSolver3&) =
delete;
48 CUDAParticleSystemSolver3(CUDAParticleSystemSolver3&&) noexcept = delete;
51 ~CUDAParticleSystemSolver3() override = default;
54 CUDAParticleSystemSolver3& operator=(const CUDAParticleSystemSolver3&) =
58 CUDAParticleSystemSolver3& operator=(CUDAParticleSystemSolver3&&) noexcept =
65 void SetRadius(
float newRadius);
71 void SetMass(
float newMass);
74 static Builder GetBuilder();
78 void OnAdvanceTimeStep(
double timeStepInSeconds) override;
81 float m_radius = 1e-3f;
86 using CUDAParticleSystemSolver3Ptr = std::shared_ptr<CUDAParticleSystemSolver3>;
91 class CUDAParticleSystemSolver3::Builder final
92 : public CUDAParticleSystemSolverBuilderBase3<Builder>
96 Builder& WithRadius(
float radius);
99 Builder& WithMass(
float mass);
102 CUDAParticleSystemSolver3 Build()
const;
105 CUDAParticleSystemSolver3Ptr MakeShared()
const;
108 float m_radius = 1e-3f;
109 float m_mass = 1e-3f;
Definition: pybind11Utils.hpp:20