Esempio n. 1
0
        // 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));
        }
Esempio n. 2
0
        // 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);
        }
Esempio n. 3
0
 // 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);
 }