代码拉取完成,页面将自动刷新
同步操作将从 李开诚/position-based-dynamic-GPU 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#pragma once
struct cuVector3r {
Real x;
Real y;
Real z;
};
struct cuMatrix3r {
cuVector3r col0, col1, col2;
};
//struct cuMatrix4r {
//
//};
struct Particle {
cuVector3r pos;
cuVector3r lastpos;
cuVector3r v;
cuVector3r a;
Real mass, invMasses;
};
//rb1.getInvMass(),
//rb1.getPosition(),
//3*3
//rb1.getInertiaTensorInverseW(),
//rb1.getRotation(),
struct cuRigidBody {
cuVector3r pos;
Real inertiaTensorInverseW[9];
Real rotation[4];
Real mass, invMasses;
};
struct cuDistanceConstraint {
cuVector3r p0;
cuVector3r p1;
Real invMass0;
Real invMass1;
Real restLength;
Real compressionStiffness;
Real stretchStiffness;
};
struct cuDistanceConstraintAns {
cuVector3r corr0;
cuVector3r corr1;
bool success;
};
struct cuVolumeConstraint {
cuVector3r p0, p1, p2, p3;
Real invMass0, invMass1, invMass2, invMass3;
Real restVolume;
Real negVolumeStiffness;
Real posVolumeStiffness;
};
struct cuVolumeConstraintAns {
cuVector3r corr0, corr1, corr2, corr3;
bool success;
};
struct mtDistanceConstraint {
int p0;
int p1;
int res0;
int res1;
Real restLength;
int valid;
};
struct mtVolumeConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
Real restVolume;
int valid;
};
struct mtDistanceConstraintAns {
int p0, p1;
cuVector3r corr0;
cuVector3r corr1;
bool success;
};
struct mtVolumeConstraintAns {
int p0, p1, p2, p3;
cuVector3r corr0, corr1, corr2, corr3;
bool success;
};
// 与volume Constraint 内容相似,只是算法不同
struct mtDihedralConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
Real restAngle;
int valid;
};
struct mtDihedralConstraintAns{
int p0, p1, p2, p3;
cuVector3r corr0, corr1, corr2, corr3;
bool success;
int valid;
};
// IsometricBendingConstraint
struct mtIsometricBendingConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
Real m_Q[16];
int valid;
};
//TODO
// StrainTriangleConstraint
struct mtStrainTriangleConstraint {
int p0, p1, p2;
int res0, res1, res2;
Real m_invRestMat[4];
int valid;
};
// StrainTetraConstraint
struct mtStrainTetraConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
Real m_invRestMat[9];
int valid;
};
// EdgePointDistanceConstraint
struct mtEdgePointDistanceConstraint {
int p, p0, p1;
int res0, res1, res2;
Real restDist;
int valid;
};
struct mtTrianglePointDistanceConstraint {
int p, p0, p1, p2;
int res0, res1, res2, res3;
Real restDist;
int valid;
};
struct mtEdgeEdgeDistanceConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
Real restDist;
int valid;
};
struct mtTetShapeMatchingConstraint {
int p0, p1, p2, p3;
int res0, res1, res2, res3;
cuVector3r m_x0[4];
int numClusters[4];
cuVector3r m_restCm;
Real m_invRestMat[9];
int valid;
};
struct mtTriangleShapeMatchingConstraint {
int p0, p1, p2;
int res0, res1, res2;
cuVector3r m_x0[3];
int numClusters[3];
cuVector3r m_restCm;
Real m_invRestMat[9];
int valid;
};
struct unifyRes{
cuVector3r corr;
bool success;
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。