PeriDyno 1.0.0
Loading...
Searching...
No Matches
SharedFuncsForRigidBody.h File Reference
#include "Array/ArrayList.h"
#include "STL/Pair.h"
#include "Matrix/Transform3x3.h"
#include "Collision/CollisionData.h"
#include "Topology/DiscreteElements.h"
#include "Algorithm/Reduction.h"
#include "Collision/Attribute.h"
Include dependency graph for SharedFuncsForRigidBody.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  dyno
 This is an implementation of AdditiveCCD based on peridyno.
 

Functions

void dyno::ApplyTransform (DArrayList< Transform3f > &instanceTransform, const DArray< Vec3f > &translate, const DArray< Mat3f > &rotation, const DArray< Pair< uint, uint > > &binding, const DArray< int > &bindingtag)
 
void dyno::updateVelocity (DArray< Attribute > attribute, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > impulse, float linearDamping, float angularDamping, float dt)
 
void dyno::updateGesture (DArray< Attribute > attribute, DArray< Vec3f > pos, DArray< Quat1f > rotQuat, DArray< Mat3f > rotMat, DArray< Mat3f > inertia, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Mat3f > inertia_init, float dt)
 
void dyno::updatePositionAndRotation (DArray< Vec3f > pos, DArray< Quat1f > rotQuat, DArray< Mat3f > rotMat, DArray< Mat3f > inertia, DArray< Mat3f > inertia_init, DArray< Vec3f > impulse_constrain)
 
void dyno::calculateContactPoints (DArray< TContactPair< float > > contacts, DArray< int > contactCnt)
 
void dyno::calculateJacobianMatrix (DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< Mat3f > rotMat, DArray< TConstraintPair< float > > constraints)
 
void dyno::calculateJacobianMatrixForNJS (DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< Mat3f > rotMat, DArray< TConstraintPair< float > > constraints)
 
void dyno::calculateEtaVectorForPJS (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< TConstraintPair< float > > constraints)
 
void dyno::calculateEtaVectorForPJSBaumgarte (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, DArray< float > errors, float slop, float beta, uint substepping, float dt)
 
void dyno::calculateEtaVectorWithERP (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, DArray< float > ERP, float slop, float dt)
 
void dyno::calculateEtaVectorForPJSoft (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, float slop, float zeta, float hertz, float substepping, float dt)
 
void dyno::calculateEtaVectorForNJS (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, float slop, float beta)
 
void dyno::setUpContactsInLocalFrame (DArray< TContactPair< float > > contactsInLocalFrame, DArray< TContactPair< float > > contactsInGlobalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat)
 
void dyno::setUpContactAndFrictionConstraints (DArray< TConstraintPair< float > > constraints, DArray< TContactPair< float > > contactsInLocalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat, bool hasFriction)
 
void dyno::setUpContactConstraints (DArray< TConstraintPair< float > > constraints, DArray< TContactPair< float > > contactsInLocalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat)
 
void dyno::setUpBallAndSocketJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< BallAndSocketJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, int begin_index)
 
void dyno::setUpSliderJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< SliderJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, DArray< Quat1f > rotQuat, int begin_index)
 
void dyno::setUpHingeJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< HingeJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, DArray< Quat1f > rotation_q, int begin_index)
 
void dyno::setUpFixedJointConstraints (DArray< TConstraintPair< float > > &constraints, DArray< FixedJoint< float > > &joints, DArray< Mat3f > &rotMat, DArray< Quat1f > &rotQuat, int begin_index)
 
void dyno::setUpPointJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< PointJoint< float > > joints, DArray< Vec3f > pos, int begin_index)
 
void dyno::calculateK (DArray< TConstraintPair< float > > constraints, DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3)
 
void dyno::calculateKWithCFM (DArray< TConstraintPair< float > > constraints, DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > CFM)
 
void dyno::JacobiIteration (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > fricCoeffs, float mu, float g, float dt)
 
void dyno::JacobiIterationForCFM (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > CFM, float mu, float g, float dt)
 
void dyno::JacobiIterationStrict (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > d, DArray< float > mass, float mu, float g, float dt)
 
void dyno::JacobiIterationForSoft (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > mu, float g, float dt, float zeta, float hertz)
 
void dyno::JacobiIterationForNJS (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3)
 
void dyno::setUpGravity (DArray< Vec3f > impulse_ext, float g, float dt)
 
Real dyno::checkOutError (DArray< Vec3f > J, DArray< Vec3f > mImpulse, DArray< TConstraintPair< float > > constraints, DArray< float > eta)
 
void dyno::calculateDiagnals (DArray< float > d, DArray< Vec3f > J, DArray< Vec3f > B)
 
void dyno::preConditionJ (DArray< Vec3f > J, DArray< float > d, DArray< float > eta)
 
bool dyno::saveVectorToFile (const std::vector< float > &vec, const std::string &filename)
 
void dyno::calculateEtaVectorForRelaxation (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< TConstraintPair< float > > constraints)
 
double dyno::checkOutErrors (DArray< float > errors)
 
void dyno::calculateMatrixA (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< float > &A, DArray< TConstraintPair< float > > &constraints, float k)
 
bool dyno::saveMatrixToFile (DArray< float > &Matrix, int n, const std::string &filename)
 
bool dyno::saveVectorToFile (DArray< float > &vec, const std::string &filename)
 
void dyno::vectorSub (DArray< float > &ans, DArray< float > &subtranhend, DArray< float > &minuend, DArray< TConstraintPair< float > > &constraints)
 
void dyno::vectorAdd (DArray< float > &ans, DArray< float > &v1, DArray< float > &v2, DArray< TConstraintPair< float > > &constraints)
 
void dyno::vectorMultiplyScale (DArray< float > &ans, DArray< float > &initialVec, float scale, DArray< TConstraintPair< float > > &constraints)
 
void dyno::vectorClampSupport (DArray< float > v, DArray< TConstraintPair< float > > constraints)
 
void dyno::vectorClampFriction (DArray< float > v, DArray< TConstraintPair< float > > constraints, int contact_size, float mu)
 
void dyno::matrixMultiplyVec (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< float > &lambda, DArray< float > &ans, DArray< TConstraintPair< float > > &constraints, int bodyNum)
 
float dyno::vectorNorm (DArray< float > &a, DArray< float > &b)
 
void dyno::vectorMultiplyVector (DArray< float > &v1, DArray< float > &v2, DArray< float > &ans, DArray< TConstraintPair< float > > &constraints)
 
void dyno::calculateImpulseByLambda (DArray< float > lambda, DArray< TConstraintPair< float > > constraints, DArray< Vec3f > impulse, DArray< Vec3f > B)
 
void dyno::preconditionedResidual (DArray< float > &residual, DArray< float > &ans, DArray< float > &k_1, DArray< Mat2f > &k_2, DArray< Mat3f > &k_3, DArray< TConstraintPair< float > > &constraints)
 
void dyno::buildCFMAndERP (DArray< Vec3f > J, DArray< Vec3f > B, DArray< TConstraintPair< float > > constraints, DArray< float > CFM, DArray< float > ERP, float hertz, float zeta, float dt)
 
void dyno::calculateLinearSystemLHS (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< Vec3f > &impulse, DArray< float > &lambda, DArray< float > &ans, DArray< float > &CFM, DArray< TConstraintPair< float > > &constraints)