Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
4a0b5607
Commit
4a0b5607
authored
Feb 01, 2008
by
CHARRAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zone outlines edition refinements
parent
14cd0109
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
24 additions
and
41 deletions
+24
-41
class_edge_mod.cpp
pcbnew/class_edge_mod.cpp
+4
-1
zones_by_polygon.cpp
pcbnew/zones_by_polygon.cpp
+10
-6
PolyLine.cpp
polygon/PolyLine.cpp
+2
-19
PolyLine2Kicad.h
polygon/PolyLine2Kicad.h
+0
-10
math_for_graphics.cpp
polygon/math_for_graphics.cpp
+4
-4
math_for_graphics.h
polygon/math_for_graphics.h
+4
-1
No files found.
pcbnew/class_edge_mod.cpp
View file @
4a0b5607
...
...
@@ -460,7 +460,10 @@ int EDGE_MODULE::ReadDescr( char* Line, FILE* File,
m_Width
=
MAX_WIDTH
;
// Check for a reasonnable layer:
if
(
(
m_Layer
<
FIRST_NON_COPPER_LAYER
)
||
(
m_Layer
>
LAST_NON_COPPER_LAYER
)
)
// m_Layer must be >= FIRST_NON_COPPER_LAYER, but because microwave footprints
// can use the copper layers m_Layer < FIRST_NON_COPPER_LAYER is allowed.
// @todo: changes use of EDGE_MODULE these footprints and allows only m_Layer >= FIRST_NON_COPPER_LAYER
if
(
(
m_Layer
<
0
)
||
(
m_Layer
>
LAST_NON_COPPER_LAYER
)
)
m_Layer
=
SILKSCREEN_N_CMP
;
return
error
;
}
...
...
pcbnew/zones_by_polygon.cpp
View file @
4a0b5607
...
...
@@ -154,9 +154,9 @@ void WinEDA_PcbFrame::Delete_Zone_Fill( wxDC* DC, SEGZONE* aZone, long aTimestam
/*******************************************************/
int
WinEDA_PcbFrame
::
Delete_LastCreatedCorner
(
wxDC
*
DC
)
/*******************************************************
**********************
/
/*******************************************************/
/** Used
only
while creating a new zone outline
/** Used
**only**
while creating a new zone outline
* Remove and delete the current outline segment in progress
* @return 0 if no corner in list, or corner number
* if no corner in list, close the outline creation
...
...
@@ -170,13 +170,13 @@ int WinEDA_PcbFrame::Delete_LastCreatedCorner( wxDC* DC )
if
(
zone
->
GetNumCorners
()
==
0
)
return
0
;
zone
->
Draw
(
DrawPanel
,
DC
,
wxPoint
(
0
,
0
)
,
GR_XOR
);
zone
->
Draw
WhileCreateOutline
(
DrawPanel
,
DC
,
GR_XOR
);
if
(
zone
->
GetNumCorners
()
>
1
)
if
(
zone
->
GetNumCorners
()
>
2
)
{
zone
->
m_Poly
->
DeleteCorner
(
zone
->
GetNumCorners
()
-
1
);
if
(
DrawPanel
->
ManageCurseur
)
DrawPanel
->
ManageCurseur
(
DrawPanel
,
DC
,
TRUE
);
if
(
DrawPanel
->
ManageCurseur
)
DrawPanel
->
ManageCurseur
(
DrawPanel
,
DC
,
false
);
}
else
{
...
...
@@ -184,6 +184,7 @@ int WinEDA_PcbFrame::Delete_LastCreatedCorner( wxDC* DC )
DrawPanel
->
ForceCloseManageCurseur
=
NULL
;
SetCurItem
(
NULL
);
zone
->
RemoveAllContours
();
zone
->
m_Flags
=
0
;
}
return
zone
->
GetNumCorners
();
}
...
...
@@ -542,7 +543,10 @@ int WinEDA_PcbFrame::Begin_Zone( wxDC* DC )
if
(
zone
->
GetCornerPosition
(
ii
-
1
)
!=
zone
->
GetCornerPosition
(
ii
)
)
{
if
(
Drc_On
&&
m_drc
->
Drc
(
zone
,
ii
-
1
)
==
OK_DRC
)
// Ok, we can add a new corner
{
zone
->
AppendCorner
(
GetScreen
()
->
m_Curseur
);
SetCurItem
(
zone
);
// calls Display_Infos().
}
}
}
...
...
polygon/PolyLine.cpp
View file @
4a0b5607
...
...
@@ -1038,25 +1038,8 @@ void CPolyLine::Hatch()
min_a
=
(
int
)(
min_y
-
slope
*
min_x
);
}
min_a
=
(
min_a
/
spacing
)
*
spacing
;
int
offset
=
0
;
if
(
layer
<
(
LAY_TOP_COPPER
+
2
)
)
offset
=
0
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
4
)
)
offset
=
spacing
/
2
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
6
)
)
offset
=
spacing
/
4
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
8
)
)
offset
=
3
*
spacing
/
4
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
10
)
)
offset
=
1
*
spacing
/
8
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
12
)
)
offset
=
3
*
spacing
/
8
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
14
)
)
offset
=
5
*
spacing
/
8
;
else
if
(
layer
<
(
LAY_TOP_COPPER
+
16
)
)
offset
=
7
*
spacing
/
8
;
else
wxASSERT
(
0
);
// calculate an offset depending on layer number, for a better display of hatches on a multilayer board
int
offset
=
(
layer
*
7
)
/
8
;
min_a
+=
offset
;
// now calculate and draw hatch lines
...
...
polygon/PolyLine2Kicad.h
View file @
4a0b5607
...
...
@@ -10,27 +10,17 @@
//
// When used for copper areas, the first contour is the outer edge
// of the area, subsequent ones are "holes" in the copper.
//
// If a CDisplayList pointer is provided, the polyline can draw itself
#ifndef POLYLINE2KICAD_H
#define POLYLINE2KICAD_H
#define PCBU_PER_MIL 10
#define MAX_LAYERS 32
#define NM_PER_MIL 10 // 25400
#include "pad_shapes.h"
#define LAY_SELECTION 0
#define LAY_TOP_COPPER 0
#define CDC wxDC
class
wxDC
;
class
CRect
{
public
:
int
left
,
right
,
top
,
bottom
;
...
...
polygon/math_for_graphics.cpp
View file @
4a0b5607
...
...
@@ -241,7 +241,7 @@ int MakeEllipseFromArc( int xi, int yi, int xf, int yf, int style, EllipseKH * e
yyf
=
yf
;
}
// find center and radii of ellipse
double
xo
,
yo
;
double
xo
=
0
,
yo
=
0
;
if
(
xxf
>
xxi
&&
yyf
>
yyi
)
{
xo
=
xxf
;
...
...
@@ -1281,7 +1281,7 @@ int GetClearanceBetweenSegments( int x1i, int y1i, int x1f, int y1f, int style1,
EllipseKH
el1
;
EllipseKH
el2
;
bool
bArcs
;
int
xi
,
yi
,
xf
,
yf
;
int
xi
=
0
,
yi
=
0
,
xf
=
0
,
yf
=
0
;
if
(
style2
==
CPolyLine
::
STRAIGHT
)
{
// style1 = arc, style2 = straight
...
...
@@ -1601,7 +1601,7 @@ int GetArcIntersections( EllipseKH * el1, EllipseKH * el2,
double
yr
=
el2
->
yrad
*
yscale
;
// now test NSTEPS positions in arc, moving clockwise (ie. decreasing theta)
double
step
=
M_PI
/
((
NSTEPS
-
1
)
*
2.0
);
double
d_prev
,
th_prev
;
double
d_prev
=
0
,
th_prev
;
double
th_interp
;
double
th1
;
int
n
=
0
;
...
...
@@ -1676,7 +1676,7 @@ double GetArcClearance( EllipseKH * el1, EllipseKH * el2,
double
th_start2
=
el2
->
theta1
;
double
th_end2
=
el2
->
theta2
;
double
dmin
=
DBL_MAX
;
double
xmin
,
ymin
,
thmin
,
thmin2
;
double
xmin
=
0
,
ymin
=
0
,
thmin
=
0
,
thmin2
=
0
;
int
nsteps
=
NSTEPS
;
int
nsteps2
=
NSTEPS
;
...
...
polygon/math_for_graphics.h
View file @
4a0b5607
...
...
@@ -55,8 +55,11 @@ public:
};
// math stuff for graphics
BOOL
Quadratic
(
double
a
,
double
b
,
double
c
,
double
*
x1
,
double
*
x2
);
#if 0
void DrawArc( CDC * pDC, int shape, int xxi, int yyi, int xxf, int yyf, BOOL bMeta=FALSE );
#endif
BOOL
Quadratic
(
double
a
,
double
b
,
double
c
,
double
*
x1
,
double
*
x2
);
void
RotatePoint
(
CPoint
*
p
,
int
angle
,
CPoint
org
);
void
RotateRect
(
CRect
*
r
,
int
angle
,
CPoint
org
);
int
TestLineHit
(
int
xi
,
int
yi
,
int
xf
,
int
yf
,
int
x
,
int
y
,
double
dist
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment