KiCad PCB EDA Suite
lib_rectangle.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 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
5  * Copyright (C) 2004-2021 KiCad Developers, see AUTHOR.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 
25 #ifndef LIB_RECTANGLE_H
26 #define LIB_RECTANGLE_H
27 
28 #include <lib_item.h>
29 
30 
31 class LIB_RECTANGLE : public LIB_ITEM
32 {
33 public:
34  LIB_RECTANGLE( LIB_SYMBOL* aParent );
35 
36  // Do not create a copy constructor. The one generated by the compiler is adequate.
37 
39 
40  wxString GetClass() const override
41  {
42  return wxT( "LIB_RECTANGLE" );
43  }
44 
45  wxString GetTypeName() const override
46  {
47  return _( "Rectangle" );
48  }
49 
50  void SetEndPosition( const wxPoint& aPosition ) { m_End = aPosition; }
51 
52  bool HitTest( const wxPoint& aPosition, int aAccuracy = 0 ) const override;
53 
54  bool HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy = 0 ) const override;
55 
56  int GetPenWidth() const override;
57 
58  const EDA_RECT GetBoundingBox() const override;
59 
60  void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
61 
62  void BeginEdit( const wxPoint& aStartPoint ) override;
63  void CalcEdit( const wxPoint& aPosition ) override;
64 
65  void Offset( const wxPoint& aOffset ) override;
66 
67  void MoveTo( const wxPoint& aPosition ) override;
68 
69  wxPoint GetPosition() const override { return m_Pos; }
70 
71  void MirrorHorizontal( const wxPoint& aCenter ) override;
72  void MirrorVertical( const wxPoint& aCenter ) override;
73  void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ) override;
74 
75  void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill,
76  const TRANSFORM& aTransform ) const override;
77 
78  int GetWidth() const override { return m_Width; }
79  void SetWidth( int aWidth ) override { m_Width = aWidth; }
80 
81  void SetEnd( const wxPoint& aEnd ) { m_End = aEnd; }
82  wxPoint GetEnd() const { return m_End; }
83 
84  wxString GetSelectMenuText( EDA_UNITS aUnits ) const override;
85 
86  BITMAPS GetMenuImage() const override;
87 
88  EDA_ITEM* Clone() const override;
89 
90 private:
100  int compare( const LIB_ITEM& aOther,
101  LIB_ITEM::COMPARE_FLAGS aCompareFlags = LIB_ITEM::COMPARE_FLAGS::NORMAL ) const override;
102 
103  void print( const RENDER_SETTINGS* aSettings, const wxPoint& aOffset,
104  void* aData, const TRANSFORM& aTransform ) override;
105 
106  wxPoint m_End; // Rectangle end point.
107  wxPoint m_Pos; // Rectangle start point.
108  int m_Width; // Line width
109 };
110 
111 
112 #endif // LIB_RECTANGLE_H
void print(const RENDER_SETTINGS *aSettings, const wxPoint &aOffset, void *aData, const TRANSFORM &aTransform) override
Print the item to aDC.
void BeginEdit(const wxPoint &aStartPoint) override
Begin drawing a symbol library draw item at aPosition.
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
void MirrorHorizontal(const wxPoint &aCenter) override
Mirror the draw object along the horizontal (X) axis about aCenter point.
bool HitTest(const wxPoint &aPosition, int aAccuracy=0) const override
Test if aPosition is contained within or on the bounding box of an item.
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
wxPoint GetEnd() const
Definition: lib_rectangle.h:82
void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
Display basic info (type, part and convert) about the current item in message panel.
void MoveTo(const wxPoint &aPosition) override
Move a draw object to aPosition.
The base class for create windows for drawing purpose.
Define a library symbol object.
Definition: lib_symbol.h:96
void Rotate(const wxPoint &aCenter, bool aRotateCCW=true) override
Rotate the object about aCenter point.
The base class for drawable items used by schematic library symbols.
Definition: lib_item.h:61
LIB_RECTANGLE(LIB_SYMBOL *aParent)
wxString GetSelectMenuText(EDA_UNITS aUnits) const override
Return the text to display to be used in the selection clarification context menu when multiple items...
for transforming drawing coordinates for a wxDC device context.
Definition: transform.h:45
void SetWidth(int aWidth) override
Definition: lib_rectangle.h:79
wxString GetTypeName() const override
Provide a user-consumable name of the object type.
Definition: lib_rectangle.h:45
COMPARE_FLAGS
The list of flags used by the compare function.
Definition: lib_item.h:81
int GetWidth() const override
Definition: lib_rectangle.h:78
int GetPenWidth() const override
#define _(s)
void MirrorVertical(const wxPoint &aCenter) override
Mirror the draw object along the MirrorVertical (Y) axis about aCenter point.
void SetEndPosition(const wxPoint &aPosition)
Definition: lib_rectangle.h:50
EDA_UNITS
Definition: eda_units.h:38
Base plotter engine class.
Definition: plotter.h:121
void SetEnd(const wxPoint &aEnd)
Definition: lib_rectangle.h:81
BITMAPS
A list of all bitmap identifiers.
Definition: bitmaps_list.h:32
wxString GetClass() const override
Return the class name.
Definition: lib_rectangle.h:40
Handle the component boundary box.
Definition: eda_rect.h:42
void Offset(const wxPoint &aOffset) override
Set the drawing object by aOffset from the current position.
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:100
void CalcEdit(const wxPoint &aPosition) override
Calculate the attributes of an item at aPosition when it is being edited.
BITMAPS GetMenuImage() const override
Return a pointer to an image to be used in menus.
const EDA_RECT GetBoundingBox() const override
wxPoint GetPosition() const override
Definition: lib_rectangle.h:69
void Plot(PLOTTER *aPlotter, const wxPoint &aOffset, bool aFill, const TRANSFORM &aTransform) const override
Plot the draw item using the plot object.
int compare(const LIB_ITEM &aOther, LIB_ITEM::COMPARE_FLAGS aCompareFlags=LIB_ITEM::COMPARE_FLAGS::NORMAL) const override
Provide the draw object specific comparison called by the == and < operators.