载入中...
搜索中...
未找到
SmrFeatures.cpp
浏览该文件的文档.
173 batch.sourceGeom[static_cast<size_t>(i) * 7u + 3u] = static_cast<float>(sourceCloud.getSensorPart(i));
174 batch.targetGeom[static_cast<size_t>(i) * 7u + 3u] = static_cast<float>(targetCloud.getSensorPart(i));
175 batch.sourceGeom[static_cast<size_t>(i) * 7u + 4u] = static_cast<float>(sourceCloud.getSensor(i).boneIndex);
176 batch.targetGeom[static_cast<size_t>(i) * 7u + 4u] = static_cast<float>(targetCloud.getSensor(i).boneIndex);
184 if (partsInteract(sourceCloud.getSensorPart(a), sourceCloud.getSensorPart(b))) pairIdx.emplace_back(a, b);
191 batch.frames = duration <= 0.f ? 1 : std::max(1, static_cast<int>(std::ceil(duration * rate)) + 1);
192 batch.sourceRot6d.assign(static_cast<size_t>(batch.frames) * static_cast<size_t>(batch.joints) * 6u, 0.f);
193 batch.sourceDmi.assign(static_cast<size_t>(batch.frames) * static_cast<size_t>(std::max(batch.pairs, 1)) * 10u,
213 (static_cast<size_t>(frame) * static_cast<size_t>(batch.joints) + static_cast<size_t>(joint)) * 6u;
232 (by - prevXyz[static_cast<size_t>(b) * 3u + 1u]) - (ay - prevXyz[static_cast<size_t>(a) * 3u + 1u]);
Keyframed skeletal animation clip (local TRS tracks per bone). Script type: AnimClip.
Definition AnimClip.h:145
void sample(float time, AnimPose *out, const AnimSkeleton *skeleton=nullptr) const
Sample local pose at time (seconds). If skeleton non-null, missing tracks fall back to bind pose; oth...
Definition AnimClip.cpp:575
Evaluated local (and optional world) pose for an AnimSkeleton. Script type: AnimPose.
Definition AnimPose.h:17
void computeWorld(const AnimSkeleton *skeleton)
Compute world transforms from local pose + skeleton hierarchy. World values readable via getWorld* af...
Definition AnimPose.cpp:203
3D bone hierarchy + bind-pose local TRS for skeletal animation. Independent of ik::Skeleton3D (FABRIK...
Definition AnimSkeleton.h:16
void applyBindPose(class AnimPose *pose) const
Fill pose locals with bind pose.
Definition AnimSkeleton.cpp:132
CPU linear-blend skinning binding for one mesh against an AnimSkeleton.
Definition AnimSkin.h:47
Bone-attached sensor cloud for skinned-motion-retarget interaction queries. Script type: AnimSmrSenso...
Definition AnimSmr.h:53
void evaluateWorldPositions(const AnimPose *pose, std::vector< float > &outXYZ) const
Evaluate world-space sensor positions for a pose that already has computeWorld() applied.
Definition AnimSmr.cpp:326
static AnimSmrSensorCloud fromSkeletonDense(const AnimSkeleton *skeleton, int ringsPerBone, int pointsPerRing)
Build denser MeshRet-style SCS rings around each bone segment.
Definition AnimSmr.cpp:228
Definition Animation.cpp:58
AnimSmrBodyPart
Coarse body-part tag used to select MeshRet-style interaction pairs.
Definition AnimSmr.h:18
SmrFeatureBatch buildSmrFeatures(const AnimClip &sourceClip, const AnimSkeleton *sourceSkeleton, const AnimSkeleton *targetSkeleton, const AnimSkin *, const AnimSkin *, int ringsPerBone, int pointsPerRing)
Build dense SCS + DMI tensors from skeletons/clip (no tensor headers).
Definition SmrFeatures.cpp:129
void rot6dToQuat(const float in[6], float &qx, float &qy, float &qz, float &qw)
Convert rotation-6D back to a unit quaternion.
Definition SmrFeatures.cpp:66
void quatToRot6d(float qx, float qy, float qz, float qw, float out[6])
Convert unit quaternion to MeshRet-style rotation-6D.
Definition SmrFeatures.cpp:52
Packed MeshRet-style features for one retarget inference window.
Definition SmrFeatures.h:15
std::vector< int > jointMap
target joint -> source joint (-1 if unmatched)
Definition SmrFeatures.h:25
Local TRS used by skeletal animation (quaternion xyzw).
Definition AnimMath.h:9