KiCad PCB EDA Suite
sch_junction.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) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
5  * Copyright (C) 1992-2017 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
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org 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  */
24 
29 #ifndef _SCH_JUNCTION_H_
30 #define _SCH_JUNCTION_H_
31 
32 
33 #include <sch_item_struct.h>
35 
36 class SCH_JUNCTION : public SCH_ITEM
37 {
38  wxPoint m_pos; // Position of the junction.
39  static int m_symbolSize; // diameter of the junction graphic symbol
40 
41 public:
42  SCH_JUNCTION( const wxPoint& pos = wxPoint( 0, 0 ) );
43 
44  // Do not create a copy constructor. The one generated by the compiler is adequate.
45 
47 
48  wxString GetClass() const override
49  {
50  return wxT( "SCH_JUNCTION" );
51  }
52 
53  static int GetSymbolSize() { return m_symbolSize; }
54  static void SetSymbolSize( int aSize ) { m_symbolSize = aSize; }
55 
56  void SwapData( SCH_ITEM* aItem ) override;
57 
58  const EDA_RECT GetBoundingBox() const override;
59 
60  void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset,
61  GR_DRAWMODE aDrawMode, COLOR4D aColor = COLOR4D::UNSPECIFIED ) override;
62 
63  void Move( const wxPoint& aMoveVector ) override
64  {
65  m_pos += aMoveVector;
66  }
67 
68  void MirrorY( int aYaxis_position ) override;
69 
70  void MirrorX( int aXaxis_position ) override;
71 
72  void Rotate( wxPoint aPosition ) override;
73 
74  void GetEndPoints( std::vector <DANGLING_END_ITEM>& aItemList ) override;
75 
76  bool IsSelectStateChanged( const wxRect& aRect ) override;
77 
78  bool IsConnectable() const override { return true; }
79 
80  void GetConnectionPoints( std::vector< wxPoint >& aPoints ) const override;
81 
82  wxString GetSelectMenuText() const override { return wxString( _( "Junction" ) ); }
83 
84  BITMAP_DEF GetMenuImage() const override;
85 
86  void GetNetListItem( NETLIST_OBJECT_LIST& aNetListItems, SCH_SHEET_PATH* aSheetPath ) override;
87 
88  wxPoint GetPosition() const override { return m_pos; }
89 
90  void SetPosition( const wxPoint& aPosition ) override { m_pos = aPosition; }
91 
92  bool HitTest( const wxPoint& aPosition, int aAccuracy ) const override;
93 
94  bool HitTest( const EDA_RECT& aRect, bool aContained = false,
95  int aAccuracy = 0 ) const override;
96  void Plot( PLOTTER* aPlotter ) override;
97 
98  EDA_ITEM* Clone() const override;
99 
100 #if defined(DEBUG)
101  void Show( int nestLevel, std::ostream& os ) const override;
102 #endif
103 
104 private:
105  bool doIsConnected( const wxPoint& aPosition ) const override;
106 };
107 
108 
109 #endif // _SCH_JUNCTION_H_
void Move(const wxPoint &aMoveVector) override
Function Move moves the item by aMoveVector to a new position.
Definition: sch_junction.h:63
wxString GetClass() const override
Function GetClass returns the class name.
Definition: sch_junction.h:48
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDC, const wxPoint &aOffset, GR_DRAWMODE aDrawMode, COLOR4D aColor=COLOR4D::UNSPECIFIED) override
Function Draw Draw a schematic item.
bool IsSelectStateChanged(const wxRect &aRect) override
Function IsSelectStateChanged checks if the selection state of an item inside aRect has changed...
void MirrorY(int aYaxis_position) override
Function MirrorY mirrors item relative to the Y axis about aYaxis_position.
PNG memory record (file in memory).
Definition: bitmap_types.h:38
void MirrorX(int aXaxis_position) override
Function MirrorX mirrors item relative to the X axis about aXaxis_position.
Base schematic object class definition.
void GetConnectionPoints(std::vector< wxPoint > &aPoints) const override
Function GetConnectionPoints add all the connection points for this item to aPoints.
EDA_ITEM * Clone() const override
Function Clone creates a duplicate of this item with linked list members set to NULL.
void Rotate(wxPoint aPosition) override
Function Rotate rotates the item around aPosition 90 degrees in the clockwise direction.
void SwapData(SCH_ITEM *aItem) override
Function SwapData swap the internal data structures aItem with the schematic item.
wxString GetSelectMenuText() const override
Function GetSelectMenuText returns the text to display to be used in the selection clarification cont...
Definition: sch_junction.h:82
bool HitTest(const wxPoint &aPosition, int aAccuracy) const override
Function HitTest tests if aPosition is contained within or on the bounding box of an item...
bool doIsConnected(const wxPoint &aPosition) const override
Function doIsConnected provides the object specific test to see if it is connected to aPosition...
static void SetSymbolSize(int aSize)
Definition: sch_junction.h:54
static int m_symbolSize
Definition: sch_junction.h:39
Class NETLIST_OBJECT_LIST is a container holding and owning NETLIST_OBJECTs, which are connected item...
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...
wxPoint GetPosition() const override
Function GetPosition.
Definition: sch_junction.h:88
GR_DRAWMODE
Drawmode. Compositing mode plus a flag or two.
Definition: gr_basic.h:41
void SetPosition(const wxPoint &aPosition) override
Function SetPosition set the schematic item position to aPosition.
Definition: sch_junction.h:90
Class SCH_SHEET_PATH.
wxPoint m_pos
Definition: sch_junction.h:38
bool IsConnectable() const override
Function IsConnectable returns true if the schematic item can connect to another schematic item...
Definition: sch_junction.h:78
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...
Base plotter engine class.
Definition: class_plotter.h:97
SCH_JUNCTION(const wxPoint &pos=wxPoint(0, 0))
static int GetSymbolSize()
Definition: sch_junction.h:53
BITMAP_DEF GetMenuImage() const override
Function GetMenuImage returns a pointer to an image to be used in menus.
Class EDA_RECT handles the component boundary box.
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:165
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
Class SCH_ITEM is a base class for any item which can be embedded within the SCHEMATIC container clas...
void Plot(PLOTTER *aPlotter) override
Function Plot plots the schematic item to aPlotter.
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39