Program Listing for File ClothSolvingView.h¶
↰ Return to documentation for file (Source\Physics\Inc\Physics\PBD\Cloth\ClothSolvingView.h
)
#pragma once
#include <Physics/PBD/Common/SolvingView.h>
#include <Physics/PBD/Cloth/Constraints.h>
namespace Azura {
namespace Physics {
namespace PBD {
class ClothSolvingView final : public SolvingView {
public:
explicit ClothSolvingView(Containers::Vector<Vector3f>& dataSet,
Containers::Vector<float>& invMassData,
U32 numDistanceConstraints,
U32 numLongRangeConstraints,
U32 numBendingConstraints,
Memory::Allocator& allocator);
void AddConstraint(const DistanceConstraint& constraint);
void AddConstraint(DistanceConstraint&& constraint);
void AddConstraint(const LongRangeConstraint& constraint);
void AddConstraint(LongRangeConstraint&& constraint);
void AddConstraint(const BendingConstraint& constraint);
void AddConstraint(BendingConstraint&& constraint);
const Containers::Vector<DistanceConstraint>& GetDistanceConstraints() const;
const Containers::Vector<LongRangeConstraint>& GetLongRangeConstraints() const;
const Containers::Vector<BendingConstraint>& GetBendingConstraints() const;
void Solve(Containers::Vector<Vector3f>& projectionPoints) override;
private:
Containers::Vector<DistanceConstraint> m_distanceConstraints;
Containers::Vector<LongRangeConstraint> m_longRangeConstraints;
Containers::Vector<BendingConstraint> m_bendingConstraints;
};
} // namespace PBD
} // namespace Physics
} // namespace Azura