KiCad PCB EDA Suite
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) 2009 Jean-Pierre Charras,
5  * Copyright (C) 1992-2019 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
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  *
20  * or you may search the 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  */
29 #ifndef _SCH_NO_CONNECT_H_
30 #define _SCH_NO_CONNECT_H_
33 #include <sch_item.h>
37 class SCH_NO_CONNECT : public SCH_ITEM
38 {
39  wxPoint m_pos;
40  int m_size;
42 public:
43  SCH_NO_CONNECT( const wxPoint& pos = wxPoint( 0, 0 ) );
45  // Do not create a copy constructor. The one generated by the compiler is adequate.
49  wxString GetClass() const override
50  {
51  return wxT( "SCH_NO_CONNECT" );
52  }
54  int GetSize() const
55  {
56  return std::max( m_size, KiROUND( GetDefaultLineThickness() * 3 ) );
57  }
59  int GetPenSize() const override;
61  void SwapData( SCH_ITEM* aItem ) override;
63  void ViewGetLayers( int aLayers[], int& aCount ) const override;
65  void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset ) override;
67  void GetEndPoints( std::vector< DANGLING_END_ITEM >& aItemList ) override;
69  const EDA_RECT GetBoundingBox() const override;
71  // Geometric transforms (used in block operations):
73  void Move( const wxPoint& aMoveVector ) override
74  {
75  m_pos += aMoveVector;
76  }
78  void MirrorY( int aYaxis_position ) override;
79  void MirrorX( int aXaxis_position ) override;
80  void Rotate( wxPoint aPosition ) override;
82  bool IsConnectable() const override { return true; }
84  bool CanConnect( const SCH_ITEM* aItem ) const override
85  {
86  return ( aItem->Type() == SCH_LINE_T && aItem->GetLayer() == LAYER_WIRE ) ||
87  aItem->Type() == SCH_COMPONENT_T;
88  }
90  void GetConnectionPoints( std::vector< wxPoint >& aPoints ) const override;
92  wxString GetSelectMenuText( EDA_UNITS_T aUnits ) const override
93  {
94  return wxString( _( "No Connect" ) );
95  }
97  BITMAP_DEF GetMenuImage() const override;
99  void GetNetListItem( NETLIST_OBJECT_LIST& aNetListItems, SCH_SHEET_PATH* aSheetPath ) override;
101  wxPoint GetPosition() const override { return m_pos; }
102  void SetPosition( const wxPoint& aPosition ) override { m_pos = aPosition; }
104  bool HitTest( const wxPoint& aPosition, int aAccuracy = 0 ) const override;
105  bool HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy = 0 ) const override;
107  void Plot( PLOTTER* aPlotter ) override;
109  EDA_ITEM* Clone() const override;
111 #if defined(DEBUG)
112  void Show( int nestLevel, std::ostream& os ) const override { ShowDummy( os ); }
113 #endif
115 private:
116  bool doIsConnected( const wxPoint& aPosition ) const override;
117 };
120 #endif // _SCH_NO_CONNECT_H_
void MirrorY(int aYaxis_position) override
Function MirrorY mirrors item relative to the Y axis about aYaxis_position.
BITMAP_DEF GetMenuImage() const override
Function GetMenuImage returns a pointer to an image to be used in menus.
static int KiROUND(double v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: common.h:118
wxPoint GetPosition() const override
Function GetPosition.
wxPoint m_pos
Position of the no connect object.
int GetDefaultLineThickness()
Default line thickness used to draw/plot items having a default thickness line value (i....
void MirrorX(int aXaxis_position) override
Function MirrorX mirrors item relative to the X axis about aXaxis_position.
wxString GetClass() const override
Function GetClass returns the class name.
void GetConnectionPoints(std::vector< wxPoint > &aPoints) const override
Function GetConnectionPoints add all the connection points for this item to aPoints.
void GetNetListItem(NETLIST_OBJECT_LIST &aNetListItems, SCH_SHEET_PATH *aSheetPath) override
Function GetNetListItem creates a new NETLIST_OBJECT for the schematic object and adds it to aNetList...
void GetEndPoints(std::vector< DANGLING_END_ITEM > &aItemList) override
Function GetEndPoints adds the schematic item end points to aItemList if the item has end points.
SCH_NO_CONNECT(const wxPoint &pos=wxPoint(0, 0))
void SwapData(SCH_ITEM *aItem) override
Function SwapData swap the internal data structures aItem with the schematic item.
wxString GetSelectMenuText(EDA_UNITS_T aUnits) const override
Function GetSelectMenuText returns the text to display to be used in the selection clarification cont...
Class NETLIST_OBJECT_LIST is a container holding and owning NETLIST_OBJECTs, which are connected item...
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDC, const wxPoint &aOffset) override
Function Draw Draw a schematic item.
bool HitTest(const wxPoint &aPosition, int aAccuracy=0) const override
Function HitTest tests if aPosition is contained within or on the bounding box of an item.
void SetPosition(const wxPoint &aPosition) override
Function SetPosition set the schematic item position to aPosition.
bool IsConnectable() const override
Function IsConnectable returns true if the schematic item can connect to another schematic item.
int GetSize() const
bool CanConnect(const SCH_ITEM *aItem) const override
void Move(const wxPoint &aMoveVector) override
Function Move moves the item by aMoveVector to a new position.
void Plot(PLOTTER *aPlotter) override
Function Plot plots the schematic item to aPlotter.
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes.
SCH_LAYER_ID GetLayer() const
Function GetLayer returns the layer this item is on.
Definition: sch_item.h:193
Base plotter engine class.
Definition: plotter.h:97
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:157
void ViewGetLayers(int aLayers[], int &aCount) const override
Function ViewGetLayers returns the layers the item is drawn on (which may be more than its "home" lay...
void Rotate(wxPoint aPosition) override
Function Rotate rotates the item around aPosition 90 degrees in the clockwise direction.
int GetPenSize() const override
Function GetPenSize virtual pure.
EDA_ITEM * Clone() const override
Function Clone creates a duplicate of this item with linked list members set to NULL.
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
Definition: sch_item.h:114
Definition: common.h:157
bool doIsConnected(const wxPoint &aPosition) const override
Function doIsConnected provides the object specific test to see if it is connected to aPosition.
int m_size
Size of the no connect object.
KICAD_T Type() const
Function Type()
Definition: base_struct.h:204