Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 29423) +++ trunk/src/draw.c (revision 29424) @@ -407,7 +407,7 @@ /* * first draw all 'invisible' stuff */ - if (!conf_core.editor.check_planes && pcb_layer_gui_set_vlayer(PCB, PCB_VLY_INVISIBLE, 0, &info->xform_exporter)) { + if ((info->xform_exporter != NULL) && !info->xform_exporter->check_planes && pcb_layer_gui_set_vlayer(PCB, PCB_VLY_INVISIBLE, 0, &info->xform_exporter)) { pcb_layer_type_t side = PCB_LYT_INVISIBLE_SIDE(); pcb_draw_silk_doc(info, side, PCB_LYT_DOC, 0, 1); pcb_draw_silk_doc(info, side, PCB_LYT_SILK, 0, 1); @@ -730,7 +730,7 @@ pcb_r_search(Layer->polygon_tree, info->drawn_area, NULL, pcb_poly_draw_callback, info, NULL); } - if (conf_core.editor.check_planes) + if (info->xform->check_planes) goto out; /* draw all visible layer objects (with terminal gfx on copper) */ @@ -845,7 +845,7 @@ } } - if (conf_core.editor.check_planes) + if (info.xform->check_planes) goto out; /* draw all visible layer objects (with terminal gfx on copper) */ @@ -1088,6 +1088,7 @@ dst->wireframe = conf_core.editor.wireframe_draw; dst->thin_draw = conf_core.editor.thin_draw; dst->thin_draw_poly = conf_core.editor.thin_draw_poly; + dst->check_planes = conf_core.editor.check_planes; } void pcb_draw_setup_default_xform_info(pcb_hid_t *hid, pcb_draw_info_t *info) Index: trunk/src/obj_common.h =================================================================== --- trunk/src/obj_common.h (revision 29423) +++ trunk/src/obj_common.h (revision 29424) @@ -101,6 +101,7 @@ unsigned wireframe:1; /* when 1, draw wireframe contours instead of solid objects */ unsigned thin_draw:1; /* when 1, draw thin centerline instead of solid objects (implies thin_draw_poly) */ unsigned thin_draw_poly:1; /* when 1, draw thin countour instead of solid polygons */ + unsigned check_planes:1; /* when 1, draw polygons only */ /* WARNING: After adding new fields, make sure to update pcb_xform_add() and pcb_xform_is_nop() below */ }; @@ -118,6 +119,7 @@ __dst__->wireframe |= __src__->wireframe; \ __dst__->thin_draw |= __src__->thin_draw; \ __dst__->thin_draw_poly |= __src__->thin_draw_poly; \ + __dst__->check_planes |= __src__->check_planes; \ } while(0) #define pcb_xform_is_nop(src) (\ ((src)->bloat == 0) && \ @@ -126,7 +128,8 @@ ((src)->no_slot_in_nonmech == 0) && \ ((src)->wireframe == 0) && \ ((src)->thin_draw == 0) && \ - ((src)->thin_draw_poly == 0) \ + ((src)->thin_draw_poly == 0) && \ + ((src)->check_planes == 0) \ ) /* Returns true if overlay drawing should be omitted */ Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 29423) +++ trunk/src/obj_poly.c (revision 29424) @@ -1250,7 +1250,7 @@ } /* If checking planes, thin-draw any pieces which have been clipped away */ - if (conf_core.editor.check_planes && !PCB_FLAG_TEST(PCB_FLAG_FULLPOLY, polygon)) { + if (info->xform->check_planes && !PCB_FLAG_TEST(PCB_FLAG_FULLPOLY, polygon)) { pcb_poly_t poly = *polygon; for (poly.Clipped = polygon->Clipped->f; poly.Clipped != polygon->Clipped; poly.Clipped = poly.Clipped->f) Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 29423) +++ trunk/src_plugins/export_dxf/dxf.c (revision 29424) @@ -222,7 +222,6 @@ memcpy(saved_layer_stack, pcb_layer_stack, sizeof(pcb_layer_stack)); -/* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); dxf_ctx.enable_force_thin = options[HA_thin].lng; Index: trunk/src_plugins/export_excellon/excellon.c =================================================================== --- trunk/src_plugins/export_excellon/excellon.c (revision 29423) +++ trunk/src_plugins/export_excellon/excellon.c (revision 29424) @@ -221,9 +221,6 @@ pcb_hid_expose_ctx_t ctx; pcb_xform_t xform; - conf_force_set_bool(conf_core.editor.check_planes, 0); - - if (!options) { excellon_get_export_options(hid, NULL); for (i = 0; i < NUM_OPTIONS; i++) Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 29423) +++ trunk/src_plugins/export_gerber/gerber.c (revision 29424) @@ -543,9 +543,6 @@ gerber_ovr = 0; - conf_force_set_bool(conf_core.editor.check_planes, 0); - - drawing_mode_issued = PCB_HID_COMP_POSITIVE; if (!options) { Index: trunk/src_plugins/export_openems/export_openems.c =================================================================== --- trunk/src_plugins/export_openems/export_openems.c (revision 29423) +++ trunk/src_plugins/export_openems/export_openems.c (revision 29424) @@ -609,7 +609,6 @@ f = the_file; -/* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); find_origin(&wctx); Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 29423) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 29424) @@ -155,7 +155,6 @@ memcpy(saved_layer_stack, pcb_layer_stack, sizeof(pcb_layer_stack)); -/* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); pcbhl_expose_main(&openscad_hid, &ctx, NULL); Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 29423) +++ trunk/src_plugins/export_png/png.c (revision 29424) @@ -546,7 +546,6 @@ as_shown = options[HA_as_shown].lng; if (!options[HA_as_shown].lng) { -/* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); qsort(pcb_layer_stack, pcb_max_layer(PCB), sizeof(pcb_layer_stack[0]), layer_sort); Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 29423) +++ trunk/src_plugins/export_ps/eps.c (revision 29424) @@ -222,8 +222,6 @@ options_ = options; - conf_force_set_bool(conf_core.editor.check_planes, 0); - f = the_file; region.X1 = 0; @@ -304,7 +302,6 @@ eps_print_footer(f); memcpy(pcb_layer_stack, saved_layer_stack, sizeof(pcb_layer_stack)); - pcb_conf_update(NULL, -1); /* restore forced sets */ options_ = NULL; } Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 29423) +++ trunk/src_plugins/export_ps/ps.c (revision 29424) @@ -524,8 +524,6 @@ { static int saved_layer_stack[PCB_MAX_LAYER]; - conf_force_set_bool(conf_core.editor.check_planes, 0); - global.f = the_file; global.drill_helper = options[HA_drillhelper].lng; global.drill_helper_size = options[HA_drillhelpersize].crd; @@ -601,7 +599,6 @@ fprintf(the_file, "showpage\n"); memcpy(pcb_layer_stack, saved_layer_stack, sizeof(pcb_layer_stack)); - pcb_conf_update(NULL, -1); /* restore forced sets */ } static void ps_do_export(pcb_hid_t *hid, pcb_hid_attr_val_t *options) Index: trunk/src_plugins/export_svg/svg.c =================================================================== --- trunk/src_plugins/export_svg/svg.c (revision 29423) +++ trunk/src_plugins/export_svg/svg.c (revision 29424) @@ -222,7 +222,6 @@ memcpy(saved_layer_stack, pcb_layer_stack, sizeof(pcb_layer_stack)); { -/* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); if (options[HA_photo_mode].lng) {