Ai
1 Star 0 Fork 2

FantasyVR/position-based-dynamic-GPU

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
cuStructure.h 2.92 KB
一键复制 编辑 原始数据 按行查看 历史
李开诚 提交于 2020-06-04 13:39 +08:00 . first commit
#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;
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fantasyvr/position-based-dynamic-GPU.git
git@gitee.com:fantasyvr/position-based-dynamic-GPU.git
fantasyvr
position-based-dynamic-GPU
position-based-dynamic-GPU
master

搜索帮助