pcb 4.1.1
An interactive printed circuit board layout editor.

teardrops.c File Reference

Functions for handling the teardrop property of pins and vias. More...

#include <stdio.h>
#include <math.h>
#include "config.h"
#include "global.h"
#include "data.h"
#include "hid.h"
#include "misc.h"
#include "create.h"
#include "rtree.h"
#include "undo.h"
Include dependency graph for teardrops.c:

Go to the source code of this file.

Defines

#define MIN_LINE_LENGTH   700
#define MAX_DISTANCE   700

Functions

int distance_between_points (int x1, int y1, int x2, int y2)
static int check_line_callback (const BoxType *box, void *cl)
static void check_pin (PinType *_pin)
static int teardrops (int argc, char **argv, Coord x, Coord y)
void hid_teardrops_init ()

Variables

static PinTypepin
static int layer
static int px
static int py
static LayerTypesilk
static int new_arcs = 0
static HID_Action teardrops_action_list []

Detailed Description

Functions for handling the teardrop property of pins and vias.


Copyright.


PCB, interactive printed circuit board design

Copyright (C) 2006 DJ Delorie <dj@delorie.com>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file teardrops.c.


Define Documentation

#define MAX_DISTANCE   700

Definition at line 42 of file teardrops.c.

Referenced by check_line_callback().

#define MIN_LINE_LENGTH   700

Definition at line 41 of file teardrops.c.

Referenced by check_line_callback().


Function Documentation

static int check_line_callback ( const BoxType box,
void *  cl 
) [static]

Definition at line 64 of file teardrops.c.

References AddObjectToCreateUndoList(), c, CreateNewArcOnLayer(), PCBType::Data, distance_between_points(), layer, DataType::Layer, len, M_PI, MAX_DISTANCE, MIN_LINE_LENGTH, new_arcs, PCB, px, py, pin_st::Thickness, vx, vy, and x.

Referenced by check_pin().

Here is the call graph for this function:

static void check_pin ( PinType _pin) [static]

Definition at line 192 of file teardrops.c.

References check_line_callback(), PCBType::Data, DataType::Layer, layer, LayerType::line_tree, max_copper_layer, PCB, px, py, r_search(), pin_st::X, BoxType::X1, BoxType::X2, pin_st::Y, BoxType::Y1, and BoxType::Y2.

Referenced by teardrops().

Here is the call graph for this function:

int distance_between_points ( int  x1,
int  y1,
int  x2,
int  y2 
)

Definition at line 52 of file teardrops.c.

Referenced by check_line_callback().

void hid_teardrops_init ( )

Definition at line 290 of file teardrops.c.

static int teardrops ( int  argc,
char **  argv,
Coord  x,
Coord  y 
) [static]

Definition at line 256 of file teardrops.c.

References ALLPIN_LOOP, check_pin(), PCBType::Data, END_LOOP, ENDALL_LOOP, gui, IncrementUndoSerialNumber(), hid_st::invalidate_all, new_arcs, PCB, and VIA_LOOP.

Here is the call graph for this function:


Variable Documentation

int layer [static]

Definition at line 45 of file teardrops.c.

Referenced by ActionAttributes(), ActionDJopt(), ActionMinClearGap(), ActionMorphPolygon(), ActionRipUp(), ActionSetSame(), AddArcToBuffer(), AddLineToBuffer(), AddPolygon(), AddPolygonToBuffer(), AddTextToBuffer(), arc_callback(), AssignDefaultLayerTypes(), ChangeGroupVisibility(), check_line_callback(), check_pin(), CheckArcPointForRubberbandConnection(), CheckLinePointForRubberbandConnection(), CheckPadForRubberbandConnection(), CheckPolygonForRubberbandConnection(), choose_example_line(), ClearFlagOnLinesAndPolygons(), clearPoly(), config_layer_groups_radio_button_cb(), config_layers_apply(), connect_corners(), ConvertBufferToElement(), CreateRouteData(), DrawNewConnections(), DrawRecoveredObject(), DrawSilk(), drc_lines(), DRCAll(), eps_hid_export_to_file(), export_oproutes(), FitCrosshairIntoGrid(), FreeDataMemory(), FreeRotateBuffer(), GatherSubnets(), gcode_choose_groups(), gerber_do_export(), ghid_config_groups_changed(), ghid_layer_buttons_update(), gsvit_choose_groups(), gsvit_lookup_net_from_arc(), gsvit_lookup_net_from_line(), gsvit_lookup_net_from_polygon(), identify_layer(), import_geometry(), InitLayoutLookup(), IronDownAllUnfixedPaths(), layer_button_callback(), layer_name_entry_cb(), layer_selector_rename_callback(), LayerGroupsToString(), layerpick_button_callback(), lgbutton_cb(), lgbutton_input(), line_callback(), ListStart(), LookupLOConnectionsToArc(), LookupLOConnectionsToLine(), LookupLOConnectionsToLOList(), LookupLOConnectionsToPad(), LookupLOConnectionsToPolygon(), LookupLOConnectionsToPVList(), LookupLOConnectionsToRatEnd(), LookupPVConnectionsToLOList(), LookupRatLines(), LookupRubberbandLines(), make_layer_group_string(), MirrorBuffer(), move_line_to_layer(), MoveLayerToGroup(), nbcb_ripup(), nelma_choose_groups(), netlist_rip_up_cb(), new_line(), orthopull_1(), parse_arguments(), ParseGroupString(), PlowsPolygon(), png_hid_export_to_file(), PrepareNextLoop(), PrintElementConnections(), PrintFab(), ps_hid_export_to_file(), RD_DrawLine(), RD_DrawThermal(), reassign_no_drc_flags(), remove_line(), ReportDialog(), ripout_livedraw_obj(), RotateBuffer(), SearchLayerByName(), SearchObjectByID(), SelectBlock(), SelectByFlag(), SelectedOperation(), SelectObject(), set_layer_list(), SwapBuffer(), text_callback(), toporouter_bbox_create(), toporouter_bbox_create_from_points(), UndoInsertPoint(), UndoRemovePoint(), ViaIsOnAnyVisibleLayer(), ViaIsOnLayerGroup(), and XORDrawBuffer().

int new_arcs = 0 [static]

Definition at line 49 of file teardrops.c.

Referenced by check_line_callback(), and teardrops().

PinType* pin [static]

Definition at line 44 of file teardrops.c.

Referenced by ActionChangePinName(), ActionDisplay(), ActionDJopt(), ActionMinClearGap(), ActionMinMaskGap(), ActionRenumber(), AddPin(), apply_vendor_map(), ChangeElement2ndSize(), ChangeElementOctagon(), ChangeElementSquare(), check_point_in_pin(), CheckShorts(), ClearFlagOnPinsViasAndPads(), clearPin_callback(), ClearWarnings(), ClrElementOctagon(), ClrElementSquare(), ComputeCost(), CopyElementLowLevel(), CreateNewPin(), CreateRouteData(), DestroyElement(), draw_element_pins_and_pads(), DrawElementPinsAndPads(), drc_callback(), DRCAll(), element_name_for(), ElementOrientation(), EraseElementPinsAndPads(), FillDrill(), find_pair_pinarc_callback(), find_pair_pinline_callback(), find_pairs(), FindPad(), FitCrosshairIntoGrid(), fpin_rect(), FreeElementMemory(), FreeRotateElementLowLevel(), GetDrillInfo(), GetDrillPinMemory(), gsvit_build_net_from_selected(), gsvit_lookup_net_from_pv(), gsvit_write_xcentroids(), gsvit_write_xnets(), hole_counting_callback(), import_clusters(), InitializeDrill(), IPCD356_Netlist(), IPCD356_WriteNet(), IronDownAllUnfixedPaths(), LocateError(), LookupRatLines(), LookupRubberbandLines(), MirrorElementCoordinates(), move_all_thermals(), MoveElementLowLevel(), MoveElementToBuffer(), mptl_pin_callback(), nelma_write_layer(), nelma_write_nets(), nelma_write_objects(), Netlist(), netlist_add(), netnode_browse(), node_selection_changed_cb(), NotifyMode(), pin_sub_callback(), pinorvia_callback(), pinout_set_data(), pinsnap(), PlowsPolygon(), PrintAndSelectUnusedPinsAndPadsOfElement(), PrintBOM(), PrintElementConnections(), ProcNetlist(), pv_pv_callback(), r_delete_element(), read_points(), ReportAllNetLengths(), ReportDialog(), ReportFoundPins(), ReportNetLength(), ResetVisitPinsViasAndPads(), RotateElementLowLevel(), RouteOne(), SearchObjectByID(), SelectBlock(), SelectByFlag(), SelectedOperation(), SelectObject(), SetElementBoundingBox(), SetElementOctagon(), SetElementSquare(), SmashBufferElement(), SwapBuffer(), toporouter_draw_vertex(), UndoFlag(), vertex_net_thickness(), WriteElementData(), and XORDrawElement().

LayerType* silk [static]

Definition at line 47 of file teardrops.c.

Referenced by png_do_export().

Initial value:
 {
  {"Teardrops", NULL, teardrops,
   NULL, NULL}
}

Definition at line 282 of file teardrops.c.