KiCad PCB EDA Suite
class_libentry.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 (C) 2004-2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
5  * Copyright (C) 2008 Wayne Stambaugh <stambaughw@gmail.com>
6  * Copyright (C) 2004-2017 KiCad Developers, see change_log.txt for contributors.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
30 #ifndef CLASS_LIBENTRY_H
31 #define CLASS_LIBENTRY_H
32 
33 #include <general.h>
34 #include <lib_id.h>
35 #include <lib_draw_item.h>
36 #include <lib_field.h>
37 #include <vector>
38 #include <multivector.h>
39 
40 class EDA_RECT;
41 class LINE_READER;
42 class OUTPUTFORMATTER;
43 class PART_LIB;
44 class LIB_ALIAS;
45 class LIB_PART;
46 class LIB_FIELD;
47 
48 
49 typedef std::vector<LIB_ALIAS*> LIB_ALIASES;
50 typedef std::shared_ptr<LIB_PART> PART_SPTR;
51 typedef std::weak_ptr<LIB_PART> PART_REF;
54 
55 
56 /* values for member .m_options */
58 {
59  ENTRY_NORMAL, // Libentry is a standard part (real or alias)
60  ENTRY_POWER // Libentry is a power symbol
61 };
62 
63 
69 extern const wxChar traceSchLibMem[];
70 
71 
81 class LIB_ALIAS : public EDA_ITEM
82 {
91 
92  friend class LIB_PART;
93 
94 protected:
95  wxString name;
96  wxString description;
97  wxString keyWords;
98  wxString docFileName;
99 
100 public:
101  LIB_ALIAS( const wxString& aName, LIB_PART* aRootComponent );
102  LIB_ALIAS( const LIB_ALIAS& aAlias, LIB_PART* aRootComponent = NULL );
103 
104  virtual ~LIB_ALIAS();
105 
106  virtual wxString GetClass() const override
107  {
108  return wxT( "LIB_ALIAS" );
109  }
110 
118  LIB_PART* GetPart() const
119  {
120  return shared;
121  }
122 
123  const wxString GetLibraryName();
124 
125  bool IsRoot() const;
126 
127  PART_LIB* GetLib();
128 
129  const wxString& GetName() const { return name; }
130 
131  void SetName( const wxString& aName ) { name = aName; }
132 
133  void SetDescription( const wxString& aDescription )
134  {
135  description = aDescription;
136  }
137 
138  wxString GetDescription() const { return description; }
139 
140  void SetKeyWords( const wxString& aKeyWords )
141  {
142  keyWords = aKeyWords;
143  }
144 
145  wxString GetKeyWords() const { return keyWords; }
146 
147  void SetDocFileName( const wxString& aDocFileName )
148  {
149  docFileName = aDocFileName;
150  }
151 
152  wxString GetDocFileName() const { return docFileName; }
153 
161  bool SaveDoc( OUTPUTFORMATTER& aFormatter );
162 
166  bool operator==( const wxChar* aName ) const;
167  bool operator!=( const wxChar* aName ) const
168  {
169  return !( *this == aName );
170  }
171 
172  bool operator==( const LIB_ALIAS* aAlias ) const { return this == aAlias; }
173 
174 #if defined(DEBUG)
175  void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
176 #endif
177 };
178 
179 extern bool operator<( const LIB_ALIAS& aItem1, const LIB_ALIAS& aItem2 );
180 
181 extern int LibraryEntryCompare( const LIB_ALIAS* aItem1, const LIB_ALIAS* aItem2 );
182 
183 
185 {
193  std::vector<bool> dangling;
195 
197  {
198  PART_DRAW_OPTIONS def;
200  def.color = COLOR4D::UNSPECIFIED;
202  def.show_pin_text = true;
203  def.draw_visible_fields = true;
204  def.draw_hidden_fields = true;
205  def.only_selected = false;
206  def.show_elec_type = false;
207  return def;
208  }
209 
210  bool PinIsDangling( size_t aPin ) const
211  {
212  if( aPin < dangling.size() )
213  return dangling[aPin];
214  else
215  return true;
216  }
217 };
218 
219 
227 class LIB_PART : public EDA_ITEM
228 {
229  friend class PART_LIB;
230  friend class LIB_ALIAS;
232 
234  wxString m_name;
237  bool m_unitsLocked;
239  bool m_showPinNames;
246  wxArrayString m_FootprintList;
251 
252  static int m_subpartIdSeparator;
253  static int m_subpartFirstId;
256 private:
259  void deleteAllFields();
260 
261  // LIB_PART() { } // not legal
262 
263 public:
264 
265  LIB_PART( const wxString& aName, PART_LIB* aLibrary = NULL );
266  LIB_PART( LIB_PART& aPart, PART_LIB* aLibrary = NULL );
267 
268  virtual ~LIB_PART();
269 
271  {
272  // clone a shared pointer
273  return m_me;
274  }
275 
276  virtual wxString GetClass() const override
277  {
278  return wxT( "LIB_PART" );
279  }
280 
281  virtual void SetName( const wxString& aName );
282 
283  const wxString& GetName() const { return m_name; }
284 
285  const LIB_ID& GetLibId() const { return m_libId; }
286  void SetLibId( const LIB_ID& aLibId ) { m_libId = aLibId; }
287 
288  const wxString GetLibraryName();
289 
290  PART_LIB* GetLib() { return m_library; }
291 
292  void SetLib( PART_LIB* aLibrary ) { m_library = aLibrary; }
293 
294  wxArrayString GetAliasNames( bool aIncludeRoot = true ) const;
295 
296  size_t GetAliasCount() const { return m_aliases.size(); }
297 
298  LIB_ALIAS* GetAlias( size_t aIndex );
299 
300  LIB_ALIAS* GetAlias( const wxString& aName );
301 
312  void AddAlias( const wxString& aName );
313 
322  bool HasAlias( const wxString& aName ) const;
323 
324  void SetAliases( const wxArrayString& aAliasList );
325 
326  void RemoveAlias( const wxString& aName );
327  LIB_ALIAS* RemoveAlias( LIB_ALIAS* aAlias );
328 
329  void RemoveAllAliases();
330 
331  wxArrayString& GetFootPrints() { return m_FootprintList; }
332 
342  const EDA_RECT GetUnitBoundingBox( int aUnit, int aConvert ) const;
343 
353  const EDA_RECT GetBodyBoundingBox( int aUnit, int aConvert ) const;
354 
355  const EDA_RECT GetBoundingBox() const override
356  {
357  return GetUnitBoundingBox( 0, 0 );
358  }
359 
369  bool SaveDateAndTime( OUTPUTFORMATTER& aFormatter );
370 
371  bool LoadDateAndTime( char* aLine );
372 
381  bool Save( OUTPUTFORMATTER& aFormatter );
382 
390  bool Load( LINE_READER& aReader, wxString& aErrorMsg );
391  bool LoadField( LINE_READER& aReader, wxString& aErrorMsg );
392  bool LoadDrawEntries( LINE_READER& aReader, wxString& aErrorMsg );
393  bool LoadAliases( char* aLine, wxString& aErrorMsg );
394  bool LoadFootprints( LINE_READER& aReader, wxString& aErrorMsg );
395 
396  bool IsPower() const { return m_options == ENTRY_POWER; }
397  bool IsNormal() const { return m_options == ENTRY_NORMAL; }
398 
399  void SetPower() { m_options = ENTRY_POWER; }
400  void SetNormal() { m_options = ENTRY_NORMAL; }
401 
402  void LockUnits( bool aLockUnits ) { m_unitsLocked = aLockUnits; }
403  bool UnitsLocked() const { return m_unitsLocked; }
404 
413  void SetFields( const std::vector <LIB_FIELD>& aFieldsList );
414 
423  void GetFields( LIB_FIELDS& aList );
424 
430  LIB_FIELD* FindField( const wxString& aFieldName );
431 
438  LIB_FIELD* GetField( int aId );
439 
442 
445 
448 
459  void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDc, const wxPoint& aOffset,
460  int aMulti, int aConvert,
461  const PART_DRAW_OPTIONS& aOpts );
462 
474  void Plot( PLOTTER* aPlotter, int aUnit, int aConvert, const wxPoint& aOffset,
475  const TRANSFORM& aTransform );
476 
487  void PlotLibFields( PLOTTER* aPlotter, int aUnit, int aConvert,
488  const wxPoint& aOffset, const TRANSFORM& aTransform );
489 
495  void AddDrawItem( LIB_ITEM* aItem );
496 
504  void RemoveDrawItem( LIB_ITEM* aItem, EDA_DRAW_PANEL* aPanel = NULL, wxDC* aDc = NULL );
505 
515  LIB_ITEM* GetNextDrawItem( LIB_ITEM* aItem = NULL, KICAD_T aType = TYPE_NOT_INIT );
516 
526  LIB_PIN* GetNextPin( LIB_PIN* aItem = NULL )
527  {
528  return (LIB_PIN*) GetNextDrawItem( (LIB_ITEM*) aItem, LIB_PIN_T );
529  }
530 
531 
545  void GetPins( LIB_PINS& aList, int aUnit = 0, int aConvert = 0 );
546 
557  LIB_PIN* GetPin( const wxString& aNumber, int aUnit = 0, int aConvert = 0 );
558 
572  bool PinsConflictWith( LIB_PART& aOtherPart, bool aTestNums, bool aTestNames,
573  bool aTestType, bool aTestOrientation, bool aTestLength );
574 
580  void SetOffset( const wxPoint& aOffset );
581 
586 
592  bool HasConversion() const;
593 
597  void ClearStatus();
598 
613  int SelectItems( EDA_RECT& aRect, int aUnit, int aConvert, bool aEditPinByPin );
614 
618  void ClearSelectedItems();
619 
627  void DeleteSelectedItems();
628 
632  void MoveSelectedItems( const wxPoint& aOffset );
633 
641  void CopySelectedItems( const wxPoint& aOffset );
642 
648  void MirrorSelectedItemsH( const wxPoint& aCenter );
649 
655  void MirrorSelectedItemsV( const wxPoint& aCenter );
656 
662  void RotateSelectedItems( const wxPoint& aCenter );
663 
673  LIB_ITEM* LocateDrawItem( int aUnit, int aConvert, KICAD_T aType, const wxPoint& aPoint );
674 
685  LIB_ITEM* LocateDrawItem( int aUnit, int aConvert, KICAD_T aType,
686  const wxPoint& aPoint, const TRANSFORM& aTransform );
687 
694  {
695  return m_drawings;
696  }
697 
708  void SetUnitCount( int count );
709 
710  int GetUnitCount() const { return m_unitCount; }
711 
717  bool IsMulti() const { return m_unitCount > 1; }
718 
728  static wxString SubReference( int aUnit, bool aAddSeparator = true );
729 
730  // Accessors to sub ref parameters
732 
736  static int* SubpartIdSeparatorPtr() { return &m_subpartIdSeparator; }
737 
738  static int GetSubpartFirstId() { return m_subpartFirstId; }
739 
742  static int* SubpartFirstIdPtr() { return &m_subpartFirstId; }
743 
753  static void SetSubpartIdNotation( int aSep, int aFirstId );
754 
766  void SetConversion( bool aSetConvert );
767 
775  void SetPinNameOffset( int aOffset ) { m_pinNameOffset = aOffset; }
776 
778 
784  void SetShowPinNames( bool aShow ) { m_showPinNames = aShow; }
785 
786  bool ShowPinNames() { return m_showPinNames; }
787 
793  void SetShowPinNumbers( bool aShow ) { m_showPinNumbers = aShow; }
794 
795  bool ShowPinNumbers() { return m_showPinNumbers; }
796 
797  bool operator==( const LIB_PART* aPart ) const { return this == aPart; }
798 
799 #if defined(DEBUG)
800  void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
801 #endif
802 };
803 
804 #endif // CLASS_LIBENTRY_H
LIB_ALIASES m_aliases
List of alias object pointers associated with the part.
PART_LIB * GetLib()
virtual ~LIB_ALIAS()
LIB_FIELD & GetFootprintField()
Return reference to the footprint field.
void SetLib(PART_LIB *aLibrary)
bool UnitsLocked() const
LIB_FIELD * GetField(int aId)
Return pointer to the requested field.
bool PinsConflictWith(LIB_PART &aOtherPart, bool aTestNums, bool aTestNames, bool aTestType, bool aTestOrientation, bool aTestLength)
Function PinsConflictWith returns true if this part's pins do not match another part's pins...
static int m_subpartIdSeparator
the separator char between the subpart id and the reference like U1A ( m_subpartIdSeparator = 0 ) or ...
Class LINE_READER is an abstract class from which implementation specific LINE_READERs may be derived...
Definition: richio.h:81
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDc, const wxPoint &aOffset, int aMulti, int aConvert, const PART_DRAW_OPTIONS &aOpts)
Draw part.
const EDA_RECT GetUnitBoundingBox(int aUnit, int aConvert) const
Function GetBoundingBox.
Part library alias object definition.
bool PinIsDangling(size_t aPin) const
bool IsMulti() const
Function IsMulti.
void SetConversion(bool aSetConvert)
Set or clear the alternate body style (DeMorgan) for the part.
static int * SubpartFirstIdPtr()
return a reference to m_subpartFirstId, only for read/save setting functions
void SetPower()
virtual ~LIB_PART()
bool LoadFootprints(LINE_READER &aReader, wxString &aErrorMsg)
virtual wxString GetClass() const override
Function GetClass returns the class name.
int GetPinNameOffset()
bool Load(LINE_READER &aReader, wxString &aErrorMsg)
Load part definition from aReader.
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
bool m_showPinNumbers
Determines if part pin numbers are visible.
wxString description
documentation for info
bool IsPower() const
LIB_ALIAS * GetAlias(size_t aIndex)
MULTIVECTOR< LIB_ITEM, LIB_ARC_T, LIB_FIELD_T > LIB_ITEMS_CONTAINER
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
int m_unitCount
Number of units (parts) per package.
const wxString GetLibraryName()
LIB_ITEM * GetNextDrawItem(LIB_ITEM *aItem=NULL, KICAD_T aType=TYPE_NOT_INIT)
Return the next draw object pointer.
PART_LIB * m_library
Library the part belongs to if any.
bool operator<(const LIB_ALIAS &aItem1, const LIB_ALIAS &aItem2)
Class LIB_FIELD is used in symbol libraries.
Definition: lib_field.h:60
std::weak_ptr< LIB_PART > PART_REF
weak pointer to LIB_PART
static int m_subpartFirstId
the ascii char value to calculate the subpart symbol id from the part number: only 'A'...
const EDA_RECT GetBodyBoundingBox(int aUnit, int aConvert) const
Function GetBodyBoundingBox.
bool HasAlias(const wxString &aName) const
Test if alias aName is in part alias list.
LIB_ITEMS_CONTAINER m_drawings
Drawing items of this part.
bool LoadDrawEntries(LINE_READER &aReader, wxString &aErrorMsg)
LIB_FIELD & GetValueField()
Return reference to the value field.
const LIB_ID & GetLibId() const
Class OUTPUTFORMATTER is an important interface (abstract class) used to output 8 bit text in a conve...
Definition: richio.h:327
LIB_ALIAS(const wxString &aName, LIB_PART *aRootComponent)
std::vector< LIB_ALIAS * > LIB_ALIASES
void ClearSelectedItems()
Clears all the draw items marked by a block select.
Class LIB_ID.
Definition: lib_id.h:56
void AddAlias(const wxString &aName)
Function AddAlias.
size_t GetAliasCount() const
LIBRENTRYOPTIONS m_options
Special part features such as POWER or NORMAL.)
PART_LIB * GetLib()
void SetDocFileName(const wxString &aDocFileName)
bool draw_hidden_fields
Whether to draw "hidden" fields.
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:90
bool m_unitsLocked
True if part has multiple units and changing one unit does not automatically change another unit...
Class LIB_ITEM is the base class for drawable items used by schematic library components.
Definition: lib_draw_item.h:67
LIB_ITEMS_CONTAINER::ITEM_PTR_VECTOR LIB_ITEMS
void MirrorSelectedItemsH(const wxPoint &aCenter)
Horizontally (X axis) mirror selected draw items about a point.
Class SCH_LEGACY_PLUGIN_CACHE is a cache assistant for the part library portion of the SCH_PLUGIN API...
wxString name
void PlotLibFields(PLOTTER *aPlotter, int aUnit, int aConvert, const wxPoint &aOffset, const TRANSFORM &aTransform)
Plot Lib Fields only of the part to plotter.
void SetOffset(const wxPoint &aOffset)
Move the part aOffset.
void MirrorSelectedItemsV(const wxPoint &aCenter)
Vertically (Y axis) mirror selected draw items about a point.
int LibraryEntryCompare(const LIB_ALIAS *aItem1, const LIB_ALIAS *aItem2)
std::vector< bool > dangling
which pins should display as dangling, or empty for All
bool LoadDateAndTime(char *aLine)
void AddDrawItem(LIB_ITEM *aItem)
Add a new draw aItem to the draw object list.
int m_pinNameOffset
The offset in mils to draw the pin name.
void GetPins(LIB_PINS &aList, int aUnit=0, int aConvert=0)
Return a list of pin object pointers from the draw item list.
bool ShowPinNames()
void deleteAllFields()
bool IsRoot() const
static int GetSubpartIdSeparator()
void SetName(const wxString &aName)
bool ShowPinNumbers()
bool LoadField(LINE_READER &aReader, wxString &aErrorMsg)
Class for tranforming drawing coordinates for a wxDC device context.
Definition: transform.h:45
LIB_FIELD & GetReferenceField()
Return reference to the reference designator field.
virtual wxString GetClass() const override
Function GetClass returns the class name.
void Plot(PLOTTER *aPlotter, int aUnit, int aConvert, const wxPoint &aOffset, const TRANSFORM &aTransform)
Plot lib part to plotter.
bool operator!=(const wxChar *aName) const
LIB_FIELD * FindField(const wxString &aFieldName)
Function FindField finds a field within this part matching aFieldName and returns it or NULL if not f...
wxString m_name
bool Save(OUTPUTFORMATTER &aFormatter)
Function Save writes the data structures out to aFormatter in the part library "*.lib" format.
static int GetSubpartFirstId()
void SetUnitCount(int count)
Set the units per part count.
wxString docFileName
Associate doc file name.
GR_DRAWMODE
Drawmode. Compositing mode plus a flag or two.
Definition: gr_basic.h:41
void CopySelectedItems(const wxPoint &aOffset)
Make a copy of the selected draw items marked by a block select.
const wxString & GetName() const
LIB_ITEMS_CONTAINER & GetDrawItems()
Return a reference to the draw item list.
LIB_PART * shared
Actual LIB_PART referenced by [multiple] aliases.
void RotateSelectedItems(const wxPoint &aCenter)
Rotate CCW selected draw items about a point.
std::shared_ptr< LIB_PART > PART_SPTR
shared pointer to LIB_PART
wxString GetDescription() const
PART_SPTR SharedPtr()
bool operator==(const wxChar *aName) const
KEEPCASE sensitive comparison of the part entry name.
Class LIB_PART defines a library part object.
static PART_DRAW_OPTIONS Default()
void RemoveDuplicateDrawItems()
Remove duplicate draw items from list.
wxArrayString m_FootprintList
List of suitable footprint names for the part (wild card names accepted).
LIB_PART(const wxString &aName, PART_LIB *aLibrary=NULL)
void SetDescription(const wxString &aDescription)
LIB_ID m_libId
bool operator==(const LIB_PART *aPart) const
const wxString GetLibraryName()
LIB_PART * GetPart() const
Function GetPart gets the shared LIB_PART.
int GetUnitCount() const
LIB_PIN * GetNextPin(LIB_PIN *aItem=NULL)
Return the next pin object from the draw list.
Base plotter engine class.
Definition: plot_common.h:86
wxString GetDocFileName() const
#define GR_DEFAULT_DRAWMODE
Definition: general.h:70
void SetAliases(const wxArrayString &aAliasList)
std::vector< LIB_PIN * > LIB_PINS
Helper for defining a list of pin object pointers.
Definition: lib_draw_item.h:60
bool LoadAliases(char *aLine, wxString &aErrorMsg)
bool SaveDoc(OUTPUTFORMATTER &aFormatter)
Function SaveDocs write the entry document information to aFormatter in "*.dcm" format.
void ClearStatus()
Clears the status flag all draw objects in this part.
TRANSFORM DefaultTransform
Definition: eeschema.cpp:58
GR_DRAWMODE draw_mode
Device context drawing mode, see wxDC.
int SelectItems(EDA_RECT &aRect, int aUnit, int aConvert, bool aEditPinByPin)
Checks all draw objects of part to see if they are with block.
void RemoveAlias(const wxString &aName)
COLOR4D color
Color to draw part in.
void RemoveAllAliases()
const wxChar traceSchLibMem[]
Flag to enable schematic library memory deletion debug output.
const wxString & GetName() const
void SetShowPinNumbers(bool aShow)
Set or clear the pin number visibility flag.
void SetKeyWords(const wxString &aKeyWords)
static void SetSubpartIdNotation(int aSep, int aFirstId)
Set the separator char between the subpart id and the reference 0 (no separator) or '...
std::vector< LIB_FIELD > LIB_FIELDS
Definition: lib_field.h:261
wxArrayString GetAliasNames(bool aIncludeRoot=true) const
Class EDA_RECT handles the component boundary box.
static wxString SubReference(int aUnit, bool aAddSeparator=true)
Function SubReference.
bool show_pin_text
Whether to show pin texts.
bool operator==(const LIB_ALIAS *aAlias) const
LIBRENTRYOPTIONS
static int * SubpartIdSeparatorPtr()
return a reference to m_subpartIdSeparator, only for read/save setting functions
void RemoveDrawItem(LIB_ITEM *aItem, EDA_DRAW_PANEL *aPanel=NULL, wxDC *aDc=NULL)
Remove draw aItem from list.
bool only_selected
Draws only the body items that are selected, for block moves.
wxArrayString & GetFootPrints()
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:165
boost::ptr_vector< LIB_ITEM > ITEM_PTR_VECTOR
Helper for defining a list of library draw object pointers.
Definition: multivector.h:51
bool show_elec_type
Whether to show the pin electrical type.
long m_dateModified
Date the part was last modified.
void MoveSelectedItems(const wxPoint &aOffset)
Move the selected draw items marked by a block select.
LIB_ITEM * LocateDrawItem(int aUnit, int aConvert, KICAD_T aType, const wxPoint &aPoint)
Locate a draw object.
virtual void SetName(const wxString &aName)
bool draw_visible_fields
Whether to draw "visible" fields.
void DeleteSelectedItems()
Deletes the select draw items marked by a block select.
void SetShowPinNames(bool aShow)
Set or clear the pin name visibility flag.
void SetPinNameOffset(int aOffset)
Set the offset in mils of the pin name text from the pin symbol.
bool m_showPinNames
Determines if part pin names are visible.
void SetFields(const std::vector< LIB_FIELD > &aFieldsList)
Function SetFields overwrites all the existing in this part with fields supplied in aFieldsList...
Class PART_LIB is used to load, save, search, and otherwise manipulate part library files...
wxString GetKeyWords() const
void SetLibId(const LIB_ID &aLibId)
TRANSFORM transform
Coordinate adjustment settings.
wxString keyWords
keyword list (used for search for parts by keyword)
bool IsNormal() const
void GetFields(LIB_FIELDS &aList)
Function GetFields returns a list of fields withing this part.
LIB_PIN * GetPin(const wxString &aNumber, int aUnit=0, int aConvert=0)
Return pin object with the requested pin aNumber.
void LockUnits(bool aLockUnits)
bool SaveDateAndTime(OUTPUTFORMATTER &aFormatter)
Function SaveDateAndTime write the date and time of part to aFile in the format: "Ti yy/mm/jj hh:mm:s...
void SetNormal()
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
PART_SPTR m_me
http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/sp_techniques.html#weak_without_shared ...