Program Listing for File SolvingView.h¶
↰ Return to documentation for file (Source\Physics\Inc\Physics\PBD\Common\SolvingView.h
)
#pragma once
#include <Math/Core.h>
#include <Containers/Vector.h>
#include <type_traits>
namespace Azura {
namespace Physics {
namespace PBD {
class SolvingView {
public:
SolvingView(Containers::Vector<Vector3f>& dataSet, Containers::Vector<float>& invMassData);
virtual ~SolvingView() = default;
SolvingView(const SolvingView& other) = default;
SolvingView(SolvingView&& other) noexcept = default;
SolvingView& operator=(const SolvingView& other) = default;
SolvingView& operator=(SolvingView&& other) noexcept = default;
virtual void Solve(Containers::Vector<Vector3f>& projectionPoints) = 0;
const Containers::Vector<Vector3f>& GetDataSet() const;
Containers::Vector<Vector3f>& GetDataSet();
private:
std::reference_wrapper<Containers::Vector<Vector3f>> m_dataSet;
std::reference_wrapper<Containers::Vector<float>> m_invMassData;
};
} // namespace PBD
} // namespace Physics
} // namespace Azura