// Token: 0x060002F9 RID: 761 RVA: 0x00030E84 File Offset: 0x0002F084 private bool IsPositiveRank(double[,] M, ref double maxEntry, ref Vector3d maxRow) { maxEntry = -1.0; int i = -1; for (int j = 0; j < 3; j++) { for (int k = j; k < 3; k++) { double num = Math.Abs(M[j, k]); if (num > maxEntry) { maxEntry = num; i = j; } } } maxRow = MatrixMath.GetRow(M, i).ToVector3d(); return(maxEntry >= 1E-08); }
// Token: 0x06000324 RID: 804 RVA: 0x00031F98 File Offset: 0x00030198 private static double[] ChordalNodesU(Point3d[,] intPoints) { int length = intPoints.GetLength(0); int length2 = intPoints.GetLength(1); Point3d[] intPoints2 = new Point3d[length2]; double[,] array = new double[length, length2]; for (int i = 0; i < length; i++) { intPoints2 = MatrixMath.GetRow(intPoints, i); double[] array2 = SplineMath.ChordalNodes(intPoints2); for (int j = 0; j < length2; j++) { array[i, j] = array2[j]; } } double[] array3 = new double[length2]; for (int k = 0; k < length2; k++) { array3[k] = MathEx.Mean(MatrixMath.GetColumn(array, k)); } return(array3); }
/// <summary> /// 使用二维数组来初始化 Matrix3x3 /// </summary> /// <param name="orientaition"></param> public static Matrix3x3 Create(double[,] orientaition) { return(Create(MatrixMath.GetRow(orientaition, 0), MatrixMath.GetRow(orientaition, 1), MatrixMath.GetRow(orientaition, 2))); }