mirror of
https://github.com/devZoGok/vb01.git
synced 2026-08-26 19:43:30 +00:00
beginning of IK test
This commit is contained in:
@@ -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){
|
||||
|
||||
Reference in New Issue
Block a user