Beispiel #1
0
    static public void Fill_Component(LightingBuffer2D buffer, LightingTilemapCollider2D id, float lightSizeSquared, float z)
    {
        Vector2D vA, vB;

        foreach (Polygon2D polygon in id.edgeColliders)
        {
            Vector2D polyOffset = new Vector2D(-buffer.lightSource.transform.position);

            Polygon2D poly = polygon.Copy();
            poly.ToOffsetItself(polyOffset);

            foreach (Pair2D p in Pair2D.GetList(poly.pointsList, false))
            {
                vA = p.A.Copy();
                vB = p.B.Copy();

                vA.Push(Vector2D.Atan2(vA, zero), lightSizeSquared);
                vB.Push(Vector2D.Atan2(vB, zero), lightSizeSquared);

                Max2DMatrix.DrawTriangle(p.A, p.B, vA, zero, z);
                Max2DMatrix.DrawTriangle(vA, vB, p.B, zero, z);
            }

            LightingDebug.shadowGenerations++;
        }

        foreach (Polygon2D polygon in id.polygonColliders)
        {
            Vector2D polyOffset = new Vector2D(-buffer.lightSource.transform.position);

            Polygon2D poly = polygon.Copy();
            poly.ToOffsetItself(polyOffset);

            foreach (Pair2D p in Pair2D.GetList(poly.pointsList))
            {
                vA = p.A.Copy();
                vB = p.B.Copy();

                vA.Push(Vector2D.Atan2(vA, zero), lightSizeSquared);
                vB.Push(Vector2D.Atan2(vB, zero), lightSizeSquared);

                Max2DMatrix.DrawTriangle(p.A, p.B, vA, zero, z);
                Max2DMatrix.DrawTriangle(vA, vB, p.B, zero, z);
            }

            LightingDebug.shadowGenerations++;
        }
    }
Beispiel #2
0
    public void Initialize()
    {
        Polygon2D.defaultCircleVerticesCount = circleVerticesCount;
        Polygon2D circlePolygon = Polygon2D.Create(Polygon2D.PolygonType.Hexagon, size);

        eraseBrushStart.SetBrush(circlePolygon.Copy());
    }
Beispiel #3
0
 public Polygon2D GetWorldShape()
 {
     if (shape_world == null)
     {
         shape_world = shape_local.Copy();
         shape_world.ToOffsetItself(offset_local);
     }
     return(shape_world);
 }