KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_component.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#ifndef PCB_COMPONENT_H
25#define PCB_COMPONENT_H
26
28#include <footprint.h>
29#include <memory>
30
31
36{
37public:
38 PCB_COMPONENT( const LIB_ID& aFPID,
39 const wxString& aReference,
40 const wxString& aValue,
41 const KIID_PATH& aPath,
42 const std::vector<KIID>& aKiids )
43 : COMPONENT( aFPID, aReference, aValue, aPath, aKiids )
44 {
45 }
46
47 virtual ~PCB_COMPONENT() { };
48
49 FOOTPRINT* GetFootprint( bool aRelease = false )
50 {
51 return ( aRelease ) ? m_footprint.release() : m_footprint.get();
52 }
53
54 void SetFootprint( FOOTPRINT* aFootprint );
55
56private:
58 std::unique_ptr<FOOTPRINT> m_footprint;
59};
60
61
62typedef boost::ptr_vector< PCB_COMPONENT > PCB_COMPONENTS;
63
64#endif // PCB_COMPONENT_H
COMPONENT(const LIB_ID &aFPID, const wxString &aReference, const wxString &aValue, const KIID_PATH &aPath, const std::vector< KIID > &aKiids)
A logical library item identifier and consists of various portions much like a URI.
Definition lib_id.h:49
PCB_COMPONENT(const LIB_ID &aFPID, const wxString &aReference, const wxString &aValue, const KIID_PATH &aPath, const std::vector< KIID > &aKiids)
virtual ~PCB_COMPONENT()
std::unique_ptr< FOOTPRINT > m_footprint
The FOOTPRINT loaded for #m_FPID.
void SetFootprint(FOOTPRINT *aFootprint)
FOOTPRINT * GetFootprint(bool aRelease=false)
boost::ptr_vector< PCB_COMPONENT > PCB_COMPONENTS