Пример #1
0
 private void ApplyCenter(LocalEdge[] edges)
 {
     for (int i = 0; i < edges.Length; i++)
     {
         LocalEdges[i].Position = edges[i].Position - Center;
         LocalEdges[i].Weight = edges[i].Weight;
     }
 }
Пример #2
0
 private void CalculateCenter(LocalEdge[] edges)
 {
     foreach (var le in edges)
     {
         Center += le.Position * le.Weight;
         Weight += le.Weight;
     }
     Center /= edges.Length;
 }
Пример #3
0
 public PolygonCollider(GameEntity entity, params Vector3[] lcEdges)
 {
     Entity = entity;
     Edges = new Vector2[lcEdges.Length];
     LocalEdges = new LocalEdge[lcEdges.Length];
     for (int i = 0; i < lcEdges.Length; i++) {
         LocalEdges[i] = new LocalEdge(lcEdges[i].X, lcEdges[i].Y, lcEdges[i].Z);
     }
     CalculateCenter(LocalEdges);
     ApplyCenter(LocalEdges);
     Update();
 }