public static Color EntColor(DXFEntity E, DXFInsert Ins) { DXFInsert vIns = Ins; DXFEntity Ent = E; Color Result = DXFConst.clNone; if (Ent is DXFVisibleEntity) Result = E.FColor; /*if(Ent is Polyline) Result = ((Polyline)Ent).Pen.Pen.Color;*/ if (E.layer == null) return Result; if ((Result == clByLayer) || (Result == clByBlock)) { if ((vIns == null) || ((Result == clByLayer) && (Ent.layer.name != "0"))) { if (Result == clByLayer) { if (Ent.layer.color != clNone) Result = Ent.layer.color; else Result = Color.Black; } } else { while (vIns != null) { Result = vIns.color; if ((Result != clByBlock) && !((Result == clByLayer) && (vIns.layer.name == "0"))) { if (Result == clByLayer) Result = vIns.layer.color; break; } if ((vIns.owner == null) && (Result == clByLayer)) Result = vIns.layer.color; vIns = vIns.owner; } } } if ((Result == clByLayer) || (Result == clByBlock)) Result = clNone; return Result; }
public override void Invoke(CADEntityProc Proc, CADIterate Params) { if (Params.matrix == null) Params.matrix = new DXFMatrix(); if (FBlock == null) return; CADIterate Iter; Iter = Params; Params.matrix = matrix; Params.Scale = Scale; Params.Insert = this; Converter.FParams = Params; FBlock.Iterate(Proc, Params); Converter.FParams = Iter; Params = Iter; owner = Params.Insert; }
public DXFEntity CreateEntity() { DXFEntity E; switch (FValue) { case "ENDSEC": return null; case "ENDBLK": return null; case "ENDTAB": return null; case "LINE": E = new DXFLine(); break; case "SECTION": E = new DXFSection(); break; case "BLOCK": E = new DXFBlock(); break; case "INSERT": E = new DXFInsert(); break; case "TABLE": E = new DXFTable(); break; case "CIRCLE": E = new DXFCircle(); break; case "LAYER": E = new DXFLayer(); break; case "TEXT": E = new DXFText(); break; case "MTEXT": E = new DXFMText(); break; case "ARC": E = new DXFArc(); break; case "ELLIPSE": E = new DXFEllipse(); break; default: E = new DXFEntity(); break; } E.Converter = this; return E; }