本文整理汇总了C++中Bone::findJointWith方法的典型用法代码示例。如果您正苦于以下问题:C++ Bone::findJointWith方法的具体用法?C++ Bone::findJointWith怎么用?C++ Bone::findJointWith使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bone
的用法示例。
在下文中一共展示了Bone::findJointWith方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applyAllConstraints
void IkSolver::applyAllConstraints(const Bone *parent, const Bone &b)
{
if ((parent == 0) && (b.primaryJointIdx >= 0))
applyConstraints(b, b.joints[b.primaryJointIdx]);
else if (parent != 0)
applyConstraints(b, *b.findJointWith(*parent));
for (int i = 0; i < (int)b.joints.size(); ++i)
{
const Bone::Connection &c = b.joints[i];
if (c.to != parent)
applyAllConstraints(&b, *c.to);
}
}
示例2: updateBoneTransforms
void IkSolver::updateBoneTransforms(const Bone *parent, const Bone &b, const mat4d &base) const
{
const BoneState &bs = boneStates[b.id];
if (parent == 0)
bs.boneToWorld = base * mat4d(bs.rot);
else
{
const Bone::Connection &c = *b.findJointWith(*parent);
bs.boneToWorld = base * mat4d(bs.rot) * vmath::translation_matrix(-c.pos);
}
for (int i = 0; i < (int)b.joints.size(); ++i)
{
const Bone::Connection &c = b.joints[i];
Bone &bn = *c.to;
if (&bn != parent)
updateBoneTransforms(&b, bn, bs.boneToWorld * vmath::translation_matrix(c.pos));
}
}