1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com 5 * Copyright (C) 1992-2017 KiCad Developers, see AUTHORS.txt for contributors. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, you may find one here: 19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 * or you may search the http://www.gnu.org website for the version 2 license, 21 * or you may write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 23 */ 24 25 /** 26 * @file class_track.h 27 * @brief Definitions for tracks, vias and zones. 28 */ 29 30 #ifndef CLASS_TRACK_H 31 #define CLASS_TRACK_H 32 33 /* 34 #include <pcbnew.h> 35 #include <class_board_item.h> 36 #include <class_board_connected_item.h> 37 #include <PolyLine.h> 38 #include <trigo.h> 39 */ 40 41 class TRACK; 42 class VIA; 43 class D_PAD; 44 class MSG_PANEL_ITEM; 45 46 47 // Via types 48 // Note that this enum must be synchronized to GAL_LAYER_ID 49 enum VIATYPE_T 50 { 51 VIA_THROUGH = 3, /* Always a through hole via */ 52 VIA_BLIND_BURIED = 2, /* this via can be on internal layers */ 53 VIA_MICROVIA = 1, /* this via which connect from an external layer 54 * to the near neighbor internal layer */ 55 VIA_NOT_DEFINED = 0 /* not yet used */ 56 }; 57 58 #define UNDEFINED_DRILL_DIAMETER -1 //< Undefined via drill diameter. 59 60 #define MIN_VIA_DRAW_SIZE 4 /// Minimum size in pixel for full drawing 61 62 /** 63 * Function GetTrack 64 * is a helper function to locate a trace segment having an end point at \a aPosition 65 * on \a aLayerMask starting at \a aStartTrace and end at \a aEndTrace. 66 * <p> 67 * The segments of track that are flagged as deleted or busy are ignored. Layer 68 * visibility is also ignored. 69 * </p> 70 * @param aStartTrace A pointer to the TRACK object to begin searching. 71 * @param aEndTrace A pointer to the TRACK object to stop the search. A NULL value 72 * searches to the end of the list. 73 * @param aPosition A wxPoint object containing the position to test. 74 * @param aLayerMask A layer or layers to mask the hit test. Use -1 to ignore 75 * layer mask. 76 * @return A TRACK object pointer if found otherwise NULL. 77 */ 78 79 80 #endif // CLASS_TRACK_H 81