1094 {
1095 CachedObjectsArrays.ARRAY_STRING.Clear();
1096 GetActionComponentNameList(componentIndex, CachedObjectsArrays.ARRAY_STRING, "fire");
1097
1098 int pivot = -1;
1099
1100
1101 for (int i = 0; i < CachedObjectsArrays.ARRAY_STRING.Count() && pivot == -1; i++)
1102 {
1104 }
1105
1106 vector parentTransMat[4];
1107 vector arrowTransMat[4];
1108
1109 if (pivot == -1)
1110 {
1111 GetTransformWS(parentTransMat);
1112 }
1113 else
1114 {
1115 vector rotMatrix[3];
1116 Math3D.YawPitchRollMatrix(closeBoneRotWS * Math.RAD2DEG,rotMatrix);
1117
1118 parentTransMat[0] = rotMatrix[0];
1119 parentTransMat[1] = rotMatrix[1];
1120 parentTransMat[2] = rotMatrix[2];
1121 parentTransMat[3] = closeBonePosWS;
1122 }
1123
1124 arrow.GetTransform(arrowTransMat);
1125 Math3D.MatrixInvMultiply4(parentTransMat, arrowTransMat, arrowTransMat);
1126
1127 Math3D.MatrixOrthogonalize4(arrowTransMat);
1128 arrow.SetTransform(arrowTransMat);
1129
1131 }
proto native int GetBoneIndexByName(string pBoneName)
returns bone index for a name (-1 if pBoneName doesn't exist)