SA.FullBodyIK.BodyIK.SolverInternal._UpdateSpineUBasis C# (CSharp) Method

_UpdateSpineUBasis() public method

public _UpdateSpineUBasis ( ) : void
return void
				public void _UpdateSpineUBasis()
				{
					if( _isDirtySpineUBasis ) {
						_isDirtySpineUBasis = false;
						_spineUBasis = Matrix3x3.identity;
						Vector3 dirY = (this.shoulderPos != null) ? (this.shoulderPos[1] + this.shoulderPos[0]) : (this.armPos[1] + this.armPos[0]);
						dirY = dirY * 0.5f - this.spineUPos;
						Vector3 dirX = (this.shoulderPos != null) ? (this.shoulderPos[1] - this.shoulderPos[0]) : (this.armPos[1] - this.armPos[0]);
						Vector3 dirZ = Vector3.Cross( dirX, dirY );
						dirX = Vector3.Cross( dirY, dirZ );
						if( SAFBIKVecNormalize3( ref dirX, ref dirY, ref dirZ ) ) {
							_spineUBasis.SetColumn( ref dirX, ref dirY, ref dirZ );
							SAFBIKMatMultRet0( ref _spineUBasis, ref _spineUBoneLocalAxisBasisInv );
                        }
					}
				}