// Token: 0x06000138 RID: 312 RVA: 0x000095DC File Offset: 0x000077DC public static Matrix GetOrthogonalMatrix(Vector3 normal, Vector3 origin) { Vector3 xAxis; Vector3 yAxis; Vector3 zAxis; GfxMath.GetOrthogonalAxis(normal, out xAxis, out yAxis, out zAxis); return(GfxMath.GetMatrix(xAxis, yAxis, zAxis, origin)); }
// Token: 0x06000133 RID: 307 RVA: 0x00009340 File Offset: 0x00007540 public static Vector3[] GetCircleVertices(Vector3 origin, Vector3 normal, double radius, int segments) { Matrix orthogonalMatrix = GfxMath.GetOrthogonalMatrix(normal, origin); Vector3[] circleVertices2D = GfxMath.GetCircleVertices2D(default(Vector3), radius, segments); for (int i = 0; i < circleVertices2D.Length; i++) { circleVertices2D[i] = orthogonalMatrix.Transform(circleVertices2D[i]); } return(circleVertices2D); }
// Token: 0x06000135 RID: 309 RVA: 0x00009404 File Offset: 0x00007604 public static Vector3[][] GetHalfSphere(Vector3 origin, Vector3 normal, float radius, int segments, int layers) { normal.Normalize(); Vector3[][] array = new Vector3[layers][]; for (int i = 0; i < layers; i++) { float num = radius - (float)i * (radius / (float)layers); Vector3 origin2 = origin + normal * ((float)Math.Cos(Math.Asin((double)(num / radius))) * radius); array[i] = GfxMath.GetCircleVertices(origin2, normal, (double)num, segments); } return(array); }