Data definitions. More...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "config.h"
#include "global.h"
#include "data.h"
#include "macro.h"
#include "create.h"
#include "remove.h"
#include "hid.h"
#include "error.h"
#include "rtree.h"
#include "polygon.h"
#include "polyarea.h"
#include "assert.h"
#include "strflags.h"
#include "find.h"
#include "misc.h"
#include "draw.h"
#include "undo.h"
#include <gtk/gtk.h>
#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <algorithm>
#include <deque>
#include <boost/math/constants/constants.hpp>
#include <boost/polygon/polygon.hpp>
#include <boost/foreach.hpp>
#include <boost/format.hpp>
#include <boost/regex.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/geometry/geometries/geometries.hpp>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>
Go to the source code of this file.
Classes | |
class | StippledPolygon |
A single boost polygon with all of it's cutouts. More... | |
class | StippleDialog |
The main user interface. More... | |
class | Layer |
Worker thread for a single layer's stipple processing. More... | |
Macros | |
#define | foreach BOOST_FOREACH |
Shorthand for a boost iterator. | |
#define | BoxTypePtr BoxType * |
Shorthand for a PCB Box. | |
#define | LayerTypePtr LayerType * |
Shorthand for a PCB Layer. | |
#define | PointTypePtr PointType * |
Shorthand for a PCB Point. | |
#define | PolygonTypePtr PolygonType * |
Shorthand for a PCB Polygon. | |
#define | POLYGON_LP(layer) |
This loop replaces POLYGON_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | POLYGONPOINT_LP(polygon) |
This loop replaces POLYGONPOINT_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | VIA_LP(top) |
This loop replaces VIA_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | LINE_LP(layer) |
This loop replaces LINE_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | ELEMENT_LP(top) |
This loop replaces ELEMENT_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | PAD_LP(element) |
This loop replaces PAD_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
#define | PIN_LP(element) |
This loop replaces PIN_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment. More... | |
Typedefs | |
typedef gtl::polygon_with_holes_data< int > | b_polygon |
A shorthand for a set of coordinates from a boost polygon. | |
typedef gtl::polygon_traits< b_polygon >::point_type | b_point |
A shorthand for boost points (coordinates). | |
typedef gtl::polygon_with_holes_traits< b_polygon >::hole_type | b_hole |
A shorthand for the boost polygon holes. | |
typedef std::vector< b_polygon > | b_polygon_set |
A shorthand for a boost collection of polygons. | |
Enumerations | |
enum | MakeLayers_t { MakeTopLayer, MakeBottomLayer, MakeBothLayers, MakeSelected, MakeDelete } |
These correspond to the work order filled in by the operator in the dialog. | |
Functions | |
void | ParameterDialog () |
The user interface. | |
void | MakeAllLayers () |
Since the dialog runs on the PCB GUI thread, a new spool thread is used to delegate all of the worker layer threads. More... | |
void | LayerFactory (int i) |
Since Gnome threads can not use a C++ decorated function as an entry point, this serves as a thunk to the Layer worker class. | |
void | Log (const char *format,...) |
A simple log print to stout. | |
Variables | |
const double | PI = boost::math::constants::pi<double>() |
Used for rounding edges and drawing approximate circles. | |
const string | component_perimeter = "comp-perim" |
the PCB name of the component perimeter layer. | |
const string | component_stipple = "comp-stipple" |
the PCB name of the component stipple layer. | |
const string | solder_perimeter = "solder-perim" |
the PCB name of the sodler perimeter layer. | |
const string | solder_stipple = "solder-stipple" |
the PCB name of the solder stipple layer. | |
const double | NanometerToMil = 3.93700787E10-5 |
Unit translation: 1 nanometer = .00003... mills. | |
const Coord | MilToNanometer = 254 |
Unit translation: 1 mil (1/1000 of an inch) = 254 nanometers. | |
bool | Cancel |
The dialog box is on its own thread, so a cancel request is signaled by setting this variable. More... | |
Coord | ComponentTrace |
The size trace to be used in stipples on the component layer. | |
Coord | SolderTrace |
The size trace to be used in stipples on the solder layer. | |
Coord | ComponentPitch |
The pitch size (spacing) to be used on the component layer. | |
Coord | SolderPitch |
The pitch size (spacing) to be used on the solder layer. | |
MakeLayers_t | MakeLayers |
The checkbox translation of the work order. | |
vector< string > | MakeLayerNames |
A list of layer names to be stippled. | |
Data definitions.
#define ELEMENT_LP | ( | top | ) |
This loop replaces ELEMENT_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define LINE_LP | ( | layer | ) |
This loop replaces LINE_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define PAD_LP | ( | element | ) |
This loop replaces PAD_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define PIN_LP | ( | element | ) |
This loop replaces PIN_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define POLYGON_LP | ( | layer | ) |
This loop replaces POLYGON_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define POLYGONPOINT_LP | ( | polygon | ) |
This loop replaces POLYGONPOINT_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
#define VIA_LP | ( | top | ) |
This loop replaces VIA_LOOP(layer); The loop had to unrolled from its macro because of the rvalue typecast on pcb_polygon assignment.
void MakeAllLayers | ( | ) |
Since the dialog runs on the PCB GUI thread, a new spool thread is used to delegate all of the worker layer threads.
This allows a "cancel" button to remain active in the dialog as the sometimes lengthy stipple threads do their work.
bool Cancel |
The dialog box is on its own thread, so a cancel request is signaled by setting this variable.