KiCad PCB EDA Suite
Loading...
Searching...
No Matches
microwave_tool.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 The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef TOOLS_MICROWAVE_TOOL_H
21
#define TOOLS_MICROWAVE_TOOL_H
22
23
#include <
tools/pcb_tool_base.h
>
24
25
#include <
tool/tool_menu.h
>
26
27
// Microwave shapes that are created as board footprints when the user requests them.
28
enum class
MICROWAVE_FOOTPRINT_SHAPE
29
{
30
GAP
,
31
STUB
,
32
STUB_ARC
,
33
FUNCTION_SHAPE
,
34
};
35
39
struct
MICROWAVE_INDUCTOR_PATTERN
40
{
41
public
:
42
VECTOR2I
m_Start
;
43
VECTOR2I
m_End
;
44
int
m_Length
;
// full length trace.
45
int
m_Width
;
// Trace width.
46
};
47
48
52
class
MICROWAVE_TOOL
:
public
PCB_TOOL_BASE
53
{
54
public
:
55
MICROWAVE_TOOL
();
56
~MICROWAVE_TOOL
();
57
59
void
Reset
(
RESET_REASON
aReason )
override
;
60
62
void
setTransitions
()
override
;
63
64
private
:
66
int
addMicrowaveFootprint
(
const
TOOL_EVENT
& aEvent );
67
69
void
createInductorBetween
(
const
VECTOR2I
& aStart,
const
VECTOR2I
& aEnd );
70
72
int
drawMicrowaveInductor
(
const
TOOL_EVENT
& aEvent );
73
84
FOOTPRINT
*
createFootprint
(
MICROWAVE_FOOTPRINT_SHAPE
aFootprintShape );
85
86
FOOTPRINT
*
createPolygonShape
();
87
91
FOOTPRINT
*
createMicrowaveInductor
(
MICROWAVE_INDUCTOR_PATTERN
& aPattern,
92
wxString& aErrorMessage );
93
105
FOOTPRINT
*
createBaseFootprint
(
const
wxString& aValue,
int
aTextSize,
int
aPadCount );
106
};
107
108
109
#endif
// TOOLS_MICROWAVE_TOOL_H
FOOTPRINT
Definition
footprint.h:288
MICROWAVE_TOOL::MICROWAVE_TOOL
MICROWAVE_TOOL()
Definition
microwave_tool.cpp:37
MICROWAVE_TOOL::createFootprint
FOOTPRINT * createFootprint(MICROWAVE_FOOTPRINT_SHAPE aFootprintShape)
Create a footprint "GAP" or "STUB" used in micro wave designs.
Definition
microwave_footprint.cpp:30
MICROWAVE_TOOL::drawMicrowaveInductor
int drawMicrowaveInductor(const TOOL_EVENT &aEvent)
Definition
microwave_tool.cpp:105
MICROWAVE_TOOL::createBaseFootprint
FOOTPRINT * createBaseFootprint(const wxString &aValue, int aTextSize, int aPadCount)
Create a basic footprint for micro wave applications.
Definition
microwave_footprint.cpp:189
MICROWAVE_TOOL::createMicrowaveInductor
FOOTPRINT * createMicrowaveInductor(MICROWAVE_INDUCTOR_PATTERN &aPattern, wxString &aErrorMessage)
Create an S-shaped coil footprint for microwave applications.
Definition
microwave_inductor.cpp:318
MICROWAVE_TOOL::createPolygonShape
FOOTPRINT * createPolygonShape()
Definition
microwave_polygon.cpp:280
MICROWAVE_TOOL::setTransitions
void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
Definition
microwave_tool.cpp:235
MICROWAVE_TOOL::createInductorBetween
void createInductorBetween(const VECTOR2I &aStart, const VECTOR2I &aEnd)
Draw a microwave inductor interactively.
Definition
microwave_inductor.cpp:285
MICROWAVE_TOOL::addMicrowaveFootprint
int addMicrowaveFootprint(const TOOL_EVENT &aEvent)
< Main interactive tool
Definition
microwave_tool.cpp:52
MICROWAVE_TOOL::~MICROWAVE_TOOL
~MICROWAVE_TOOL()
React to model/view changes.
Definition
microwave_tool.cpp:43
PCB_TOOL_BASE::PCB_TOOL_BASE
PCB_TOOL_BASE(TOOL_ID aId, const std::string &aName)
Constructor.
Definition
pcb_tool_base.h:74
TOOL_BASE::RESET_REASON
RESET_REASON
Determine the reason of reset for a tool.
Definition
tool_base.h:74
TOOL_EVENT
Generic, UI-independent tool event.
Definition
tool_event.h:167
Reset
void Reset() override
MICROWAVE_FOOTPRINT_SHAPE
MICROWAVE_FOOTPRINT_SHAPE
Definition
microwave_tool.h:29
MICROWAVE_FOOTPRINT_SHAPE::STUB_ARC
@ STUB_ARC
Definition
microwave_tool.h:32
MICROWAVE_FOOTPRINT_SHAPE::FUNCTION_SHAPE
@ FUNCTION_SHAPE
Definition
microwave_tool.h:33
MICROWAVE_FOOTPRINT_SHAPE::GAP
@ GAP
Definition
microwave_tool.h:30
MICROWAVE_FOOTPRINT_SHAPE::STUB
@ STUB
Definition
microwave_tool.h:31
pcb_tool_base.h
MICROWAVE_INDUCTOR_PATTERN
Parameters for construction of a microwave inductor.
Definition
microwave_tool.h:40
MICROWAVE_INDUCTOR_PATTERN::m_End
VECTOR2I m_End
Definition
microwave_tool.h:43
MICROWAVE_INDUCTOR_PATTERN::m_Length
int m_Length
Definition
microwave_tool.h:44
MICROWAVE_INDUCTOR_PATTERN::m_Width
int m_Width
Definition
microwave_tool.h:45
MICROWAVE_INDUCTOR_PATTERN::m_Start
VECTOR2I m_Start
Definition
microwave_tool.h:42
tool_menu.h
VECTOR2I
VECTOR2< int32_t > VECTOR2I
Definition
vector2d.h:683
src
pcbnew
microwave
microwave_tool.h
Generated on Fri Jun 26 2026 00:05:40 for KiCad PCB EDA Suite by
1.13.2