SA.FullBodyIK._Prefix C# (CSharp) Method

_Prefix() public method

public _Prefix ( ) : void
return void
		void _Prefix()
		{
			if( _isPrefixed ) {
				return;
			}

			_isPrefixed = true;

			SafeNew( ref bodyBones );
			SafeNew( ref headBones );
			SafeNew( ref leftLegBones );
			SafeNew( ref rightLegBones );

			SafeNew( ref leftArmBones );
			leftArmBones.Repair();
			SafeNew( ref rightArmBones );
			rightArmBones.Repair();

			SafeNew( ref leftHandFingersBones );
			leftHandFingersBones.Repair();
			SafeNew( ref rightHandFingersBones );
			rightHandFingersBones.Repair();

			SafeNew( ref bodyEffectors );
			SafeNew( ref headEffectors );
			SafeNew( ref leftArmEffectors );
			SafeNew( ref rightArmEffectors );
			SafeNew( ref leftLegEffectors );
			SafeNew( ref rightLegEffectors );
			SafeNew( ref leftHandFingersEffectors );
			SafeNew( ref rightHandFingersEffectors );

			SafeNew( ref settings );
			SafeNew( ref editorSettings );
			SafeNew( ref internalValues );

			settings.Prefix();

			if( _bones == null || _bones.Length != (int)BoneLocation.Max ) {
				_bones = new Bone[(int)BoneLocation.Max];
			}
			if( _effectors == null || _effectors.Length != (int)EffectorLocation.Max ) {
				_effectors = new Effector[(int)EffectorLocation.Max];
			}

			_Prefix( ref bodyBones.hips, BoneLocation.Hips, null );
			_Prefix( ref bodyBones.spine, BoneLocation.Spine, bodyBones.hips );
			_Prefix( ref bodyBones.spine2, BoneLocation.Spine2, bodyBones.spine );
			_Prefix( ref bodyBones.spine3, BoneLocation.Spine3, bodyBones.spine2 );
			_Prefix( ref bodyBones.spine4, BoneLocation.Spine4, bodyBones.spine3 );
			_Prefix( ref headBones.neck, BoneLocation.Neck, bodyBones.spineU );
			_Prefix( ref headBones.head, BoneLocation.Head, headBones.neck );
			_Prefix( ref headBones.leftEye, BoneLocation.LeftEye, headBones.head );
			_Prefix( ref headBones.rightEye, BoneLocation.RightEye, headBones.head );
			for( int i = 0; i != 2; ++i ) {
				var legBones = (i == 0) ? leftLegBones : rightLegBones;
				_Prefix( ref legBones.leg, (i == 0) ? BoneLocation.LeftLeg : BoneLocation.RightLeg, bodyBones.hips );
				_Prefix( ref legBones.knee, (i == 0) ? BoneLocation.LeftKnee : BoneLocation.RightKnee, legBones.leg );
				_Prefix( ref legBones.foot, (i == 0) ? BoneLocation.LeftFoot : BoneLocation.RightFoot, legBones.knee );

				var armBones = (i == 0) ? leftArmBones : rightArmBones;
				_Prefix( ref armBones.shoulder, (i == 0) ? BoneLocation.LeftShoulder : BoneLocation.RightShoulder, bodyBones.spineU );
				_Prefix( ref armBones.arm, (i == 0) ? BoneLocation.LeftArm : BoneLocation.RightArm, armBones.shoulder );
				_Prefix( ref armBones.elbow, (i == 0) ? BoneLocation.LeftElbow : BoneLocation.RightElbow, armBones.arm );
				_Prefix( ref armBones.wrist, (i == 0) ? BoneLocation.LeftWrist : BoneLocation.RightWrist, armBones.elbow );

				for( int n = 0; n != MaxArmRollLength; ++n ) {
					var armRollLocation = (i == 0) ? BoneLocation.LeftArmRoll0 : BoneLocation.RightArmRoll0;
					_Prefix( ref armBones.armRoll[n], (BoneLocation)((int)armRollLocation + n), armBones.arm );
				}

				for( int n = 0; n != MaxElbowRollLength; ++n ) {
					var elbowRollLocation = (i == 0) ? BoneLocation.LeftElbowRoll0 : BoneLocation.RightElbowRoll0;
					_Prefix( ref armBones.elbowRoll[n], (BoneLocation)((int)elbowRollLocation + n), armBones.elbow );
				}

				var fingerBones = (i == 0) ? leftHandFingersBones : rightHandFingersBones;
				for( int n = 0; n != MaxHandFingerLength; ++n ) {
					var thumbLocation = (i == 0) ? BoneLocation.LeftHandThumb0 : BoneLocation.RightHandThumb0;
					var indexLocation = (i == 0) ? BoneLocation.LeftHandIndex0 : BoneLocation.RightHandIndex0;
					var middleLocation = (i == 0) ? BoneLocation.LeftHandMiddle0 : BoneLocation.RightHandMiddle0;
					var ringLocation = (i == 0) ? BoneLocation.LeftHandRing0 : BoneLocation.RightHandRing0;
					var littleLocation = (i == 0) ? BoneLocation.LeftHandLittle0 : BoneLocation.RightHandLittle0;
					_Prefix( ref fingerBones.thumb[n], (BoneLocation)((int)thumbLocation + n), (n == 0) ? armBones.wrist : fingerBones.thumb[n - 1] );
					_Prefix( ref fingerBones.index[n], (BoneLocation)((int)indexLocation + n), (n == 0) ? armBones.wrist : fingerBones.index[n - 1] );
					_Prefix( ref fingerBones.middle[n], (BoneLocation)((int)middleLocation + n), (n == 0) ? armBones.wrist : fingerBones.middle[n - 1] );
					_Prefix( ref fingerBones.ring[n], (BoneLocation)((int)ringLocation + n), (n == 0) ? armBones.wrist : fingerBones.ring[n - 1] );
					_Prefix( ref fingerBones.little[n], (BoneLocation)((int)littleLocation + n), (n == 0) ? armBones.wrist : fingerBones.little[n - 1] );
				}
			}

			_Prefix( ref rootEffector, EffectorLocation.Root );
			_Prefix( ref bodyEffectors.hips, EffectorLocation.Hips, rootEffector, bodyBones.hips, leftLegBones.leg, rightLegBones.leg );
			_Prefix( ref headEffectors.neck, EffectorLocation.Neck, bodyEffectors.hips, headBones.neck );
			_Prefix( ref headEffectors.head, EffectorLocation.Head, headEffectors.neck, headBones.head );
			_Prefix( ref headEffectors.eyes, EffectorLocation.Eyes, rootEffector, headBones.head, headBones.leftEye, headBones.rightEye );

			_Prefix( ref leftLegEffectors.knee, EffectorLocation.LeftKnee, rootEffector, leftLegBones.knee );
			_Prefix( ref leftLegEffectors.foot, EffectorLocation.LeftFoot, rootEffector, leftLegBones.foot );
			_Prefix( ref rightLegEffectors.knee, EffectorLocation.RightKnee, rootEffector, rightLegBones.knee );
			_Prefix( ref rightLegEffectors.foot, EffectorLocation.RightFoot, rootEffector, rightLegBones.foot );

			_Prefix( ref leftArmEffectors.arm, EffectorLocation.LeftArm, bodyEffectors.hips, leftArmBones.arm );
			_Prefix( ref leftArmEffectors.elbow, EffectorLocation.LeftElbow, bodyEffectors.hips, leftArmBones.elbow );
			_Prefix( ref leftArmEffectors.wrist, EffectorLocation.LeftWrist, bodyEffectors.hips, leftArmBones.wrist );
			_Prefix( ref rightArmEffectors.arm, EffectorLocation.RightArm, bodyEffectors.hips, rightArmBones.arm );
			_Prefix( ref rightArmEffectors.elbow, EffectorLocation.RightElbow, bodyEffectors.hips, rightArmBones.elbow );
			_Prefix( ref rightArmEffectors.wrist, EffectorLocation.RightWrist, bodyEffectors.hips, rightArmBones.wrist );

			_Prefix( ref leftHandFingersEffectors.thumb, EffectorLocation.LeftHandThumb, leftArmEffectors.wrist, leftHandFingersBones.thumb );
			_Prefix( ref leftHandFingersEffectors.index, EffectorLocation.LeftHandIndex, leftArmEffectors.wrist, leftHandFingersBones.index );
			_Prefix( ref leftHandFingersEffectors.middle, EffectorLocation.LeftHandMiddle, leftArmEffectors.wrist, leftHandFingersBones.middle );
			_Prefix( ref leftHandFingersEffectors.ring, EffectorLocation.LeftHandRing, leftArmEffectors.wrist, leftHandFingersBones.ring );
			_Prefix( ref leftHandFingersEffectors.little, EffectorLocation.LeftHandLittle, leftArmEffectors.wrist, leftHandFingersBones.little );

			_Prefix( ref rightHandFingersEffectors.thumb, EffectorLocation.RightHandThumb, rightArmEffectors.wrist, rightHandFingersBones.thumb );
			_Prefix( ref rightHandFingersEffectors.index, EffectorLocation.RightHandIndex, rightArmEffectors.wrist, rightHandFingersBones.index );
			_Prefix( ref rightHandFingersEffectors.middle, EffectorLocation.RightHandMiddle, rightArmEffectors.wrist, rightHandFingersBones.middle );
			_Prefix( ref rightHandFingersEffectors.ring, EffectorLocation.RightHandRing, rightArmEffectors.wrist, rightHandFingersBones.ring );
			_Prefix( ref rightHandFingersEffectors.little, EffectorLocation.RightHandLittle, rightArmEffectors.wrist, rightHandFingersBones.little );

			if( !_isPrefixedAtLeastOnce ) {
				_isPrefixedAtLeastOnce = true;
				for( int i = 0; i != _effectors.Length; ++i ) {
					_effectors[i].Prefix();
                }
			}
		}

Same methods

FullBodyIK::_Prefix ( Bone &bone, BoneLocation boneLocation, Bone parentBoneLocationBased ) : void
FullBodyIK::_Prefix ( Effector &effector, EffectorLocation effectorLocation ) : void
FullBodyIK::_Prefix ( Effector &effector, EffectorLocation effectorLocation, Effector parentEffector, Bone bones ) : void
FullBodyIK::_Prefix ( Effector &effector, EffectorLocation effectorLocation, Effector parentEffector, Bone bone, Bone leftBone = null, Bone rightBone = null ) : void
FullBodyIK