mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-05 05:07:48 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
#pragma once
|
||||
|
||||
#include "solver/SolverConfig.h"
|
||||
#include "boost/cstdint.hpp"
|
||||
#include "rbx/ArrayDynamic.h"
|
||||
|
||||
namespace RBX
|
||||
{
|
||||
|
||||
class ConstraintJacobianPair;
|
||||
class BodyPairIndices;
|
||||
class SolverBodyStaticProperties;
|
||||
class SolverBodyMassAndInertia;
|
||||
class ConstraintVariables;
|
||||
class VirtualDisplacementArray;
|
||||
class VirtualDisplacementArray;
|
||||
class EffectiveMassPair;
|
||||
|
||||
void PGSComputeEffectiveMasses(
|
||||
EffectiveMassPair* _effectiveMassesVelStage,
|
||||
EffectiveMassPair* _effectiveMassesPosStage,
|
||||
size_t _constraintCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const ConstraintJacobianPair* _jacobians,
|
||||
const BodyPairIndices* _pairs,
|
||||
const SolverBodyMassAndInertia* _massAndIntertia,
|
||||
const SolverConfig& _config );
|
||||
|
||||
void PGSApplyEffectiveMassMultipliers(
|
||||
EffectiveMassPair* _effectiveMassesVelStage,
|
||||
EffectiveMassPair* _effectiveMassesPosStage,
|
||||
size_t _constraintCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const float* _multipliers,
|
||||
const BodyPairIndices* _pairs,
|
||||
const SolverConfig& _config );
|
||||
|
||||
void PGSPreconditionConstraintEquations(
|
||||
ConstraintJacobianPair* _preconditionedJacobiansVelStage,
|
||||
ConstraintJacobianPair* _preconditionedJacobiansPosStage,
|
||||
ConstraintVariables* _velocityStageVariables,
|
||||
ConstraintVariables* _positionStageVariables,
|
||||
size_t _constraintCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const boost::uint8_t* _useBlock,
|
||||
const float* __restrict _sorVel,
|
||||
const float* __restrict _sorPos,
|
||||
const ConstraintJacobianPair* _jacobians,
|
||||
const EffectiveMassPair* _effectiveMassesVelStage,
|
||||
const EffectiveMassPair* _effectiveMassesPosStage );
|
||||
|
||||
void PGSInitVirtualDisplacements(
|
||||
VirtualDisplacementArray& _virDVel,
|
||||
VirtualDisplacementArray& _virDPos,
|
||||
const EffectiveMassPair* _effectiveMassesVelStage,
|
||||
const EffectiveMassPair* _effectiveMassesPosStage,
|
||||
size_t _constraintCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const ConstraintVariables* __restrict _velStage,
|
||||
const ConstraintVariables* __restrict _posStage,
|
||||
const BodyPairIndices* _pairs,
|
||||
const SolverConfig& _config );
|
||||
|
||||
void PGSSolveKernel(
|
||||
ConstraintVariables* __restrict _velStage,
|
||||
ConstraintVariables* __restrict _posStage,
|
||||
VirtualDisplacementArray& _virDVel,
|
||||
VirtualDisplacementArray& _virDPos,
|
||||
size_t _constraintCount,
|
||||
size_t _collisionCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const BodyPairIndices* _pairs,
|
||||
const ConstraintJacobianPair* _preconditionedJacobiansVelStage,
|
||||
const ConstraintJacobianPair* _preconditionedJacobiansPosStage,
|
||||
const EffectiveMassPair* _effectiveMassesVelStage,
|
||||
const EffectiveMassPair* _effectiveMassesPosStage,
|
||||
const SolverConfig& _config );
|
||||
|
||||
void PGSSolveKernelComputeErrors(
|
||||
ArrayBase< float >& _residuals,
|
||||
ArrayBase< float >& _deltaResiduals,
|
||||
ArrayBase< ConstraintVariables >& _vars,
|
||||
VirtualDisplacementArray& _virD,
|
||||
size_t _constraintCount,
|
||||
size_t _collisionCount,
|
||||
size_t _bodyCount,
|
||||
const boost::uint8_t* _dimensions,
|
||||
const BodyPairIndices* _pairs,
|
||||
const ConstraintJacobianPair* _jacobians,
|
||||
const ConstraintJacobianPair* _preconditionedJacobians,
|
||||
const EffectiveMassPair* _effectiveMasses,
|
||||
const SolverConfig& _config );
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user