28#ifndef EASYPC_CLASSES_LIBRARY_H
29#define EASYPC_CLASSES_LIBRARY_H
124 if(
T* typed =
dynamic_cast<T*
>( obj ) )
125 out.push_back( typed );
196std::vector<wxString>
ExpandPinNumberList(
const wxString& aList, wxString* aDisplay =
nullptr );
200bool IsPadList(
const wxString& aPcbSymbolPin );
One archive load stream; it owns every object it creates.
A loader coroutine. Awaiting one queues it on its archive's frame stack instead of nesting the call.
Shapes, vertices and the free-standing drawn items.
std::vector< wxString > ExpandPinNumberList(const wxString &aList, wxString *aDisplay)
Expand a gate pin's component pin list by Easy-PC's pin list syntax: items separated by ,...
constexpr int NEWEST_ITEM_FORMAT
The newest item format a file can carry (30001)
bool IsPadList(const wxString &aPcbSymbolPin)
Whether a gate pin's pad reference names several pads ("-1", the unmapped marker, does not)
std::vector< T * > TypedItems(const OBJECT *aList)
The items of ListItems that are a T, in order.
const std::vector< OBJECT * > & ListItems(const OBJECT *aList)
The items of a design list or array, empty for anything else.
Root of every deserialized object.
The item's own format, returned by the self-versioned classes' ItemFormat.
SOURCE_SCM_COMPONENT * Schematic
SOURCE_PCB_COMPONENT * Board
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
An array: owner tag, then a counted list of objects.
std::vector< OBJECT * > Items
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
The base of nearly every class.
One gate's terminals to footprint pads.
OBJECT * Pins
gate pin array, format above 8999
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
std::vector< int32_t > PcbSymbolPins
older formats: pad number per terminal, -1 unmapped
wxString NetName
default net, or a net class in parentheses
wxString PcbSymbolPin
pad number, "-1", or a pad list
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
A schematic symbol and its pin names.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
std::vector< wxString > PinNames
terminal t is the symbol pad numbered t + 1
The package half of a component.
OBJECT * GateMaps
one per schematic gate in order
int ItemFormat(const ARCHIVE &aAr) const override
The version this object gates on; the base is the archive's current read format.
wxString Symbol
footprint name
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
Placed pin names and numbers.
OBJECT * Definition
the pin name or number instantiated
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
Pin name and pin number definitions.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
uint32_t SuppressionFlags
int ItemFormat(const ARCHIVE &aAr) const override
The version this object gates on; the base is the archive's current read format.
wxString DefaultReference
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
Footprints and schematic symbols alike.
LOAD_TASK Load(ARCHIVE &aAr) override
Read this object's fields.
std::unique_ptr< SOURCE_DESIGN_LIST > DerivedValuePositions
OBJECT * Shapes
free copper list
int ItemFormat(const ARCHIVE &aAr) const override
The version this object gates on; the base is the archive's current read format.
OBJECT * Texts
free text list
std::unique_ptr< OBJECT > NameOrigin
The symbol name origin of formats below 10003, which becomes the only value position.
std::unique_ptr< SOURCE_VALUE_POSITION > DerivedNamePosition
OBJECT * Pads
free pad list