Horizon
horizon-eda-1.3.0
src
util
kicad_package_parser.hpp
1
#pragma once
2
#include "common/common.hpp"
3
4
namespace
SEXPR {
5
class
SEXPR;
6
}
7
8
namespace
horizon {
9
class
KiCadModuleParser
{
10
protected
:
11
class
Line
*parse_line(
const
SEXPR::SEXPR
*data);
12
void
parse_poly(
const
SEXPR::SEXPR
*data);
13
static
int
get_layer(
const
std::string &l);
14
static
Coordi
get_coord(
const
SEXPR::SEXPR
*data,
size_t
offset = 1);
15
static
Coordi
get_size(
const
SEXPR::SEXPR
*data,
size_t
offset = 1);
16
std::map<Coordi, class Junction *> junctions;
17
Junction
*get_or_create_junction(
const
Coordi
&c);
18
19
virtual
class
Junction
&create_junction() = 0;
20
virtual
class
Polygon
&create_polygon() = 0;
21
virtual
class
Line
&create_line() = 0;
22
23
public
:
24
virtual
~
KiCadModuleParser
()
25
{
26
}
27
};
28
29
class
KiCadPackageParser
:
public
KiCadModuleParser
{
30
public
:
31
KiCadPackageParser
(
class
Package
&p,
class
IPool
&po);
32
void
parse(
const
SEXPR::SEXPR
*data);
33
34
private
:
35
void
parse_pad(
const
SEXPR::SEXPR
*data);
36
37
class
Junction
&create_junction()
override
;
38
class
Polygon
&create_polygon()
override
;
39
class
Line
&create_line()
override
;
40
41
Package
&package;
42
IPool
&pool;
43
};
44
45
class
KiCadDecalParser
:
public
KiCadModuleParser
{
46
public
:
47
KiCadDecalParser
(
class
Decal
&d);
48
void
parse(
const
SEXPR::SEXPR
*data);
49
50
private
:
51
class
Junction
&create_junction()
override
;
52
class
Polygon
&create_polygon()
override
;
53
class
Line
&create_line()
override
;
54
55
Decal
&decal;
56
};
57
58
}
// namespace horizon
horizon::Polygon
Polygon used in Padstack, Package and Board for specifying filled Regions.
Definition:
polygon.hpp:27
horizon::KiCadModuleParser
Definition:
kicad_package_parser.hpp:9
horizon::Decal
Definition:
decal.hpp:16
horizon::Line
Graphical line.
Definition:
line.hpp:19
horizon::Coord< int64_t >
horizon::IPool
Definition:
ipool.hpp:12
horizon::KiCadDecalParser
Definition:
kicad_package_parser.hpp:45
horizon::Junction
A Junction is a point in 2D-Space.
Definition:
junction.hpp:22
horizon::KiCadPackageParser
Definition:
kicad_package_parser.hpp:29
horizon::Package
Definition:
package.hpp:29
SEXPR::SEXPR
Definition:
sexpr.h:45
Generated by
1.8.20