KiCad PCB EDA Suite
pns_meander_skew_placer.h
Go to the documentation of this file.
1 /*
2  * KiRouter - a push-and-(sometimes-)shove PCB router
3  *
4  * Copyright (C) 2013-2015 CERN
5  * Copyright (C) 2016 KiCad Developers, see AUTHORS.txt for contributors.
6  * Author: Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
7  *
8  * This program is free software: you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by the
10  * Free Software Foundation, either version 3 of the License, or (at your
11  * option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program. If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef __PNS_MEANDER_SKEW_PLACER_H
23 #define __PNS_MEANDER_SKEW_PLACER_H
24 
25 #include "pns_meander_placer.h"
26 #include "pns_diff_pair.h"
27 
28 namespace PNS {
29 
30 class ROUTER;
31 class SHOVE;
32 class OPTIMIZER;
33 
40 {
41 public:
42  MEANDER_SKEW_PLACER( ROUTER* aRouter );
44 
46  bool Start( const VECTOR2I& aP, ITEM* aStartItem ) override;
47 
49  bool Move( const VECTOR2I& aP, ITEM* aEndItem ) override;
50 
52  const wxString TuningInfo( EDA_UNITS aUnits ) const override;
53 
54 private:
55  long long int currentSkew() const;
56 
57  long long int origPathLength() const override;
58 
61 
62  long long int m_coupledLength;
65 };
66 
67 }
68 
69 #endif // __PNS_MEANDER_SKEW_PLACER_H
Base class for PNS router board items.
Definition: pns_item.h:55
Single track length matching/meandering tool.
const wxString TuningInfo(EDA_UNITS aUnits) const override
Return a string describing the status and length of the tuned traces.
EDA_UNITS
Definition: eda_units.h:38
Basic class for a differential pair.
bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
long long int origPathLength() const override
current routing start point (end of tail, beginning of head)
Push and Shove diff pair dimensions (gap) settings dialog.
bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()