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 (C) 2017-2021 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, you may find one here:
18
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19
* or you may search the http://www.gnu.org website for the version 2 license,
20
* or you may write to the Free Software Foundation, Inc.,
21
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22
*/
23
24
#ifndef TOOLS_MICROWAVE_TOOL_H
25
#define TOOLS_MICROWAVE_TOOL_H
26
27
#include <
tools/pcb_tool_base.h
>
28
29
#include <
tool/tool_menu.h
>
30
31
// Microwave shapes that are created as board footprints when the user requests them.
32
enum class
MICROWAVE_FOOTPRINT_SHAPE
33
{
34
GAP
,
35
STUB
,
36
STUB_ARC
,
37
FUNCTION_SHAPE
,
38
};
39
43
struct
MICROWAVE_INDUCTOR_PATTERN
44
{
45
public
:
46
VECTOR2I
m_Start
;
47
VECTOR2I
m_End
;
48
int
m_Length
;
// full length trace.
49
int
m_Width
;
// Trace width.
50
};
51
52
56
class
MICROWAVE_TOOL
:
public
PCB_TOOL_BASE
57
{
58
public
:
59
MICROWAVE_TOOL
();
60
~MICROWAVE_TOOL
();
61
63
void
Reset
(
RESET_REASON
aReason )
override
;
64
66
void
setTransitions
()
override
;
67
68
private
:
70
int
addMicrowaveFootprint
(
const
TOOL_EVENT
& aEvent );
71
73
void
createInductorBetween
(
const
VECTOR2I
& aStart,
const
VECTOR2I
& aEnd );
74
76
int
drawMicrowaveInductor
(
const
TOOL_EVENT
& aEvent );
77
88
FOOTPRINT
*
createFootprint
(
MICROWAVE_FOOTPRINT_SHAPE
aFootprintShape );
89
90
FOOTPRINT
*
createPolygonShape
();
91
95
FOOTPRINT
*
createMicrowaveInductor
(
MICROWAVE_INDUCTOR_PATTERN
& aPattern,
96
wxString& aErrorMessage );
97
109
FOOTPRINT
*
createBaseFootprint
(
const
wxString& aValue,
int
aTextSize,
int
aPadCount );
110
};
111
112
113
#endif
// TOOLS_MICROWAVE_TOOL_H
FOOTPRINT
Definition:
footprint.h:119
MICROWAVE_TOOL
Tool responsible for adding microwave features to PCBs.
Definition:
microwave_tool.h:57
MICROWAVE_TOOL::MICROWAVE_TOOL
MICROWAVE_TOOL()
Definition:
microwave_tool.cpp:40
MICROWAVE_TOOL::createFootprint
FOOTPRINT * createFootprint(MICROWAVE_FOOTPRINT_SHAPE aFootprintShape)
Create a footprint "GAP" or "STUB" used in micro wave designs.
Definition:
microwave_footprint.cpp:34
MICROWAVE_TOOL::drawMicrowaveInductor
int drawMicrowaveInductor(const TOOL_EVENT &aEvent)
Definition:
microwave_tool.cpp:108
MICROWAVE_TOOL::createBaseFootprint
FOOTPRINT * createBaseFootprint(const wxString &aValue, int aTextSize, int aPadCount)
Create a basic footprint for micro wave applications.
Definition:
microwave_footprint.cpp:193
MICROWAVE_TOOL::createMicrowaveInductor
FOOTPRINT * createMicrowaveInductor(MICROWAVE_INDUCTOR_PATTERN &aPattern, wxString &aErrorMessage)
Create an S-shaped coil footprint for microwave applications.
Definition:
microwave_inductor.cpp:321
MICROWAVE_TOOL::createPolygonShape
FOOTPRINT * createPolygonShape()
Definition:
microwave_polygon.cpp:284
MICROWAVE_TOOL::setTransitions
void setTransitions() override
This method is meant to be overridden in order to specify handlers for events.
Definition:
microwave_tool.cpp:238
MICROWAVE_TOOL::createInductorBetween
void createInductorBetween(const VECTOR2I &aStart, const VECTOR2I &aEnd)
Draw a microwave inductor interactively.
Definition:
microwave_inductor.cpp:288
MICROWAVE_TOOL::addMicrowaveFootprint
int addMicrowaveFootprint(const TOOL_EVENT &aEvent)
< Main interactive tool
Definition:
microwave_tool.cpp:55
MICROWAVE_TOOL::~MICROWAVE_TOOL
~MICROWAVE_TOOL()
React to model/view changes.
Definition:
microwave_tool.cpp:46
PCB_TOOL_BASE
Definition:
pcb_tool_base.h:71
TOOL_BASE::RESET_REASON
RESET_REASON
Determine the reason of reset for a tool.
Definition:
tool_base.h:78
TOOL_EVENT
Generic, UI-independent tool event.
Definition:
tool_event.h:167
VECTOR2< int32_t >
Reset
void Reset() override
MICROWAVE_FOOTPRINT_SHAPE
MICROWAVE_FOOTPRINT_SHAPE
Definition:
microwave_tool.h:33
MICROWAVE_FOOTPRINT_SHAPE::STUB_ARC
@ STUB_ARC
MICROWAVE_FOOTPRINT_SHAPE::FUNCTION_SHAPE
@ FUNCTION_SHAPE
MICROWAVE_FOOTPRINT_SHAPE::GAP
@ GAP
MICROWAVE_FOOTPRINT_SHAPE::STUB
@ STUB
pcb_tool_base.h
MICROWAVE_INDUCTOR_PATTERN
Parameters for construction of a microwave inductor.
Definition:
microwave_tool.h:44
MICROWAVE_INDUCTOR_PATTERN::m_End
VECTOR2I m_End
Definition:
microwave_tool.h:47
MICROWAVE_INDUCTOR_PATTERN::m_Length
int m_Length
Definition:
microwave_tool.h:48
MICROWAVE_INDUCTOR_PATTERN::m_Width
int m_Width
Definition:
microwave_tool.h:49
MICROWAVE_INDUCTOR_PATTERN::m_Start
VECTOR2I m_Start
Definition:
microwave_tool.h:46
tool_menu.h
src
pcbnew
microwave
microwave_tool.h
Generated on Fri Dec 27 2024 00:04:55 for KiCad PCB EDA Suite by
1.9.6