22#ifndef _PCB_IO_ODBPP_H_
23#define _PCB_IO_ODBPP_H_
66 std::pair<PCB_LAYER_ID, PCB_LAYER_ID>
Pair()
const
120 const std::map<std::string, UTF8>* aProperties =
nullptr )
override;
139 bool CanReadBoard(
const wxString& aFileName )
const override {
return false; }
145 bool CanReadLibrary(
const wxString& aFileName )
const override {
return false; }
173 inline std::map<std::tuple<ODB_AUX_LAYER_TYPE, PCB_LAYER_ID, PCB_LAYER_ID>,
174 std::vector<BOARD_ITEM*>>&
180 inline std::map<std::pair<PCB_LAYER_ID, PCB_LAYER_ID>, std::vector<BOARD_ITEM*>>&
205 bool ExportODB(
const wxString& aFileName );
219 template <
typename T,
typename... Args>
222 std::shared_ptr<ODB_ENTITY_BASE> entity =
223 std::make_shared<T>( std::forward<Args>( args )... );
233 std::vector<std::pair<PCB_LAYER_ID, wxString>>
236 std::map<ODB_DRILL_SPAN, std::vector<BOARD_ITEM*>>
240 std::map<std::tuple<ODB_AUX_LAYER_TYPE, PCB_LAYER_ID, PCB_LAYER_ID>, std::vector<BOARD_ITEM*>>
243 std::map<std::pair<PCB_LAYER_ID, PCB_LAYER_ID>, std::vector<BOARD_ITEM*>>
246 std::map<PCB_LAYER_ID, std::map<int, std::vector<BOARD_ITEM*>>>
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Information pertinent to a Pcbnew printed circuit board.
A mix-in class (via multiple inheritance) that handles texts such as labels, parts,...
Handle the data for a net.
std::map< std::pair< PCB_LAYER_ID, ZONE * >, EDA_DATA::SUB_NET_PLANE * > & GetPlaneSubnetMap()
std::map< PCB_TRACK *, EDA_DATA::SUB_NET * > & GetViaTraceSubnetMap()
std::shared_ptr< ODB_TREE_WRITER > m_writer
bool CanReadBoard(const wxString &aFileName) const override
Checks if this PCB_IO can read the specified board file.
std::vector< FOOTPRINT * > GetImportedCachedLibraryFootprints() override
Return a container with the cached library footprints generated in the last call to Load.
void ClearLoadedFootprints()
void Make(Args &&... args)
std::vector< std::shared_ptr< FOOTPRINT > > & GetLoadedFootprintList()
std::map< std::pair< PCB_LAYER_ID, ZONE * >, EDA_DATA::SUB_NET_PLANE * > m_plane_subnets
bool CanReadFootprint(const wxString &aFileName) const override
Checks if this PCB_IO can read a footprint from specified file or directory.
std::map< std::tuple< ODB_AUX_LAYER_TYPE, PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > m_auxilliary_layers
std::map< ODB_DRILL_SPAN, wxString > & GetDrillSpanNameMap()
std::vector< std::pair< PCB_LAYER_ID, wxString > > & GetLayerNameList()
bool ExportODB(const wxString &aFileName)
static double m_symbolScale
std::vector< std::shared_ptr< FOOTPRINT > > m_loaded_footprints
std::map< ODB_DRILL_SPAN, std::vector< BOARD_ITEM * > > m_drill_layers
std::map< std::pair< PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > & GetSlotHolesMap()
std::map< const PAD *, EDA_DATA::SUB_NET_TOEPRINT * > & GetPadSubnetMap()
std::map< PCB_LAYER_ID, std::map< int, std::vector< BOARD_ITEM * > > > & GetLayerElementsMap()
std::map< ODB_DRILL_SPAN, wxString > m_drill_span_names
std::map< ODB_DRILL_SPAN, std::vector< BOARD_ITEM * > > & GetDrillLayerItemsMap()
std::vector< std::pair< PCB_LAYER_ID, wxString > > m_layer_name_list
const IO_BASE::IO_FILE_DESC GetBoardFileDesc() const override
Returns board file description for the PCB_IO.
std::vector< std::shared_ptr< ODB_ENTITY_BASE > > m_entities
void SaveBoard(const wxString &aFileName, BOARD *aBoard, const std::map< std::string, UTF8 > *aProperties=nullptr) override
Write aBoard to a storage file in a format that this PCB_IO implementation knows about or it can be u...
std::map< const PAD *, EDA_DATA::SUB_NET_TOEPRINT * > m_topeprint_subnets
std::map< std::tuple< ODB_AUX_LAYER_TYPE, PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > & GetAuxilliaryLayerItemsMap()
std::map< std::pair< PCB_LAYER_ID, PCB_LAYER_ID >, std::vector< BOARD_ITEM * > > m_slot_holes
const IO_BASE::IO_FILE_DESC GetLibraryDesc() const override
Get the descriptor for the library container that this IO plugin operates on.
static std::string m_unitsStr
std::map< PCB_LAYER_ID, std::map< int, std::vector< BOARD_ITEM * > > > m_layer_elements
bool GenerateFiles(ODB_TREE_WRITER &writer)
std::map< PCB_TRACK *, EDA_DATA::SUB_NET * > m_via_trace_subnets
bool CreateDirectories(ODB_TREE_WRITER &writer)
bool CanReadLibrary(const wxString &aFileName) const override
Checks if this IO object can read the specified library file/directory.
long long GetLibraryTimestamp(const wxString &aLibraryPath) const override
Generate a timestamp representing all the files in the library (including the library directory).
PCB_IO(const wxString &aName)
A progress reporter interface for use in multi-threaded environments.
Represent a set of closed polygons.
PCB_LAYER_ID
A quick note on layer IDs:
Container that describes file type info.
std::pair< PCB_LAYER_ID, PCB_LAYER_ID > Pair() const
PCB_LAYER_ID BottomLayer() const
ODB_DRILL_SPAN(PCB_LAYER_ID aStartLayer, PCB_LAYER_ID aEndLayer, bool aIsBackdrill, bool aIsNonPlated)
PCB_LAYER_ID m_StartLayer
PCB_LAYER_ID TopLayer() const
bool operator<(const ODB_DRILL_SPAN &aOther) const