beginning of IK test

This commit is contained in:
devZoGok
2021-10-19 19:06:41 +03:00
parent 66f3adfb4e
commit 640bd6906a
10 changed files with 201 additions and 73 deletions
+6 -9
View File
@@ -53,17 +53,14 @@ namespace vb01{
void Bone::setPoseRot(Quaternion r){
this->poseRot = r;
setOrientation(restRot);
Vector3 rotAxis = r.getAxis();
rotAxis =
parent->globalToLocalPosition(localToGlobalPosition(rotAxis)) -
parent->globalToLocalPosition(localToGlobalPosition(Vector3::VEC_ZERO));
Quaternion parentSpacePoseRot = Quaternion::QUAT_W;
vector<Node*> ancestors = getAncestors();
for(int i = 0; i < ancestors.size(); i++)
parentSpacePoseRot = parentSpacePoseRot * ancestors[i]->getOrientation();
for(int i = ancestors.size() - 1; i > 0; i--)
parentSpacePoseRot = parentSpacePoseRot * ancestors[i]->getOrientation().conj();
parentSpacePoseRot = r * parentSpacePoseRot;
Quaternion parentSpacePoseRot = Quaternion(r.getAngle(), rotAxis);
setOrientation(parentSpacePoseRot);
setOrientation(parentSpacePoseRot * restRot);
}
void Bone::setPoseScale(Vector3 s){