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
3e18fa42
Commit
3e18fa42
authored
Jan 13, 2013
by
Heikki Pulkkinen
Committed by
Dick Hollenbeck
Jan 13, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
protect data in class_track.h, switch to using member accessors
parent
f8a56d44
Changes
33
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
398 additions
and
401 deletions
+398
-401
3d_draw.cpp
3d-viewer/3d_draw.cpp
+6
-6
autoplac.cpp
pcbnew/autorouter/autoplac.cpp
+1
-1
graphpcb.cpp
pcbnew/autorouter/graphpcb.cpp
+8
-8
solve.cpp
pcbnew/autorouter/solve.cpp
+35
-38
board_undo_redo.cpp
pcbnew/board_undo_redo.cpp
+8
-5
class_board.cpp
pcbnew/class_board.cpp
+23
-23
class_track.cpp
pcbnew/class_track.cpp
+2
-2
class_track.h
pcbnew/class_track.h
+4
-8
clean.cpp
pcbnew/clean.cpp
+32
-32
connect.cpp
pcbnew/connect.cpp
+4
-4
drag.h
pcbnew/drag.h
+1
-1
dragsegm.cpp
pcbnew/dragsegm.cpp
+7
-7
drc_clearance_test_functions.cpp
pcbnew/drc_clearance_test_functions.cpp
+17
-17
drc_marker_functions.cpp
pcbnew/drc_marker_functions.cpp
+6
-6
edit_track_width.cpp
pcbnew/edit_track_width.cpp
+6
-6
editrack-part2.cpp
pcbnew/editrack-part2.cpp
+9
-7
editrack.cpp
pcbnew/editrack.cpp
+75
-77
event_handlers_tracks_vias_sizes.cpp
pcbnew/event_handlers_tracks_vias_sizes.cpp
+5
-2
export_gencad.cpp
pcbnew/export_gencad.cpp
+22
-22
export_vrml.cpp
pcbnew/export_vrml.cpp
+6
-6
gendrill_Excellon_writer.cpp
pcbnew/gendrill_Excellon_writer.cpp
+1
-1
magnetic_tracks_functions.cpp
pcbnew/magnetic_tracks_functions.cpp
+21
-21
move-drag_pads.cpp
pcbnew/move-drag_pads.cpp
+4
-4
move_or_drag_track.cpp
pcbnew/move_or_drag_track.cpp
+52
-54
plot_board_layers.cpp
pcbnew/plot_board_layers.cpp
+8
-8
plot_brditems_plotter.cpp
pcbnew/plot_brditems_plotter.cpp
+2
-2
print_board_functions.cpp
pcbnew/print_board_functions.cpp
+5
-5
ratsnest.cpp
pcbnew/ratsnest.cpp
+4
-4
specctra_export.cpp
pcbnew/specctra_export.cpp
+6
-6
specctra_import.cpp
pcbnew/specctra_import.cpp
+10
-10
tr_modif.cpp
pcbnew/tr_modif.cpp
+3
-3
zones_polygons_insulated_copper_islands.cpp
pcbnew/zones_polygons_insulated_copper_islands.cpp
+2
-2
zones_polygons_test_connections.cpp
pcbnew/zones_polygons_test_connections.cpp
+3
-3
No files found.
3d-viewer/3d_draw.cpp
View file @
3e18fa42
...
@@ -464,8 +464,8 @@ void EDA_3D_CANVAS::Draw3D_Track( TRACK* aTrack )
...
@@ -464,8 +464,8 @@ void EDA_3D_CANVAS::Draw3D_Track( TRACK* aTrack )
SetGLColor
(
color
);
SetGLColor
(
color
);
glNormal3f
(
0.0
,
0.0
,
Get3DLayer_Z_Orientation
(
layer
)
);
glNormal3f
(
0.0
,
0.0
,
Get3DLayer_Z_Orientation
(
layer
)
);
Draw3D_SolidSegment
(
aTrack
->
m_Start
,
aTrack
->
m_End
,
Draw3D_SolidSegment
(
aTrack
->
GetStart
(),
aTrack
->
GetEnd
()
,
aTrack
->
m_Width
,
thickness
,
zpos
,
aTrack
->
GetWidth
()
,
thickness
,
zpos
,
g_Parm_3D_Visu
.
m_BiuTo3Dunits
);
g_Parm_3D_Visu
.
m_BiuTo3Dunits
);
}
}
...
@@ -475,7 +475,7 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
...
@@ -475,7 +475,7 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
int
color
;
int
color
;
double
biu_to_3Dunits
=
g_Parm_3D_Visu
.
m_BiuTo3Dunits
;
double
biu_to_3Dunits
=
g_Parm_3D_Visu
.
m_BiuTo3Dunits
;
int
outer_radius
=
via
->
m_Width
/
2
;
int
outer_radius
=
via
->
GetWidth
()
/
2
;
int
inner_radius
=
via
->
GetDrillValue
()
/
2
;
int
inner_radius
=
via
->
GetDrillValue
()
/
2
;
int
thickness
=
g_Parm_3D_Visu
.
GetCopperThicknessBIU
();
int
thickness
=
g_Parm_3D_Visu
.
GetCopperThicknessBIU
();
...
@@ -504,7 +504,7 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
...
@@ -504,7 +504,7 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
SetGLColor
(
color
);
SetGLColor
(
color
);
glNormal3f
(
0.0
,
0.0
,
Get3DLayer_Z_Orientation
(
layer
)
);
glNormal3f
(
0.0
,
0.0
,
Get3DLayer_Z_Orientation
(
layer
)
);
Draw3D_ZaxisCylinder
(
via
->
m_Start
,
(
outer_radius
+
inner_radius
)
/
2
,
Draw3D_ZaxisCylinder
(
via
->
GetStart
()
,
(
outer_radius
+
inner_radius
)
/
2
,
thickness
,
outer_radius
-
inner_radius
,
thickness
,
outer_radius
-
inner_radius
,
zpos
,
biu_to_3Dunits
);
zpos
,
biu_to_3Dunits
);
if
(
layer
>=
top_layer
)
if
(
layer
>=
top_layer
)
...
@@ -512,13 +512,13 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
...
@@ -512,13 +512,13 @@ void EDA_3D_CANVAS::Draw3D_Via( SEGVIA* via )
}
}
// Drawing via hole:
// Drawing via hole:
color
=
g_ColorsSettings
.
GetItemColor
(
VIAS_VISIBLE
+
via
->
m_Shape
);
color
=
g_ColorsSettings
.
GetItemColor
(
VIAS_VISIBLE
+
via
->
GetShape
()
);
SetGLColor
(
color
);
SetGLColor
(
color
);
int
height
=
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
top_layer
)
-
int
height
=
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
top_layer
)
-
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
bottom_layer
);
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
bottom_layer
);
int
zpos
=
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
bottom_layer
)
+
thickness
/
2
;
int
zpos
=
g_Parm_3D_Visu
.
GetLayerZcoordBIU
(
bottom_layer
)
+
thickness
/
2
;
Draw3D_ZaxisCylinder
(
via
->
m_Start
,
inner_radius
+
thickness
/
2
,
height
,
Draw3D_ZaxisCylinder
(
via
->
GetStart
()
,
inner_radius
+
thickness
/
2
,
height
,
thickness
,
zpos
,
biu_to_3Dunits
);
thickness
,
zpos
,
biu_to_3Dunits
);
}
}
...
...
pcbnew/autorouter/autoplac.cpp
View file @
3e18fa42
...
@@ -462,7 +462,7 @@ int PCB_EDIT_FRAME::GenPlaceBoard()
...
@@ -462,7 +462,7 @@ int PCB_EDIT_FRAME::GenPlaceBoard()
TmpSegm
.
SetLayer
(
-
1
);
TmpSegm
.
SetLayer
(
-
1
);
TmpSegm
.
SetNet
(
-
1
);
TmpSegm
.
SetNet
(
-
1
);
TmpSegm
.
m_Width
=
RoutingMatrix
.
m_GridRouting
/
2
;
TmpSegm
.
SetWidth
(
RoutingMatrix
.
m_GridRouting
/
2
)
;
EDA_ITEM
*
PtStruct
=
GetBoard
()
->
m_Drawings
;
EDA_ITEM
*
PtStruct
=
GetBoard
()
->
m_Drawings
;
...
...
pcbnew/autorouter/graphpcb.cpp
View file @
3e18fa42
...
@@ -262,13 +262,13 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
...
@@ -262,13 +262,13 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
int
half_width
;
int
half_width
;
int
ux0
,
uy0
,
ux1
,
uy1
;
int
ux0
,
uy0
,
ux1
,
uy1
;
half_width
=
(
pt_segm
->
m_Width
/
2
)
+
marge
;
half_width
=
(
pt_segm
->
GetWidth
()
/
2
)
+
marge
;
// Calculate the bounding rectangle of the segment (if H, V or Via)
// Calculate the bounding rectangle of the segment (if H, V or Via)
ux0
=
pt_segm
->
m_Start
.
x
-
RoutingMatrix
.
GetBrdCoordOrigin
().
x
;
ux0
=
pt_segm
->
GetStart
()
.
x
-
RoutingMatrix
.
GetBrdCoordOrigin
().
x
;
uy0
=
pt_segm
->
m_Start
.
y
-
RoutingMatrix
.
GetBrdCoordOrigin
().
y
;
uy0
=
pt_segm
->
GetStart
()
.
y
-
RoutingMatrix
.
GetBrdCoordOrigin
().
y
;
ux1
=
pt_segm
->
m_End
.
x
-
RoutingMatrix
.
GetBrdCoordOrigin
().
x
;
ux1
=
pt_segm
->
GetEnd
()
.
x
-
RoutingMatrix
.
GetBrdCoordOrigin
().
x
;
uy1
=
pt_segm
->
m_End
.
y
-
RoutingMatrix
.
GetBrdCoordOrigin
().
y
;
uy1
=
pt_segm
->
GetEnd
()
.
y
-
RoutingMatrix
.
GetBrdCoordOrigin
().
y
;
// Test if VIA (filled circle was drawn)
// Test if VIA (filled circle was drawn)
if
(
pt_segm
->
Type
()
==
PCB_VIA_T
)
if
(
pt_segm
->
Type
()
==
PCB_VIA_T
)
...
@@ -290,7 +290,7 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
...
@@ -290,7 +290,7 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
mask_layer
=
-
1
;
mask_layer
=
-
1
;
if
(
mask_layer
)
if
(
mask_layer
)
TraceFilledCircle
(
pt_segm
->
m_Start
.
x
,
pt_segm
->
m_Start
.
y
,
TraceFilledCircle
(
pt_segm
->
GetStart
().
x
,
pt_segm
->
GetStart
()
.
y
,
half_width
,
mask_layer
,
color
,
op_logic
);
half_width
,
mask_layer
,
color
,
op_logic
);
return
;
return
;
}
}
...
@@ -301,13 +301,13 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
...
@@ -301,13 +301,13 @@ void TraceSegmentPcb( TRACK* pt_segm, int color, int marge, int op_logic )
layer
=
-
1
;
layer
=
-
1
;
// The segment is here a straight line or a circle or an arc.:
// The segment is here a straight line or a circle or an arc.:
if
(
pt_segm
->
m_Shape
==
S_CIRCLE
)
if
(
pt_segm
->
GetShape
()
==
S_CIRCLE
)
{
{
TraceCircle
(
ux0
,
uy0
,
ux1
,
uy1
,
half_width
,
layer
,
color
,
op_logic
);
TraceCircle
(
ux0
,
uy0
,
ux1
,
uy1
,
half_width
,
layer
,
color
,
op_logic
);
return
;
return
;
}
}
if
(
pt_segm
->
m_Shape
==
S_ARC
)
if
(
pt_segm
->
GetShape
()
==
S_ARC
)
{
{
TraceArc
(
ux0
,
uy0
,
ux1
,
uy1
,
pt_segm
->
m_Param
,
half_width
,
layer
,
color
,
op_logic
);
TraceArc
(
ux0
,
uy0
,
ux1
,
uy1
,
pt_segm
->
m_Param
,
half_width
,
layer
,
color
,
op_logic
);
return
;
return
;
...
...
pcbnew/autorouter/solve.cpp
View file @
3e18fa42
...
@@ -1169,16 +1169,14 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
...
@@ -1169,16 +1169,14 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
g_CurrentTrackSegment
->
SetState
(
TRACK_AR
,
ON
);
g_CurrentTrackSegment
->
SetState
(
TRACK_AR
,
ON
);
g_CurrentTrackSegment
->
SetLayer
(
0x0F
);
g_CurrentTrackSegment
->
SetLayer
(
0x0F
);
g_CurrentTrackSegment
->
m_Start
.
x
=
g_CurrentTrackSegment
->
SetStart
(
wxPoint
(
pcb
->
GetBoundingBox
().
GetX
()
+
g_CurrentTrackSegment
->
m_End
.
x
=
pcb
->
GetBoundingBox
().
GetX
()
+
(
RoutingMatrix
.
m_GridRouting
*
row
),
(
RoutingMatrix
.
m_GridRouting
*
row
);
pcb
->
GetBoundingBox
().
GetY
()
+
(
RoutingMatrix
.
m_GridRouting
*
col
)));
g_CurrentTrackSegment
->
m_Start
.
y
=
g_CurrentTrackSegment
->
SetEnd
(
g_CurrentTrackSegment
->
GetStart
()
);
g_CurrentTrackSegment
->
m_End
.
y
=
pcb
->
GetBoundingBox
().
GetY
()
+
(
RoutingMatrix
.
m_GridRouting
*
col
);
g_CurrentTrackSegment
->
SetWidth
(
pcb
->
GetCurrentViaSize
()
);
g_CurrentTrackSegment
->
SetShape
(
pcb
->
GetDesignSettings
().
m_CurrentViaType
);
g_CurrentTrackSegment
->
m_Width
=
pcb
->
GetCurrentViaSize
();
g_CurrentTrackSegment
->
m_Shape
=
pcb
->
GetDesignSettings
().
m_CurrentViaType
;
g_CurrentTrackSegment
->
SetNet
(
current_net_code
);
g_CurrentTrackSegment
->
SetNet
(
current_net_code
);
}
}
...
@@ -1194,35 +1192,34 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
...
@@ -1194,35 +1192,34 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
g_CurrentTrackSegment
->
SetLayer
(
Route_Layer_TOP
);
g_CurrentTrackSegment
->
SetLayer
(
Route_Layer_TOP
);
g_CurrentTrackSegment
->
SetState
(
TRACK_AR
,
ON
);
g_CurrentTrackSegment
->
SetState
(
TRACK_AR
,
ON
);
g_CurrentTrackSegment
->
m_End
.
x
=
pcb
->
GetBoundingBox
().
GetX
()
+
g_CurrentTrackSegment
->
SetEnd
(
wxPoint
(
pcb
->
GetBoundingBox
().
GetX
()
+
(
RoutingMatrix
.
m_GridRouting
*
row
)
;
(
RoutingMatrix
.
m_GridRouting
*
row
)
,
g_CurrentTrackSegment
->
m_End
.
y
=
pcb
->
GetBoundingBox
().
GetY
()
+
pcb
->
GetBoundingBox
().
GetY
()
+
(
RoutingMatrix
.
m_GridRouting
*
col
);
(
RoutingMatrix
.
m_GridRouting
*
col
)
))
;
g_CurrentTrackSegment
->
SetNet
(
current_net_code
);
g_CurrentTrackSegment
->
SetNet
(
current_net_code
);
if
(
g_CurrentTrackSegment
->
Back
()
==
NULL
)
/* Start trace. */
if
(
g_CurrentTrackSegment
->
Back
()
==
NULL
)
/* Start trace. */
{
{
g_CurrentTrackSegment
->
m_Start
.
x
=
segm_fX
;
g_CurrentTrackSegment
->
SetStart
(
wxPoint
(
segm_fX
,
segm_fY
)
);
g_CurrentTrackSegment
->
m_Start
.
y
=
segm_fY
;
/* Placement on the center of the pad if outside grid. */
/* Placement on the center of the pad if outside grid. */
dx1
=
g_CurrentTrackSegment
->
m_End
.
x
-
g_CurrentTrackSegment
->
m_Start
.
x
;
dx1
=
g_CurrentTrackSegment
->
GetEnd
().
x
-
g_CurrentTrackSegment
->
GetStart
()
.
x
;
dy1
=
g_CurrentTrackSegment
->
m_End
.
y
-
g_CurrentTrackSegment
->
m_Start
.
y
;
dy1
=
g_CurrentTrackSegment
->
GetEnd
().
y
-
g_CurrentTrackSegment
->
GetStart
()
.
y
;
dx0
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
().
x
-
g_CurrentTrackSegment
->
m_Start
.
x
;
dx0
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
().
x
-
g_CurrentTrackSegment
->
GetStart
()
.
x
;
dy0
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
().
y
-
g_CurrentTrackSegment
->
m_Start
.
y
;
dy0
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
().
y
-
g_CurrentTrackSegment
->
GetStart
()
.
y
;
/* If aligned, change the origin point. */
/* If aligned, change the origin point. */
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
{
{
g_CurrentTrackSegment
->
m_Start
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
(
);
g_CurrentTrackSegment
->
SetStart
(
pt_cur_ch
->
m_PadEnd
->
GetPosition
()
);
}
}
else
// Creation of a supplemental segment
else
// Creation of a supplemental segment
{
{
g_CurrentTrackSegment
->
m_Start
=
pt_cur_ch
->
m_PadEnd
->
GetPosition
(
);
g_CurrentTrackSegment
->
SetStart
(
pt_cur_ch
->
m_PadEnd
->
GetPosition
()
);
newTrack
=
(
TRACK
*
)
g_CurrentTrackSegment
->
Clone
();
newTrack
=
(
TRACK
*
)
g_CurrentTrackSegment
->
Clone
();
newTrack
->
m_Start
=
g_CurrentTrackSegment
->
m_End
;
newTrack
->
SetStart
(
g_CurrentTrackSegment
->
GetEnd
())
;
g_CurrentTrackList
.
PushBack
(
newTrack
);
g_CurrentTrackList
.
PushBack
(
newTrack
);
}
}
...
@@ -1231,28 +1228,28 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
...
@@ -1231,28 +1228,28 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
{
{
if
(
g_CurrentTrackSegment
->
Back
()
)
if
(
g_CurrentTrackSegment
->
Back
()
)
{
{
g_CurrentTrackSegment
->
m_Start
=
g_CurrentTrackSegment
->
Back
()
->
m_End
;
g_CurrentTrackSegment
->
SetStart
(
g_CurrentTrackSegment
->
Back
()
->
GetEnd
()
)
;
}
}
}
}
g_CurrentTrackSegment
->
m_Width
=
pcb
->
GetCurrentTrackWidth
(
);
g_CurrentTrackSegment
->
SetWidth
(
pcb
->
GetCurrentTrackWidth
()
);
if
(
g_CurrentTrackSegment
->
m_Start
!=
g_CurrentTrackSegment
->
m_End
)
if
(
g_CurrentTrackSegment
->
GetStart
()
!=
g_CurrentTrackSegment
->
GetEnd
()
)
{
{
/* Reduce aligned segments by one. */
/* Reduce aligned segments by one. */
TRACK
*
oldTrack
=
g_CurrentTrackSegment
->
Back
();
TRACK
*
oldTrack
=
g_CurrentTrackSegment
->
Back
();
if
(
oldTrack
&&
oldTrack
->
Type
()
!=
PCB_VIA_T
)
if
(
oldTrack
&&
oldTrack
->
Type
()
!=
PCB_VIA_T
)
{
{
dx1
=
g_CurrentTrackSegment
->
m_End
.
x
-
g_CurrentTrackSegment
->
m_Start
.
x
;
dx1
=
g_CurrentTrackSegment
->
GetEnd
().
x
-
g_CurrentTrackSegment
->
GetStart
()
.
x
;
dy1
=
g_CurrentTrackSegment
->
m_End
.
y
-
g_CurrentTrackSegment
->
m_Start
.
y
;
dy1
=
g_CurrentTrackSegment
->
GetEnd
().
y
-
g_CurrentTrackSegment
->
GetStart
()
.
y
;
dx0
=
oldTrack
->
m_End
.
x
-
oldTrack
->
m_Start
.
x
;
dx0
=
oldTrack
->
GetEnd
().
x
-
oldTrack
->
GetStart
()
.
x
;
dy0
=
oldTrack
->
m_End
.
y
-
oldTrack
->
m_Start
.
y
;
dy0
=
oldTrack
->
GetEnd
().
y
-
oldTrack
->
GetStart
()
.
y
;
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
{
{
oldTrack
->
m_End
=
g_CurrentTrackSegment
->
m_End
;
oldTrack
->
SetEnd
(
g_CurrentTrackSegment
->
GetEnd
()
)
;
delete
g_CurrentTrackList
.
PopBack
();
delete
g_CurrentTrackList
.
PopBack
();
}
}
...
@@ -1280,24 +1277,24 @@ static void AddNewTrace( PCB_EDIT_FRAME* pcbframe, wxDC* DC )
...
@@ -1280,24 +1277,24 @@ static void AddNewTrace( PCB_EDIT_FRAME* pcbframe, wxDC* DC )
marge
=
s_Clearance
+
(
pcbframe
->
GetBoard
()
->
GetCurrentTrackWidth
()
/
2
);
marge
=
s_Clearance
+
(
pcbframe
->
GetBoard
()
->
GetCurrentTrackWidth
()
/
2
);
via_marge
=
s_Clearance
+
(
pcbframe
->
GetBoard
()
->
GetCurrentViaSize
()
/
2
);
via_marge
=
s_Clearance
+
(
pcbframe
->
GetBoard
()
->
GetCurrentViaSize
()
/
2
);
dx1
=
g_CurrentTrackSegment
->
m_End
.
x
-
g_CurrentTrackSegment
->
m_Start
.
x
;
dx1
=
g_CurrentTrackSegment
->
GetEnd
().
x
-
g_CurrentTrackSegment
->
GetStart
()
.
x
;
dy1
=
g_CurrentTrackSegment
->
m_End
.
y
-
g_CurrentTrackSegment
->
m_Start
.
y
;
dy1
=
g_CurrentTrackSegment
->
GetEnd
().
y
-
g_CurrentTrackSegment
->
GetStart
()
.
y
;
/* Place on center of pad if off grid. */
/* Place on center of pad if off grid. */
dx0
=
pt_cur_ch
->
m_PadStart
->
GetPosition
().
x
-
g_CurrentTrackSegment
->
m_Start
.
x
;
dx0
=
pt_cur_ch
->
m_PadStart
->
GetPosition
().
x
-
g_CurrentTrackSegment
->
GetStart
()
.
x
;
dy0
=
pt_cur_ch
->
m_PadStart
->
GetPosition
().
y
-
g_CurrentTrackSegment
->
m_Start
.
y
;
dy0
=
pt_cur_ch
->
m_PadStart
->
GetPosition
().
y
-
g_CurrentTrackSegment
->
GetStart
()
.
y
;
/* If aligned, change the origin point. */
/* If aligned, change the origin point. */
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
if
(
abs
(
dx0
*
dy1
)
==
abs
(
dx1
*
dy0
)
)
{
{
g_CurrentTrackSegment
->
m_End
=
pt_cur_ch
->
m_PadStart
->
GetPosition
(
);
g_CurrentTrackSegment
->
SetEnd
(
pt_cur_ch
->
m_PadStart
->
GetPosition
()
);
}
}
else
else
{
{
TRACK
*
newTrack
=
(
TRACK
*
)
g_CurrentTrackSegment
->
Clone
();
TRACK
*
newTrack
=
(
TRACK
*
)
g_CurrentTrackSegment
->
Clone
();
newTrack
->
m_End
=
pt_cur_ch
->
m_PadStart
->
GetPosition
(
);
newTrack
->
SetEnd
(
pt_cur_ch
->
m_PadStart
->
GetPosition
()
);
newTrack
->
m_Start
=
g_CurrentTrackSegment
->
m_End
;
newTrack
->
SetStart
(
g_CurrentTrackSegment
->
GetEnd
()
)
;
g_CurrentTrackList
.
PushBack
(
newTrack
);
g_CurrentTrackList
.
PushBack
(
newTrack
);
}
}
...
...
pcbnew/board_undo_redo.cpp
View file @
3e18fa42
...
@@ -245,11 +245,14 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
...
@@ -245,11 +245,14 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage )
{
{
TRACK
*
track
=
(
TRACK
*
)
aItem
;
TRACK
*
track
=
(
TRACK
*
)
aItem
;
TRACK
*
image
=
(
TRACK
*
)
aImage
;
TRACK
*
image
=
(
TRACK
*
)
aImage
;
EXCHG
(
track
->
m_Start
,
image
->
m_Start
);
EXCHG
(
track
->
m_End
,
image
->
m_End
);
// swap start, end, width and shape for track and image.
EXCHG
(
track
->
m_Width
,
image
->
m_Width
);
wxPoint
exchp
=
track
->
GetStart
();
track
->
SetStart
(
image
->
GetStart
()
);
image
->
SetStart
(
exchp
);
EXCHG
(
track
->
m_Shape
,
image
->
m_Shape
);
exchp
=
track
->
GetEnd
();
track
->
SetEnd
(
image
->
GetEnd
()
);
image
->
SetEnd
(
exchp
);
int
atmp
=
track
->
GetDrillValue
();
int
atmp
=
track
->
GetWidth
();
track
->
SetWidth
(
image
->
GetWidth
()
);
image
->
SetWidth
(
atmp
);
atmp
=
track
->
GetShape
();
track
->
SetShape
(
image
->
GetShape
()
);
image
->
SetShape
(
atmp
);
atmp
=
track
->
GetDrillValue
();
if
(
track
->
IsDrillDefault
()
)
if
(
track
->
IsDrillDefault
()
)
atmp
=
-
1
;
atmp
=
-
1
;
...
...
pcbnew/class_board.cpp
View file @
3e18fa42
...
@@ -214,13 +214,13 @@ void BOARD::chainMarkedSegments( wxPoint aPosition, int aLayerMask, TRACK_PTRS*
...
@@ -214,13 +214,13 @@ void BOARD::chainMarkedSegments( wxPoint aPosition, int aLayerMask, TRACK_PTRS*
*/
*/
aLayerMask
=
candidate
->
ReturnMaskLayer
();
aLayerMask
=
candidate
->
ReturnMaskLayer
();
if
(
aPosition
==
candidate
->
m_Start
)
if
(
aPosition
==
candidate
->
GetStart
()
)
{
{
aPosition
=
candidate
->
m_End
;
aPosition
=
candidate
->
GetEnd
()
;
}
}
else
else
{
{
aPosition
=
candidate
->
m_Start
;
aPosition
=
candidate
->
GetStart
()
;
}
}
segment
=
m_Track
;
/* restart list of tracks to analyze */
segment
=
m_Track
;
/* restart list of tracks to analyze */
...
@@ -1586,7 +1586,7 @@ TRACK* BOARD::GetViaByPosition( const wxPoint& aPosition, int aLayerMask )
...
@@ -1586,7 +1586,7 @@ TRACK* BOARD::GetViaByPosition( const wxPoint& aPosition, int aLayerMask )
if
(
track
->
Type
()
!=
PCB_VIA_T
)
if
(
track
->
Type
()
!=
PCB_VIA_T
)
continue
;
continue
;
if
(
track
->
m_Start
!=
aPosition
)
if
(
track
->
GetStart
()
!=
aPosition
)
continue
;
continue
;
if
(
track
->
GetState
(
BUSY
|
IS_DELETED
)
)
if
(
track
->
GetState
(
BUSY
|
IS_DELETED
)
)
...
@@ -1628,11 +1628,11 @@ D_PAD* BOARD::GetPad( TRACK* aTrace, int aEndPoint )
...
@@ -1628,11 +1628,11 @@ D_PAD* BOARD::GetPad( TRACK* aTrace, int aEndPoint )
if
(
aEndPoint
==
FLG_START
)
if
(
aEndPoint
==
FLG_START
)
{
{
aPosition
=
aTrace
->
m_Start
;
aPosition
=
aTrace
->
GetStart
()
;
}
}
else
else
{
{
aPosition
=
aTrace
->
m_End
;
aPosition
=
aTrace
->
GetEnd
()
;
}
}
for
(
MODULE
*
module
=
m_Modules
;
module
;
module
=
module
->
Next
()
)
for
(
MODULE
*
module
=
m_Modules
;
module
;
module
=
module
->
Next
()
)
...
@@ -1852,16 +1852,16 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
...
@@ -1852,16 +1852,16 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
if
(
aTrace
->
Type
()
==
PCB_VIA_T
)
if
(
aTrace
->
Type
()
==
PCB_VIA_T
)
{
{
TRACK
*
Segm1
,
*
Segm2
=
NULL
,
*
Segm3
=
NULL
;
TRACK
*
Segm1
,
*
Segm2
=
NULL
,
*
Segm3
=
NULL
;
Segm1
=
::
GetTrace
(
m_Track
,
NULL
,
aTrace
->
m_Start
,
layerMask
);
Segm1
=
::
GetTrace
(
m_Track
,
NULL
,
aTrace
->
GetStart
()
,
layerMask
);
if
(
Segm1
)
if
(
Segm1
)
{
{
Segm2
=
::
GetTrace
(
Segm1
->
Next
(),
NULL
,
aTrace
->
m_Start
,
layerMask
);
Segm2
=
::
GetTrace
(
Segm1
->
Next
(),
NULL
,
aTrace
->
GetStart
()
,
layerMask
);
}
}
if
(
Segm2
)
if
(
Segm2
)
{
{
Segm3
=
::
GetTrace
(
Segm2
->
Next
(),
NULL
,
aTrace
->
m_Start
,
layerMask
);
Segm3
=
::
GetTrace
(
Segm2
->
Next
(),
NULL
,
aTrace
->
GetStart
()
,
layerMask
);
}
}
if
(
Segm3
)
// More than 2 segments are connected to this via. the track" is only this via
if
(
Segm3
)
// More than 2 segments are connected to this via. the track" is only this via
...
@@ -1875,19 +1875,19 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
...
@@ -1875,19 +1875,19 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
if
(
Segm1
)
// search for others segments connected to the initial segment start point
if
(
Segm1
)
// search for others segments connected to the initial segment start point
{
{
layerMask
=
Segm1
->
ReturnMaskLayer
();
layerMask
=
Segm1
->
ReturnMaskLayer
();
chainMarkedSegments
(
aTrace
->
m_Start
,
layerMask
,
&
trackList
);
chainMarkedSegments
(
aTrace
->
GetStart
()
,
layerMask
,
&
trackList
);
}
}
if
(
Segm2
)
// search for others segments connected to the initial segment end point
if
(
Segm2
)
// search for others segments connected to the initial segment end point
{
{
layerMask
=
Segm2
->
ReturnMaskLayer
();
layerMask
=
Segm2
->
ReturnMaskLayer
();
chainMarkedSegments
(
aTrace
->
m_Start
,
layerMask
,
&
trackList
);
chainMarkedSegments
(
aTrace
->
GetStart
()
,
layerMask
,
&
trackList
);
}
}
}
}
else
// mark the chain using both ends of the initial segment
else
// mark the chain using both ends of the initial segment
{
{
chainMarkedSegments
(
aTrace
->
m_Start
,
layerMask
,
&
trackList
);
chainMarkedSegments
(
aTrace
->
GetStart
()
,
layerMask
,
&
trackList
);
chainMarkedSegments
(
aTrace
->
m_End
,
layerMask
,
&
trackList
);
chainMarkedSegments
(
aTrace
->
GetEnd
()
,
layerMask
,
&
trackList
);
}
}
// Now examine selected vias and flag them if they are on the track
// Now examine selected vias and flag them if they are on the track
...
@@ -1909,7 +1909,7 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
...
@@ -1909,7 +1909,7 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
layerMask
=
via
->
ReturnMaskLayer
();
layerMask
=
via
->
ReturnMaskLayer
();
TRACK
*
track
=
::
GetTrace
(
m_Track
,
NULL
,
via
->
m_Start
,
layerMask
);
TRACK
*
track
=
::
GetTrace
(
m_Track
,
NULL
,
via
->
GetStart
()
,
layerMask
);
// GetTrace does not consider tracks flagged BUSY.
// GetTrace does not consider tracks flagged BUSY.
// So if no connected track found, this via is on the current track
// So if no connected track found, this via is on the current track
...
@@ -1931,7 +1931,7 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
...
@@ -1931,7 +1931,7 @@ TRACK* BOARD::MarkTrace( TRACK* aTrace, int* aCount,
*/
*/
int
layer
=
track
->
GetLayer
();
int
layer
=
track
->
GetLayer
();
while
(
(
track
=
::
GetTrace
(
track
->
Next
(),
NULL
,
via
->
m_Start
,
layerMask
)
)
!=
NULL
)
while
(
(
track
=
::
GetTrace
(
track
->
Next
(),
NULL
,
via
->
GetStart
()
,
layerMask
)
)
!=
NULL
)
{
{
if
(
layer
!=
track
->
GetLayer
()
)
if
(
layer
!=
track
->
GetLayer
()
)
{
{
...
@@ -2159,21 +2159,21 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
...
@@ -2159,21 +2159,21 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
* The new segment starts from aPosition and ends at the end point of
* The new segment starts from aPosition and ends at the end point of
* aSegment. The original segment now ends at aPosition.
* aSegment. The original segment now ends at aPosition.
*/
*/
if
(
aSegment
->
m_Start
==
aPosition
||
aSegment
->
m_End
==
aPosition
)
if
(
aSegment
->
GetStart
()
==
aPosition
||
aSegment
->
GetEnd
()
==
aPosition
)
return
NULL
;
return
NULL
;
/* A via is a good lock point */
/* A via is a good lock point */
if
(
aSegment
->
Type
()
==
PCB_VIA_T
)
if
(
aSegment
->
Type
()
==
PCB_VIA_T
)
{
{
aPosition
=
aSegment
->
m_Start
;
aPosition
=
aSegment
->
GetStart
()
;
return
aSegment
;
return
aSegment
;
}
}
// Calculation coordinate of intermediate point relative to the start point of aSegment
// Calculation coordinate of intermediate point relative to the start point of aSegment
wxPoint
delta
=
aSegment
->
m_End
-
aSegment
->
m_Start
;
wxPoint
delta
=
aSegment
->
GetEnd
()
-
aSegment
->
GetStart
()
;
// calculate coordinates of aPosition relative to aSegment->
m_Start
// calculate coordinates of aPosition relative to aSegment->
GetStart()
wxPoint
lockPoint
=
aPosition
-
aSegment
->
m_Start
;
wxPoint
lockPoint
=
aPosition
-
aSegment
->
GetStart
()
;
// lockPoint must be on aSegment:
// lockPoint must be on aSegment:
// Ensure lockPoint.y/lockPoint.y = delta.y/delta.x
// Ensure lockPoint.y/lockPoint.y = delta.y/delta.x
...
@@ -2185,11 +2185,11 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
...
@@ -2185,11 +2185,11 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
/* Create the intermediate point (that is to say creation of a new
/* Create the intermediate point (that is to say creation of a new
* segment, beginning at the intermediate point.
* segment, beginning at the intermediate point.
*/
*/
lockPoint
+=
aSegment
->
m_Start
;
lockPoint
+=
aSegment
->
GetStart
()
;
TRACK
*
newTrack
=
(
TRACK
*
)
aSegment
->
Clone
();
TRACK
*
newTrack
=
(
TRACK
*
)
aSegment
->
Clone
();
// The new segment begins at the new point,
// The new segment begins at the new point,
newTrack
->
m_Start
=
lockPoint
;
newTrack
->
SetStart
(
lockPoint
)
;
newTrack
->
start
=
aSegment
;
newTrack
->
start
=
aSegment
;
newTrack
->
SetState
(
BEGIN_ONPAD
,
OFF
);
newTrack
->
SetState
(
BEGIN_ONPAD
,
OFF
);
...
@@ -2211,7 +2211,7 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
...
@@ -2211,7 +2211,7 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS
}
}
// Old track segment now ends at new point.
// Old track segment now ends at new point.
aSegment
->
m_End
=
lockPoint
;
aSegment
->
SetEnd
(
lockPoint
)
;
aSegment
->
end
=
newTrack
;
aSegment
->
end
=
newTrack
;
aSegment
->
SetState
(
END_ONPAD
,
OFF
);
aSegment
->
SetState
(
END_ONPAD
,
OFF
);
...
...
pcbnew/class_track.cpp
View file @
3e18fa42
...
@@ -98,13 +98,13 @@ TRACK* GetTrace( TRACK* aStartTrace, TRACK* aEndTrace, const wxPoint& aPosition,
...
@@ -98,13 +98,13 @@ TRACK* GetTrace( TRACK* aStartTrace, TRACK* aEndTrace, const wxPoint& aPosition,
{
{
if
(
PtSegm
->
GetState
(
IS_DELETED
|
BUSY
)
==
0
)
if
(
PtSegm
->
GetState
(
IS_DELETED
|
BUSY
)
==
0
)
{
{
if
(
aPosition
==
PtSegm
->
m_Start
)
if
(
aPosition
==
PtSegm
->
GetStart
()
)
{
{
if
(
aLayerMask
&
PtSegm
->
ReturnMaskLayer
()
)
if
(
aLayerMask
&
PtSegm
->
ReturnMaskLayer
()
)
return
PtSegm
;
return
PtSegm
;
}
}
if
(
aPosition
==
PtSegm
->
m_End
)
if
(
aPosition
==
PtSegm
->
GetEnd
()
)
{
{
if
(
aLayerMask
&
PtSegm
->
ReturnMaskLayer
()
)
if
(
aLayerMask
&
PtSegm
->
ReturnMaskLayer
()
)
return
PtSegm
;
return
PtSegm
;
...
...
pcbnew/class_track.h
View file @
3e18fa42
...
@@ -79,14 +79,12 @@ private:
...
@@ -79,14 +79,12 @@ private:
void
SetNext
(
EDA_ITEM
*
aNext
)
{
Pnext
=
aNext
;
}
void
SetNext
(
EDA_ITEM
*
aNext
)
{
Pnext
=
aNext
;
}
void
SetBack
(
EDA_ITEM
*
aBack
)
{
Pback
=
aBack
;
}
void
SetBack
(
EDA_ITEM
*
aBack
)
{
Pback
=
aBack
;
}
protected
:
public
:
int
m_Width
;
// Thickness of track, or via diameter
int
m_Width
;
// Thickness of track, or via diameter
wxPoint
m_Start
;
// Line start point
wxPoint
m_Start
;
// Line start point
wxPoint
m_End
;
// Line end point
wxPoint
m_End
;
// Line end point
int
m_Shape
;
// vias: shape and type, Track = shape..
int
m_Shape
;
// vias: shape and type, Track = shape..
protected
:
int
m_Drill
;
// for vias: via drill (- 1 for default value)
int
m_Drill
;
// for vias: via drill (- 1 for default value)
public
:
public
:
...
@@ -95,7 +93,6 @@ public:
...
@@ -95,7 +93,6 @@ public:
double
m_Param
;
// Auxiliary variable ( used in some computations )
double
m_Param
;
// Auxiliary variable ( used in some computations )
public
:
TRACK
(
BOARD_ITEM
*
aParent
,
KICAD_T
idtype
=
PCB_TRACE_T
);
TRACK
(
BOARD_ITEM
*
aParent
,
KICAD_T
idtype
=
PCB_TRACE_T
);
// Do not create a copy constructor. The one generated by the compiler is adequate.
// Do not create a copy constructor. The one generated by the compiler is adequate.
...
@@ -125,6 +122,9 @@ public:
...
@@ -125,6 +122,9 @@ public:
void
SetStart
(
const
wxPoint
&
aStart
)
{
m_Start
=
aStart
;
}
void
SetStart
(
const
wxPoint
&
aStart
)
{
m_Start
=
aStart
;
}
const
wxPoint
&
GetStart
()
const
{
return
m_Start
;
}
const
wxPoint
&
GetStart
()
const
{
return
m_Start
;
}
int
GetShape
()
const
{
return
m_Shape
;
}
void
SetShape
(
int
aShape
)
{
m_Shape
=
aShape
;
}
EDA_RECT
GetBoundingBox
()
const
;
EDA_RECT
GetBoundingBox
()
const
;
/**
/**
...
@@ -164,10 +164,6 @@ public:
...
@@ -164,10 +164,6 @@ public:
void
Draw
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
void
Draw
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
GR_DRAWMODE
aDrawMode
,
const
wxPoint
&
aOffset
=
ZeroOffset
);
GR_DRAWMODE
aDrawMode
,
const
wxPoint
&
aOffset
=
ZeroOffset
);
/* divers */
int
GetShape
()
const
{
return
m_Shape
&
0xFF
;
}
void
SetShape
(
int
aShape
)
{
m_Shape
=
aShape
;
}
/**
/**
* Function TransformShapeWithClearanceToPolygon
* Function TransformShapeWithClearanceToPolygon
* Convert the track shape to a closed polygon
* Convert the track shape to a closed polygon
...
...
pcbnew/clean.cpp
View file @
3e18fa42
...
@@ -218,8 +218,8 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -218,8 +218,8 @@ bool TRACKS_CLEANER::clean_vias()
// Correct via m_End defects (if any)
// Correct via m_End defects (if any)
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
{
{
if
(
track
->
m_Start
!=
track
->
m_End
)
if
(
track
->
GetStart
()
!=
track
->
GetEnd
()
)
track
->
m_End
=
track
->
m_Start
;
track
->
SetEnd
(
track
->
GetStart
()
)
;
}
}
if
(
track
->
GetShape
()
!=
VIA_THROUGH
)
if
(
track
->
GetShape
()
!=
VIA_THROUGH
)
...
@@ -232,10 +232,10 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -232,10 +232,10 @@ bool TRACKS_CLEANER::clean_vias()
{
{
next_track
=
alt_track
->
Next
();
next_track
=
alt_track
->
Next
();
if
(
alt_track
->
m_Shape
!=
VIA_THROUGH
)
if
(
alt_track
->
GetShape
()
!=
VIA_THROUGH
)
continue
;
continue
;
if
(
alt_track
->
m_Start
!=
track
->
m_Start
)
if
(
alt_track
->
GetStart
()
!=
track
->
GetStart
()
)
continue
;
continue
;
// delete via
// delete via
...
@@ -250,7 +250,7 @@ bool TRACKS_CLEANER::clean_vias()
...
@@ -250,7 +250,7 @@ bool TRACKS_CLEANER::clean_vias()
{
{
next_track
=
track
->
Next
();
next_track
=
track
->
Next
();
if
(
track
->
m_Shape
!=
VIA_THROUGH
)
if
(
track
->
GetShape
()
!=
VIA_THROUGH
)
continue
;
continue
;
// Examine the list of connected pads:
// Examine the list of connected pads:
...
@@ -319,13 +319,13 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -319,13 +319,13 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
{
{
if
(
track
->
Type
()
!=
PCB_VIA_T
)
if
(
track
->
Type
()
!=
PCB_VIA_T
)
{
{
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
m_Start
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
GetStart
()
,
track
->
GetLayer
()
);
track
->
GetLayer
()
);
}
}
else
else
{
{
((
SEGVIA
*
)
track
)
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
((
SEGVIA
*
)
track
)
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
m_Start
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
GetStart
()
,
top_layer
,
bottom_layer
);
top_layer
,
bottom_layer
);
}
}
}
}
...
@@ -352,7 +352,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -352,7 +352,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
if
(
other
==
NULL
)
if
(
other
==
NULL
)
{
{
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
via
->
m_Start
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
via
->
GetStart
()
,
bottom_layer
,
top_layer
);
bottom_layer
,
top_layer
);
}
}
...
@@ -374,13 +374,13 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -374,13 +374,13 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
{
{
if
(
track
->
Type
()
!=
PCB_VIA_T
)
if
(
track
->
Type
()
!=
PCB_VIA_T
)
{
{
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
m_End
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
GetEnd
()
,
track
->
GetLayer
()
);
track
->
GetLayer
()
);
}
}
else
else
{
{
((
SEGVIA
*
)
track
)
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
((
SEGVIA
*
)
track
)
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
m_End
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
track
->
GetEnd
()
,
top_layer
,
bottom_layer
);
top_layer
,
bottom_layer
);
}
}
}
}
...
@@ -408,7 +408,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
...
@@ -408,7 +408,7 @@ bool TRACKS_CLEANER::deleteUnconnectedTracks()
if
(
other
==
NULL
)
if
(
other
==
NULL
)
{
{
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
via
->
m_End
,
zone
=
m_Brd
->
HitTestForAnyFilledArea
(
via
->
GetEnd
()
,
bottom_layer
,
top_layer
);
bottom_layer
,
top_layer
);
}
}
...
@@ -472,12 +472,12 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -472,12 +472,12 @@ bool TRACKS_CLEANER::clean_segments()
if
(
segment
->
GetNet
()
!=
other
->
GetNet
()
)
if
(
segment
->
GetNet
()
!=
other
->
GetNet
()
)
break
;
break
;
if
(
(
segment
->
m_Start
==
other
->
m_Start
)
&&
if
(
(
segment
->
GetStart
()
==
other
->
GetStart
()
)
&&
(
segment
->
m_End
==
other
->
m_End
)
)
(
segment
->
GetEnd
()
==
other
->
GetEnd
()
)
)
erase
=
true
;
erase
=
true
;
if
(
(
segment
->
m_Start
==
other
->
m_End
)
&&
if
(
(
segment
->
GetStart
()
==
other
->
GetEnd
()
)
&&
(
segment
->
m_End
==
other
->
m_Start
)
)
(
segment
->
GetEnd
()
==
other
->
GetStart
()
)
)
erase
=
true
;
erase
=
true
;
// Delete redundant point
// Delete redundant point
...
@@ -511,7 +511,7 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -511,7 +511,7 @@ bool TRACKS_CLEANER::clean_segments()
if
(
segStart
)
if
(
segStart
)
{
{
// the two segments must have the same width
// the two segments must have the same width
if
(
segment
->
m_Width
!=
segStart
->
m_Width
)
if
(
segment
->
GetWidth
()
!=
segStart
->
GetWidth
()
)
break
;
break
;
// it cannot be a via
// it cannot be a via
...
@@ -550,7 +550,7 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -550,7 +550,7 @@ bool TRACKS_CLEANER::clean_segments()
if
(
segEnd
)
if
(
segEnd
)
{
{
if
(
segment
->
m_Width
!=
segEnd
->
m_Width
)
if
(
segment
->
GetWidth
()
!=
segEnd
->
GetWidth
()
)
break
;
break
;
if
(
segEnd
->
Type
()
!=
PCB_TRACE_T
)
if
(
segEnd
->
Type
()
!=
PCB_TRACE_T
)
...
@@ -607,7 +607,7 @@ bool TRACKS_CLEANER::clean_segments()
...
@@ -607,7 +607,7 @@ bool TRACKS_CLEANER::clean_segments()
TRACK
*
TRACKS_CLEANER
::
mergeCollinearSegmentIfPossible
(
TRACK
*
aTrackRef
,
TRACK
*
aCandidate
,
TRACK
*
TRACKS_CLEANER
::
mergeCollinearSegmentIfPossible
(
TRACK
*
aTrackRef
,
TRACK
*
aCandidate
,
int
aEndType
)
int
aEndType
)
{
{
if
(
aTrackRef
->
m_Width
!=
aCandidate
->
m_Width
)
if
(
aTrackRef
->
GetWidth
()
!=
aCandidate
->
GetWidth
()
)
return
NULL
;
return
NULL
;
bool
is_colinear
=
false
;
bool
is_colinear
=
false
;
...
@@ -615,20 +615,20 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
...
@@ -615,20 +615,20 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
// Trivial case: superimposed tracks ( tracks, not vias ):
// Trivial case: superimposed tracks ( tracks, not vias ):
if
(
aTrackRef
->
Type
()
==
PCB_TRACE_T
&&
aCandidate
->
Type
()
==
PCB_TRACE_T
)
if
(
aTrackRef
->
Type
()
==
PCB_TRACE_T
&&
aCandidate
->
Type
()
==
PCB_TRACE_T
)
{
{
if
(
(
aTrackRef
->
m_Start
==
aCandidate
->
m_Start
)
&&
if
(
(
aTrackRef
->
GetStart
()
==
aCandidate
->
GetStart
()
)
&&
(
aTrackRef
->
m_End
==
aCandidate
->
m_End
)
)
(
aTrackRef
->
GetEnd
()
==
aCandidate
->
GetEnd
()
)
)
return
aCandidate
;
return
aCandidate
;
if
(
(
aTrackRef
->
m_Start
==
aCandidate
->
m_End
)
&&
if
(
(
aTrackRef
->
GetStart
()
==
aCandidate
->
GetEnd
()
)
&&
(
aTrackRef
->
m_End
==
aCandidate
->
m_Start
)
)
(
aTrackRef
->
GetEnd
()
==
aCandidate
->
GetStart
()
)
)
return
aCandidate
;
return
aCandidate
;
}
}
int
refdx
=
aTrackRef
->
m_End
.
x
-
aTrackRef
->
m_Start
.
x
;
int
refdx
=
aTrackRef
->
GetEnd
().
x
-
aTrackRef
->
GetStart
()
.
x
;
int
refdy
=
aTrackRef
->
m_End
.
y
-
aTrackRef
->
m_Start
.
y
;
int
refdy
=
aTrackRef
->
GetEnd
().
y
-
aTrackRef
->
GetStart
()
.
y
;
int
segmdx
=
aCandidate
->
m_End
.
x
-
aCandidate
->
m_Start
.
x
;
int
segmdx
=
aCandidate
->
GetEnd
().
x
-
aCandidate
->
GetStart
()
.
x
;
int
segmdy
=
aCandidate
->
m_End
.
y
-
aCandidate
->
m_Start
.
y
;
int
segmdy
=
aCandidate
->
GetEnd
().
y
-
aCandidate
->
GetStart
()
.
y
;
// test for vertical alignment (easy to handle)
// test for vertical alignment (easy to handle)
if
(
refdx
==
0
)
if
(
refdx
==
0
)
...
@@ -673,16 +673,16 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
...
@@ -673,16 +673,16 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
/* change the common point coordinate of pt_segm to use the other point
/* change the common point coordinate of pt_segm to use the other point
* of pt_segm (pt_segm will be removed later) */
* of pt_segm (pt_segm will be removed later) */
if
(
aTrackRef
->
m_Start
==
aCandidate
->
m_Start
)
if
(
aTrackRef
->
GetStart
()
==
aCandidate
->
GetStart
()
)
{
{
aTrackRef
->
m_Start
=
aCandidate
->
m_End
;
aTrackRef
->
SetStart
(
aCandidate
->
GetEnd
())
;
aTrackRef
->
start
=
aCandidate
->
end
;
aTrackRef
->
start
=
aCandidate
->
end
;
aTrackRef
->
SetState
(
START_ON_PAD
,
aCandidate
->
GetState
(
END_ON_PAD
)
);
aTrackRef
->
SetState
(
START_ON_PAD
,
aCandidate
->
GetState
(
END_ON_PAD
)
);
return
aCandidate
;
return
aCandidate
;
}
}
else
else
{
{
aTrackRef
->
m_Start
=
aCandidate
->
m_Start
;
aTrackRef
->
SetStart
(
aCandidate
->
GetStart
()
)
;
aTrackRef
->
start
=
aCandidate
->
start
;
aTrackRef
->
start
=
aCandidate
->
start
;
aTrackRef
->
SetState
(
START_ON_PAD
,
aCandidate
->
GetState
(
START_ON_PAD
)
);
aTrackRef
->
SetState
(
START_ON_PAD
,
aCandidate
->
GetState
(
START_ON_PAD
)
);
return
aCandidate
;
return
aCandidate
;
...
@@ -696,16 +696,16 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
...
@@ -696,16 +696,16 @@ TRACK* TRACKS_CLEANER::mergeCollinearSegmentIfPossible( TRACK* aTrackRef, TRACK*
/* change the common point coordinate of pt_segm to use the other point
/* change the common point coordinate of pt_segm to use the other point
* of pt_segm (pt_segm will be removed later) */
* of pt_segm (pt_segm will be removed later) */
if
(
aTrackRef
->
m_End
==
aCandidate
->
m_Start
)
if
(
aTrackRef
->
GetEnd
()
==
aCandidate
->
GetStart
()
)
{
{
aTrackRef
->
m_End
=
aCandidate
->
m_End
;
aTrackRef
->
SetEnd
(
aCandidate
->
GetEnd
()
)
;
aTrackRef
->
end
=
aCandidate
->
end
;
aTrackRef
->
end
=
aCandidate
->
end
;
aTrackRef
->
SetState
(
END_ON_PAD
,
aCandidate
->
GetState
(
END_ON_PAD
)
);
aTrackRef
->
SetState
(
END_ON_PAD
,
aCandidate
->
GetState
(
END_ON_PAD
)
);
return
aCandidate
;
return
aCandidate
;
}
}
else
else
{
{
aTrackRef
->
m_End
=
aCandidate
->
m_Start
;
aTrackRef
->
SetEnd
(
aCandidate
->
GetStart
()
)
;
aTrackRef
->
end
=
aCandidate
->
start
;
aTrackRef
->
end
=
aCandidate
->
start
;
aTrackRef
->
SetState
(
END_ON_PAD
,
aCandidate
->
GetState
(
START_ON_PAD
)
);
aTrackRef
->
SetState
(
END_ON_PAD
,
aCandidate
->
GetState
(
START_ON_PAD
)
);
return
aCandidate
;
return
aCandidate
;
...
...
pcbnew/connect.cpp
View file @
3e18fa42
...
@@ -264,11 +264,11 @@ void CONNECTIONS::BuildTracksCandidatesList( TRACK * aBegin, TRACK * aEnd)
...
@@ -264,11 +264,11 @@ void CONNECTIONS::BuildTracksCandidatesList( TRACK * aBegin, TRACK * aEnd)
m_candidates
.
reserve
(
ii
);
m_candidates
.
reserve
(
ii
);
for
(
TRACK
*
track
=
aBegin
;
track
;
track
=
track
->
Next
()
)
for
(
TRACK
*
track
=
aBegin
;
track
;
track
=
track
->
Next
()
)
{
{
CONNECTED_POINT
candidate
(
track
,
track
->
m_Start
);
CONNECTED_POINT
candidate
(
track
,
track
->
GetStart
()
);
m_candidates
.
push_back
(
candidate
);
m_candidates
.
push_back
(
candidate
);
if
(
track
->
Type
()
!=
PCB_VIA_T
)
if
(
track
->
Type
()
!=
PCB_VIA_T
)
{
{
CONNECTED_POINT
candidate2
(
track
,
track
->
m_End
);
CONNECTED_POINT
candidate2
(
track
,
track
->
GetEnd
()
);
m_candidates
.
push_back
(
candidate2
);
m_candidates
.
push_back
(
candidate2
);
}
}
...
@@ -304,7 +304,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack )
...
@@ -304,7 +304,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack )
int
dist_max
=
aTrack
->
GetWidth
()
/
2
;
int
dist_max
=
aTrack
->
GetWidth
()
/
2
;
static
std
::
vector
<
CONNECTED_POINT
*>
tracks_candidates
;
static
std
::
vector
<
CONNECTED_POINT
*>
tracks_candidates
;
#endif
#endif
wxPoint
position
=
aTrack
->
m_Start
;
wxPoint
position
=
aTrack
->
GetStart
()
;
for
(
int
kk
=
0
;
kk
<
2
;
kk
++
)
for
(
int
kk
=
0
;
kk
<
2
;
kk
++
)
{
{
#ifndef USE_EXTENDED_SEARCH
#ifndef USE_EXTENDED_SEARCH
...
@@ -361,7 +361,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack )
...
@@ -361,7 +361,7 @@ int CONNECTIONS::SearchConnectedTracks( const TRACK * aTrack )
if
(
aTrack
->
Type
()
==
PCB_VIA_T
)
if
(
aTrack
->
Type
()
==
PCB_VIA_T
)
break
;
break
;
position
=
aTrack
->
m_End
;
position
=
aTrack
->
GetEnd
()
;
}
}
return
count
;
return
count
;
...
...
pcbnew/drag.h
View file @
3e18fa42
...
@@ -176,7 +176,7 @@ void EraseDragList();
...
@@ -176,7 +176,7 @@ void EraseDragList();
* @param aNetCode = the net code to consider
* @param aNetCode = the net code to consider
* @param aMaxDist = max distance from aRefPos to a track end candidate to collect the track
* @param aMaxDist = max distance from aRefPos to a track end candidate to collect the track
*/
*/
void
Collect_TrackSegmentsToDrag
(
BOARD
*
aPcb
,
wxPoint
&
aRefPos
,
int
aLayerMask
,
void
Collect_TrackSegmentsToDrag
(
BOARD
*
aPcb
,
const
wxPoint
&
aRefPos
,
int
aLayerMask
,
int
aNetCode
,
int
aMaxDist
);
int
aNetCode
,
int
aMaxDist
);
/* Add aTrack to the drag list
/* Add aTrack to the drag list
...
...
pcbnew/dragsegm.cpp
View file @
3e18fa42
...
@@ -51,8 +51,8 @@ std::vector<DRAG_SEGM_PICKER> g_DragSegmentList;
...
@@ -51,8 +51,8 @@ std::vector<DRAG_SEGM_PICKER> g_DragSegmentList;
DRAG_SEGM_PICKER
::
DRAG_SEGM_PICKER
(
TRACK
*
aTrack
)
DRAG_SEGM_PICKER
::
DRAG_SEGM_PICKER
(
TRACK
*
aTrack
)
{
{
m_Track
=
aTrack
;
m_Track
=
aTrack
;
m_startInitialValue
=
m_Track
->
m_Start
;
m_startInitialValue
=
m_Track
->
GetStart
()
;
m_endInitialValue
=
m_Track
->
m_End
;
m_endInitialValue
=
m_Track
->
GetEnd
()
;
m_Pad_Start
=
m_Track
->
GetState
(
START_ON_PAD
)
?
(
D_PAD
*
)
m_Track
->
start
:
NULL
;
m_Pad_Start
=
m_Track
->
GetState
(
START_ON_PAD
)
?
(
D_PAD
*
)
m_Track
->
start
:
NULL
;
m_Pad_End
=
m_Track
->
GetState
(
END_ON_PAD
)
?
(
D_PAD
*
)
m_Track
->
end
:
NULL
;
m_Pad_End
=
m_Track
->
GetState
(
END_ON_PAD
)
?
(
D_PAD
*
)
m_Track
->
end
:
NULL
;
m_Flag
=
0
;
m_Flag
=
0
;
...
@@ -133,7 +133,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates(wxPoint aOffset)
...
@@ -133,7 +133,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates(wxPoint aOffset)
if
(
flip
)
if
(
flip
)
NEGATE
(
padoffset
.
y
);
NEGATE
(
padoffset
.
y
);
m_Track
->
m_Start
=
m_Pad_Start
->
GetPosition
()
-
aOffset
+
padoffset
;
m_Track
->
SetStart
(
m_Pad_Start
->
GetPosition
()
-
aOffset
+
padoffset
)
;
}
}
if
(
m_Pad_End
)
if
(
m_Pad_End
)
...
@@ -146,7 +146,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates(wxPoint aOffset)
...
@@ -146,7 +146,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates(wxPoint aOffset)
if
(
flip
)
if
(
flip
)
NEGATE
(
padoffset
.
y
);
NEGATE
(
padoffset
.
y
);
m_Track
->
m_End
=
m_Pad_End
->
GetPosition
()
-
aOffset
+
padoffset
;
m_Track
->
SetEnd
(
m_Pad_End
->
GetPosition
()
-
aOffset
+
padoffset
)
;
}
}
}
}
...
@@ -349,7 +349,7 @@ void AddSegmentToDragList( int flag, TRACK* aTrack )
...
@@ -349,7 +349,7 @@ void AddSegmentToDragList( int flag, TRACK* aTrack )
* aNetCode = the net code to consider
* aNetCode = the net code to consider
* aMaxDist = max distance from aRefPos to a track end candidate to collect the track
* aMaxDist = max distance from aRefPos to a track end candidate to collect the track
*/
*/
void
Collect_TrackSegmentsToDrag
(
BOARD
*
aPcb
,
wxPoint
&
aRefPos
,
int
aLayerMask
,
void
Collect_TrackSegmentsToDrag
(
BOARD
*
aPcb
,
const
wxPoint
&
aRefPos
,
int
aLayerMask
,
int
aNetCode
,
int
aMaxDist
)
int
aNetCode
,
int
aMaxDist
)
{
{
TRACK
*
track
=
aPcb
->
m_Track
->
GetStartNetCode
(
aNetCode
);
TRACK
*
track
=
aPcb
->
m_Track
->
GetStartNetCode
(
aNetCode
);
...
@@ -370,7 +370,7 @@ void Collect_TrackSegmentsToDrag( BOARD* aPcb, wxPoint& aRefPos, int aLayerMask,
...
@@ -370,7 +370,7 @@ void Collect_TrackSegmentsToDrag( BOARD* aPcb, wxPoint& aRefPos, int aLayerMask,
if
(
(
track
->
GetFlags
()
&
STARTPOINT
)
==
0
)
if
(
(
track
->
GetFlags
()
&
STARTPOINT
)
==
0
)
{
{
wxPoint
delta
=
track
->
m_Start
-
aRefPos
;
wxPoint
delta
=
track
->
GetStart
()
-
aRefPos
;
if
(
std
::
abs
(
delta
.
x
)
<=
maxdist
&&
std
::
abs
(
delta
.
y
)
<=
maxdist
)
if
(
std
::
abs
(
delta
.
x
)
<=
maxdist
&&
std
::
abs
(
delta
.
y
)
<=
maxdist
)
{
{
int
dist
=
(
int
)
hypot
(
(
double
)
delta
.
x
,
(
double
)
delta
.
y
);
int
dist
=
(
int
)
hypot
(
(
double
)
delta
.
x
,
(
double
)
delta
.
y
);
...
@@ -385,7 +385,7 @@ void Collect_TrackSegmentsToDrag( BOARD* aPcb, wxPoint& aRefPos, int aLayerMask,
...
@@ -385,7 +385,7 @@ void Collect_TrackSegmentsToDrag( BOARD* aPcb, wxPoint& aRefPos, int aLayerMask,
if
(
(
track
->
GetFlags
()
&
ENDPOINT
)
==
0
)
if
(
(
track
->
GetFlags
()
&
ENDPOINT
)
==
0
)
{
{
wxPoint
delta
=
track
->
m_End
-
aRefPos
;
wxPoint
delta
=
track
->
GetEnd
()
-
aRefPos
;
if
(
std
::
abs
(
delta
.
x
)
<=
maxdist
&&
std
::
abs
(
delta
.
y
)
<=
maxdist
)
if
(
std
::
abs
(
delta
.
x
)
<=
maxdist
&&
std
::
abs
(
delta
.
y
)
<=
maxdist
)
{
{
int
dist
=
(
int
)
hypot
(
(
double
)
delta
.
x
,
(
double
)
delta
.
y
);
int
dist
=
(
int
)
hypot
(
(
double
)
delta
.
x
,
(
double
)
delta
.
y
);
...
...
pcbnew/drc_clearance_test_functions.cpp
View file @
3e18fa42
...
@@ -165,9 +165,9 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -165,9 +165,9 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
/* In order to make some calculations more easier or faster,
/* In order to make some calculations more easier or faster,
* pads and tracks coordinates will be made relative to the reference segment origin
* pads and tracks coordinates will be made relative to the reference segment origin
*/
*/
wxPoint
origin
=
aRefSeg
->
m_Start
;
// origin will be the origin of other coordinates
wxPoint
origin
=
aRefSeg
->
GetStart
()
;
// origin will be the origin of other coordinates
m_segmEnd
=
delta
=
aRefSeg
->
m_End
-
origin
;
m_segmEnd
=
delta
=
aRefSeg
->
GetEnd
()
-
origin
;
m_segmAngle
=
0
;
m_segmAngle
=
0
;
layerMask
=
aRefSeg
->
ReturnMaskLayer
();
layerMask
=
aRefSeg
->
ReturnMaskLayer
();
...
@@ -179,7 +179,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -179,7 +179,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
// test if the via size is smaller than minimum
// test if the via size is smaller than minimum
if
(
aRefSeg
->
GetShape
()
==
VIA_MICROVIA
)
if
(
aRefSeg
->
GetShape
()
==
VIA_MICROVIA
)
{
{
if
(
aRefSeg
->
m_Width
<
netclass
->
GetuViaMinDiameter
()
)
if
(
aRefSeg
->
GetWidth
()
<
netclass
->
GetuViaMinDiameter
()
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
DRCE_TOO_SMALL_MICROVIA
,
m_currentMarker
);
DRCE_TOO_SMALL_MICROVIA
,
m_currentMarker
);
...
@@ -188,7 +188,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -188,7 +188,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
}
}
else
else
{
{
if
(
aRefSeg
->
m_Width
<
netclass
->
GetViaMinDiameter
()
)
if
(
aRefSeg
->
GetWidth
()
<
netclass
->
GetViaMinDiameter
()
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
DRCE_TOO_SMALL_VIA
,
m_currentMarker
);
DRCE_TOO_SMALL_VIA
,
m_currentMarker
);
...
@@ -199,7 +199,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -199,7 +199,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
// test if via's hole is bigger than its diameter
// test if via's hole is bigger than its diameter
// This test is necessary since the via hole size and width can be modified
// This test is necessary since the via hole size and width can be modified
// and a default via hole can be bigger than some vias sizes
// and a default via hole can be bigger than some vias sizes
if
(
aRefSeg
->
GetDrillValue
()
>
aRefSeg
->
m_Width
)
if
(
aRefSeg
->
GetDrillValue
()
>
aRefSeg
->
GetWidth
()
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
DRCE_VIA_HOLE_BIGGER
,
m_currentMarker
);
DRCE_VIA_HOLE_BIGGER
,
m_currentMarker
);
...
@@ -237,7 +237,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -237,7 +237,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
}
}
else
// This is a track segment
else
// This is a track segment
{
{
if
(
aRefSeg
->
m_Width
<
netclass
->
GetTrackMinWidth
()
)
if
(
aRefSeg
->
GetWidth
()
<
netclass
->
GetTrackMinWidth
()
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
NULL
,
DRCE_TOO_SMALL_TRACK_WIDTH
,
m_currentMarker
);
DRCE_TOO_SMALL_TRACK_WIDTH
,
m_currentMarker
);
...
@@ -303,7 +303,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -303,7 +303,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
m_padToTestPos
=
dummypad
.
GetPosition
()
-
origin
;
m_padToTestPos
=
dummypad
.
GetPosition
()
-
origin
;
if
(
!
checkClearanceSegmToPad
(
&
dummypad
,
aRefSeg
->
m_Width
,
if
(
!
checkClearanceSegmToPad
(
&
dummypad
,
aRefSeg
->
GetWidth
()
,
netclass
->
GetClearance
()
)
)
netclass
->
GetClearance
()
)
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
pad
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
pad
,
...
@@ -324,7 +324,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -324,7 +324,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
shape_pos
=
pad
->
ReturnShapePos
();
shape_pos
=
pad
->
ReturnShapePos
();
m_padToTestPos
=
shape_pos
-
origin
;
m_padToTestPos
=
shape_pos
-
origin
;
if
(
!
checkClearanceSegmToPad
(
pad
,
aRefSeg
->
m_Width
,
aRefSeg
->
GetClearance
(
pad
)
)
)
if
(
!
checkClearanceSegmToPad
(
pad
,
aRefSeg
->
GetWidth
()
,
aRefSeg
->
GetClearance
(
pad
)
)
)
{
{
m_currentMarker
=
fillMarker
(
aRefSeg
,
pad
,
m_currentMarker
=
fillMarker
(
aRefSeg
,
pad
,
DRCE_TRACK_NEAR_PAD
,
m_currentMarker
);
DRCE_TRACK_NEAR_PAD
,
m_currentMarker
);
...
@@ -355,15 +355,15 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -355,15 +355,15 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
// the minimum distance = clearance plus half the reference track
// the minimum distance = clearance plus half the reference track
// width plus half the other track's width
// width plus half the other track's width
int
w_dist
=
aRefSeg
->
GetClearance
(
track
);
int
w_dist
=
aRefSeg
->
GetClearance
(
track
);
w_dist
+=
(
aRefSeg
->
m_Width
+
track
->
m_Width
)
/
2
;
w_dist
+=
(
aRefSeg
->
GetWidth
()
+
track
->
GetWidth
()
)
/
2
;
// If the reference segment is a via, we test it here
// If the reference segment is a via, we test it here
if
(
aRefSeg
->
Type
()
==
PCB_VIA_T
)
if
(
aRefSeg
->
Type
()
==
PCB_VIA_T
)
{
{
int
angle
=
0
;
// angle du segment a tester;
int
angle
=
0
;
// angle du segment a tester;
delta
=
track
->
m_End
-
track
->
m_Start
;
delta
=
track
->
GetEnd
()
-
track
->
GetStart
()
;
segStartPoint
=
aRefSeg
->
m_Start
-
track
->
m_Start
;
segStartPoint
=
aRefSeg
->
GetStart
()
-
track
->
GetStart
()
;
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
{
{
...
@@ -399,8 +399,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -399,8 +399,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
* the segment to test in the new axis : the new X axis is the
* the segment to test in the new axis : the new X axis is the
* reference segment. We must translate and rotate the segment to test
* reference segment. We must translate and rotate the segment to test
*/
*/
segStartPoint
=
track
->
m_Start
-
origin
;
segStartPoint
=
track
->
GetStart
()
-
origin
;
segEndPoint
=
track
->
m_End
-
origin
;
segEndPoint
=
track
->
GetEnd
()
-
origin
;
RotatePoint
(
&
segStartPoint
,
m_segmAngle
);
RotatePoint
(
&
segStartPoint
,
m_segmAngle
);
RotatePoint
(
&
segEndPoint
,
m_segmAngle
);
RotatePoint
(
&
segEndPoint
,
m_segmAngle
);
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
...
@@ -529,8 +529,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -529,8 +529,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
else
// The drc error is due to the starting or the ending point of the reference segment
else
// The drc error is due to the starting or the ending point of the reference segment
{
{
// Test the starting and the ending point
// Test the starting and the ending point
segStartPoint
=
track
->
m_Start
;
segStartPoint
=
track
->
GetStart
()
;
segEndPoint
=
track
->
m_End
;
segEndPoint
=
track
->
GetEnd
()
;
delta
=
segEndPoint
-
segStartPoint
;
delta
=
segEndPoint
-
segStartPoint
;
/* Compute the segment orientation (angle) en 0,1 degre */
/* Compute the segment orientation (angle) en 0,1 degre */
...
@@ -542,8 +542,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
...
@@ -542,8 +542,8 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads )
/* Comute the reference segment coordinates relatives to a
/* Comute the reference segment coordinates relatives to a
* X axis = current tested segment
* X axis = current tested segment
*/
*/
wxPoint
relStartPos
=
aRefSeg
->
m_Start
-
segStartPoint
;
wxPoint
relStartPos
=
aRefSeg
->
GetStart
()
-
segStartPoint
;
wxPoint
relEndPos
=
aRefSeg
->
m_End
-
segStartPoint
;
wxPoint
relEndPos
=
aRefSeg
->
GetEnd
()
-
segStartPoint
;
RotatePoint
(
&
relStartPos
,
angle
);
RotatePoint
(
&
relStartPos
,
angle
);
RotatePoint
(
&
relEndPos
,
angle
);
RotatePoint
(
&
relEndPos
,
angle
);
...
...
pcbnew/drc_marker_functions.cpp
View file @
3e18fa42
...
@@ -70,17 +70,17 @@ MARKER_PCB* DRC::fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, M
...
@@ -70,17 +70,17 @@ MARKER_PCB* DRC::fillMarker( TRACK* aTrack, BOARD_ITEM* aItem, int aErrorCode, M
posB
=
track
->
GetPosition
();
posB
=
track
->
GetPosition
();
wxPoint
endPos
=
track
->
m_End
;
wxPoint
endPos
=
track
->
GetEnd
()
;
// either of aItem's start or end will be used for the marker position
// either of aItem's start or end will be used for the marker position
// first assume start, then switch at end if needed. decision made on
// first assume start, then switch at end if needed. decision made on
// distance from end of aTrack.
// distance from end of aTrack.
position
=
track
->
m_Start
;
position
=
track
->
GetStart
()
;
double
dToEnd
=
hypot
(
endPos
.
x
-
aTrack
->
m_End
.
x
,
double
dToEnd
=
hypot
(
endPos
.
x
-
aTrack
->
GetEnd
()
.
x
,
endPos
.
y
-
aTrack
->
m_End
.
y
);
endPos
.
y
-
aTrack
->
GetEnd
()
.
y
);
double
dToStart
=
hypot
(
position
.
x
-
aTrack
->
m_End
.
x
,
double
dToStart
=
hypot
(
position
.
x
-
aTrack
->
GetEnd
()
.
x
,
position
.
y
-
aTrack
->
m_End
.
y
);
position
.
y
-
aTrack
->
GetEnd
()
.
y
);
if
(
dToEnd
<
dToStart
)
if
(
dToEnd
<
dToStart
)
position
=
endPos
;
position
=
endPos
;
...
...
pcbnew/edit_track_width.cpp
View file @
3e18fa42
...
@@ -38,7 +38,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
...
@@ -38,7 +38,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
if
(
aUseNetclassValue
)
if
(
aUseNetclassValue
)
net
=
GetBoard
()
->
FindNet
(
aTrackItem
->
GetNet
()
);
net
=
GetBoard
()
->
FindNet
(
aTrackItem
->
GetNet
()
);
initial_width
=
aTrackItem
->
m_Width
;
initial_width
=
aTrackItem
->
GetWidth
()
;
if
(
net
)
if
(
net
)
new_width
=
net
->
GetTrackWidth
();
new_width
=
net
->
GetTrackWidth
();
...
@@ -60,7 +60,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
...
@@ -60,7 +60,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
new_drill
=
GetBoard
()
->
GetCurrentViaDrill
();
new_drill
=
GetBoard
()
->
GetCurrentViaDrill
();
}
}
if
(
aTrackItem
->
m_Shape
==
VIA_MICROVIA
)
if
(
aTrackItem
->
GetShape
()
==
VIA_MICROVIA
)
{
{
if
(
net
)
if
(
net
)
new_width
=
net
->
GetViaSize
();
new_width
=
net
->
GetViaSize
();
...
@@ -69,7 +69,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
...
@@ -69,7 +69,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
}
}
}
}
aTrackItem
->
m_Width
=
new_width
;
aTrackItem
->
SetWidth
(
new_width
)
;
// make a DRC test because the new size is bigger than the old size
// make a DRC test because the new size is bigger than the old size
if
(
initial_width
<
new_width
)
if
(
initial_width
<
new_width
)
...
@@ -98,11 +98,11 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
...
@@ -98,11 +98,11 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
if
(
aItemsListPicker
)
if
(
aItemsListPicker
)
{
{
aTrackItem
->
m_Width
=
initial_width
;
aTrackItem
->
SetWidth
(
initial_width
)
;
ITEM_PICKER
picker
(
aTrackItem
,
UR_CHANGED
);
ITEM_PICKER
picker
(
aTrackItem
,
UR_CHANGED
);
picker
.
SetLink
(
aTrackItem
->
Clone
()
);
picker
.
SetLink
(
aTrackItem
->
Clone
()
);
aItemsListPicker
->
PushItem
(
picker
);
aItemsListPicker
->
PushItem
(
picker
);
aTrackItem
->
m_Width
=
new_width
;
aTrackItem
->
SetWidth
(
new_width
)
;
if
(
aTrackItem
->
Type
()
==
PCB_VIA_T
)
if
(
aTrackItem
->
Type
()
==
PCB_VIA_T
)
{
{
...
@@ -116,7 +116,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
...
@@ -116,7 +116,7 @@ bool PCB_EDIT_FRAME::SetTrackSegmentWidth( TRACK* aTrackItem,
}
}
else
else
{
{
aTrackItem
->
m_Width
=
initial_width
;
aTrackItem
->
SetWidth
(
initial_width
)
;
}
}
return
change_ok
;
return
change_ok
;
...
...
pcbnew/editrack-part2.cpp
View file @
3e18fa42
...
@@ -62,13 +62,13 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
...
@@ -62,13 +62,13 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
}
}
// Avoid more than one via on the current location:
// Avoid more than one via on the current location:
if
(
GetBoard
()
->
GetViaByPosition
(
g_CurrentTrackSegment
->
m_End
,
if
(
GetBoard
()
->
GetViaByPosition
(
g_CurrentTrackSegment
->
GetEnd
()
,
g_CurrentTrackSegment
->
GetLayer
()
)
)
g_CurrentTrackSegment
->
GetLayer
()
)
)
return
false
;
return
false
;
for
(
TRACK
*
segm
=
g_FirstTrackSegment
;
segm
;
segm
=
segm
->
Next
()
)
for
(
TRACK
*
segm
=
g_FirstTrackSegment
;
segm
;
segm
=
segm
->
Next
()
)
{
{
if
(
segm
->
Type
()
==
PCB_VIA_T
&&
g_CurrentTrackSegment
->
m_End
==
segm
->
m_Start
)
if
(
segm
->
Type
()
==
PCB_VIA_T
&&
g_CurrentTrackSegment
->
GetEnd
()
==
segm
->
GetStart
()
)
return
false
;
return
false
;
}
}
...
@@ -98,10 +98,11 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
...
@@ -98,10 +98,11 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
// create the via
// create the via
SEGVIA
*
via
=
new
SEGVIA
(
GetBoard
()
);
SEGVIA
*
via
=
new
SEGVIA
(
GetBoard
()
);
via
->
SetFlags
(
IS_NEW
);
via
->
SetFlags
(
IS_NEW
);
via
->
m_Shape
=
GetDesignSettings
().
m_CurrentViaType
;
via
->
SetShape
(
GetDesignSettings
().
m_CurrentViaType
)
;
via
->
m_Width
=
GetBoard
()
->
GetCurrentViaSize
(
);
via
->
SetWidth
(
GetBoard
()
->
GetCurrentViaSize
()
);
via
->
SetNet
(
GetBoard
()
->
GetHighLightNetCode
()
);
via
->
SetNet
(
GetBoard
()
->
GetHighLightNetCode
()
);
via
->
m_Start
=
via
->
m_End
=
g_CurrentTrackSegment
->
m_End
;
via
->
SetEnd
(
g_CurrentTrackSegment
->
GetEnd
()
);
via
->
SetStart
(
g_CurrentTrackSegment
->
GetEnd
()
);
// Usual via is from copper to component.
// Usual via is from copper to component.
// layer pair is LAYER_N_BACK and LAYER_N_FRONT.
// layer pair is LAYER_N_BACK and LAYER_N_FRONT.
...
@@ -140,7 +141,7 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
...
@@ -140,7 +141,7 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
via
->
SetLayerPair
(
first_layer
,
last_layer
);
via
->
SetLayerPair
(
first_layer
,
last_layer
);
{
{
NETINFO_ITEM
*
net
=
GetBoard
()
->
FindNet
(
via
->
GetNet
()
);
NETINFO_ITEM
*
net
=
GetBoard
()
->
FindNet
(
via
->
GetNet
()
);
via
->
m_Width
=
net
->
GetMicroViaSize
(
);
via
->
SetWidth
(
net
->
GetMicroViaSize
()
);
}
}
}
}
break
;
break
;
...
@@ -198,7 +199,8 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
...
@@ -198,7 +199,8 @@ bool PCB_EDIT_FRAME::Other_Layer_Route( TRACK* aTrack, wxDC* DC )
/* the start point is the via position and the end point is the cursor
/* the start point is the via position and the end point is the cursor
* which also is on the via (will change when moving mouse)
* which also is on the via (will change when moving mouse)
*/
*/
track
->
m_Start
=
track
->
m_End
=
via
->
m_Start
;
track
->
SetEnd
(
via
->
GetStart
()
);
track
->
SetStart
(
via
->
GetStart
()
);
g_CurrentTrackList
.
PushBack
(
track
);
g_CurrentTrackList
.
PushBack
(
track
);
...
...
pcbnew/editrack.cpp
View file @
3e18fa42
This diff is collapsed.
Click to expand it.
pcbnew/event_handlers_tracks_vias_sizes.cpp
View file @
3e18fa42
...
@@ -111,9 +111,12 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event )
...
@@ -111,9 +111,12 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event )
// Refresh track in progress, if any, by forcing a mouse event,
// Refresh track in progress, if any, by forcing a mouse event,
// to call the current function attached to the mouse
// to call the current function attached to the mouse
if
(
m_canvas
->
IsMouseCaptured
()
)
/*
if( m_canvas->IsMouseCaptured() )
{
{
wxMouseEvent event(wxEVT_MOTION);
wxMouseEvent event(wxEVT_MOTION);
wxPostEvent( m_canvas, event );
wxPostEvent( m_canvas, event );
}
}*/
//+hp
//Refresh canvas, that we can see changes instantly. I use this because it dont,t throw mouse up-left corner.
m_canvas
->
Refresh
();
}
}
pcbnew/export_gencad.cpp
View file @
3e18fa42
...
@@ -225,8 +225,8 @@ static int ViaSort( const void* aRefptr, const void* aObjptr )
...
@@ -225,8 +225,8 @@ static int ViaSort( const void* aRefptr, const void* aObjptr )
TRACK
*
padref
=
*
(
TRACK
**
)
aRefptr
;
TRACK
*
padref
=
*
(
TRACK
**
)
aRefptr
;
TRACK
*
padcmp
=
*
(
TRACK
**
)
aObjptr
;
TRACK
*
padcmp
=
*
(
TRACK
**
)
aObjptr
;
if
(
padref
->
m_Width
!=
padcmp
->
m_Width
)
if
(
padref
->
GetWidth
()
!=
padcmp
->
GetWidth
()
)
return
padref
->
m_Width
-
padcmp
->
m_Width
;
return
padref
->
GetWidth
()
-
padcmp
->
GetWidth
()
;
if
(
padref
->
GetDrillValue
()
!=
padcmp
->
GetDrillValue
()
)
if
(
padref
->
GetDrillValue
()
!=
padcmp
->
GetDrillValue
()
)
return
padref
->
GetDrillValue
()
-
padcmp
->
GetDrillValue
();
return
padref
->
GetDrillValue
()
-
padcmp
->
GetDrillValue
();
...
@@ -292,10 +292,10 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
...
@@ -292,10 +292,10 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
old_via
=
via
;
old_via
=
via
;
viastacks
.
push_back
(
via
);
viastacks
.
push_back
(
via
);
fprintf
(
aFile
,
"PAD V%d.%d.%X ROUND %g
\n
CIRCLE 0 0 %g
\n
"
,
fprintf
(
aFile
,
"PAD V%d.%d.%X ROUND %g
\n
CIRCLE 0 0 %g
\n
"
,
via
->
m_Width
,
via
->
GetDrillValue
(),
via
->
GetWidth
()
,
via
->
GetDrillValue
(),
via
->
ReturnMaskLayer
(),
via
->
ReturnMaskLayer
(),
via
->
GetDrillValue
()
/
SCALE_FACTOR
,
via
->
GetDrillValue
()
/
SCALE_FACTOR
,
via
->
m_Width
/
(
SCALE_FACTOR
*
2
)
);
via
->
GetWidth
()
/
(
SCALE_FACTOR
*
2
)
);
}
}
// Emit component pads
// Emit component pads
...
@@ -436,7 +436,7 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
...
@@ -436,7 +436,7 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
TRACK
*
via
=
viastacks
[
i
];
TRACK
*
via
=
viastacks
[
i
];
unsigned
mask
=
via
->
ReturnMaskLayer
()
&
master_layermask
;
unsigned
mask
=
via
->
ReturnMaskLayer
()
&
master_layermask
;
fprintf
(
aFile
,
"PADSTACK VIA%d.%d.%X %g
\n
"
,
fprintf
(
aFile
,
"PADSTACK VIA%d.%d.%X %g
\n
"
,
via
->
m_Width
,
via
->
GetDrillValue
(),
mask
,
via
->
GetWidth
()
,
via
->
GetDrillValue
(),
mask
,
via
->
GetDrillValue
()
/
SCALE_FACTOR
);
via
->
GetDrillValue
()
/
SCALE_FACTOR
);
for
(
int
layer
=
0
;
layer
<
32
;
layer
++
)
for
(
int
layer
=
0
;
layer
<
32
;
layer
++
)
...
@@ -444,7 +444,7 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
...
@@ -444,7 +444,7 @@ static void CreatePadsShapesSection( FILE* aFile, BOARD* aPcb )
if
(
mask
&
(
1
<<
layer
)
)
if
(
mask
&
(
1
<<
layer
)
)
{
{
fprintf
(
aFile
,
"PAD V%d.%d.%X %s 0 0
\n
"
,
fprintf
(
aFile
,
"PAD V%d.%d.%X %s 0 0
\n
"
,
via
->
m_Width
,
via
->
GetDrillValue
(),
via
->
GetWidth
()
,
via
->
GetDrillValue
(),
mask
,
mask
,
TO_UTF8
(
GenCADLayerName
[
layer
]
)
);
TO_UTF8
(
GenCADLayerName
[
layer
]
)
);
}
}
...
@@ -736,7 +736,7 @@ static int TrackListSortByNetcode( const void* refptr, const void* objptr )
...
@@ -736,7 +736,7 @@ static int TrackListSortByNetcode( const void* refptr, const void* objptr )
if
(
(
diff
=
ref
->
GetNet
()
-
cmp
->
GetNet
()
)
)
if
(
(
diff
=
ref
->
GetNet
()
-
cmp
->
GetNet
()
)
)
return
diff
;
return
diff
;
if
(
(
diff
=
ref
->
m_Width
-
cmp
->
m_Width
)
)
if
(
(
diff
=
ref
->
GetWidth
()
-
cmp
->
GetWidth
()
)
)
return
diff
;
return
diff
;
if
(
(
diff
=
ref
->
GetLayer
()
-
cmp
->
GetLayer
()
)
)
if
(
(
diff
=
ref
->
GetLayer
()
-
cmp
->
GetLayer
()
)
)
...
@@ -814,10 +814,10 @@ static void CreateRoutesSection( FILE* aFile, BOARD* aPcb )
...
@@ -814,10 +814,10 @@ static void CreateRoutesSection( FILE* aFile, BOARD* aPcb )
fprintf
(
aFile
,
"ROUTE %s
\n
"
,
TO_UTF8
(
netname
)
);
fprintf
(
aFile
,
"ROUTE %s
\n
"
,
TO_UTF8
(
netname
)
);
}
}
if
(
old_width
!=
track
->
m_Width
)
if
(
old_width
!=
track
->
GetWidth
()
)
{
{
old_width
=
track
->
m_Width
;
old_width
=
track
->
GetWidth
()
;
fprintf
(
aFile
,
"TRACK TRACK%d
\n
"
,
track
->
m_Width
);
fprintf
(
aFile
,
"TRACK TRACK%d
\n
"
,
track
->
GetWidth
()
);
}
}
if
(
(
track
->
Type
()
==
PCB_TRACE_T
)
||
(
track
->
Type
()
==
PCB_ZONE_T
)
)
if
(
(
track
->
Type
()
==
PCB_TRACE_T
)
||
(
track
->
Type
()
==
PCB_ZONE_T
)
)
...
@@ -830,15 +830,15 @@ static void CreateRoutesSection( FILE* aFile, BOARD* aPcb )
...
@@ -830,15 +830,15 @@ static void CreateRoutesSection( FILE* aFile, BOARD* aPcb )
}
}
fprintf
(
aFile
,
"LINE %g %g %g %g
\n
"
,
fprintf
(
aFile
,
"LINE %g %g %g %g
\n
"
,
MapXTo
(
track
->
m_Start
.
x
),
MapYTo
(
track
->
m_Start
.
y
),
MapXTo
(
track
->
GetStart
().
x
),
MapYTo
(
track
->
GetStart
()
.
y
),
MapXTo
(
track
->
m_End
.
x
),
MapYTo
(
track
->
m_End
.
y
)
);
MapXTo
(
track
->
GetEnd
().
x
),
MapYTo
(
track
->
GetEnd
()
.
y
)
);
}
}
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
{
{
fprintf
(
aFile
,
"VIA VIA%d.%d.%X %g %g ALL %g via%d
\n
"
,
fprintf
(
aFile
,
"VIA VIA%d.%d.%X %g %g ALL %g via%d
\n
"
,
track
->
m_Width
,
track
->
GetDrillValue
(),
track
->
GetWidth
()
,
track
->
GetDrillValue
(),
track
->
ReturnMaskLayer
()
&
master_layermask
,
track
->
ReturnMaskLayer
()
&
master_layermask
,
MapXTo
(
track
->
m_Start
.
x
),
MapYTo
(
track
->
m_Start
.
y
),
MapXTo
(
track
->
GetStart
().
x
),
MapYTo
(
track
->
GetStart
()
.
y
),
track
->
GetDrillValue
()
/
SCALE_FACTOR
,
vianum
++
);
track
->
GetDrillValue
()
/
SCALE_FACTOR
,
vianum
++
);
}
}
}
}
...
@@ -931,35 +931,35 @@ static void CreateTracksInfoData( FILE* aFile, BOARD* aPcb )
...
@@ -931,35 +931,35 @@ static void CreateTracksInfoData( FILE* aFile, BOARD* aPcb )
for
(
track
=
aPcb
->
m_Track
;
track
!=
NULL
;
track
=
track
->
Next
()
)
for
(
track
=
aPcb
->
m_Track
;
track
!=
NULL
;
track
=
track
->
Next
()
)
{
{
if
(
last_width
!=
track
->
m_Width
)
// Find a thickness already used.
if
(
last_width
!=
track
->
GetWidth
()
)
// Find a thickness already used.
{
{
for
(
ii
=
0
;
ii
<
trackinfo
.
size
();
ii
++
)
for
(
ii
=
0
;
ii
<
trackinfo
.
size
();
ii
++
)
{
{
if
(
trackinfo
[
ii
]
==
track
->
m_Width
)
if
(
trackinfo
[
ii
]
==
track
->
GetWidth
()
)
break
;
break
;
}
}
if
(
ii
==
trackinfo
.
size
()
)
// not found
if
(
ii
==
trackinfo
.
size
()
)
// not found
trackinfo
.
push_back
(
track
->
m_Width
);
trackinfo
.
push_back
(
track
->
GetWidth
()
);
last_width
=
track
->
m_Width
;
last_width
=
track
->
GetWidth
()
;
}
}
}
}
for
(
track
=
aPcb
->
m_Zone
;
track
!=
NULL
;
track
=
track
->
Next
()
)
for
(
track
=
aPcb
->
m_Zone
;
track
!=
NULL
;
track
=
track
->
Next
()
)
{
{
if
(
last_width
!=
track
->
m_Width
)
// Find a thickness already used.
if
(
last_width
!=
track
->
GetWidth
()
)
// Find a thickness already used.
{
{
for
(
ii
=
0
;
ii
<
trackinfo
.
size
();
ii
++
)
for
(
ii
=
0
;
ii
<
trackinfo
.
size
();
ii
++
)
{
{
if
(
trackinfo
[
ii
]
==
track
->
m_Width
)
if
(
trackinfo
[
ii
]
==
track
->
GetWidth
()
)
break
;
break
;
}
}
if
(
ii
==
trackinfo
.
size
()
)
// not found
if
(
ii
==
trackinfo
.
size
()
)
// not found
trackinfo
.
push_back
(
track
->
m_Width
);
trackinfo
.
push_back
(
track
->
GetWidth
()
);
last_width
=
track
->
m_Width
;
last_width
=
track
->
GetWidth
()
;
}
}
}
}
...
...
pcbnew/export_vrml.cpp
View file @
3e18fa42
...
@@ -825,17 +825,17 @@ static void export_vrml_via( BOARD* pcb, SEGVIA* via ) //{{{
...
@@ -825,17 +825,17 @@ static void export_vrml_via( BOARD* pcb, SEGVIA* via ) //{{{
double
x
,
y
,
r
,
hole
;
double
x
,
y
,
r
,
hole
;
int
top_layer
,
bottom_layer
;
int
top_layer
,
bottom_layer
;
r
=
via
->
m_Width
/
2
;
r
=
via
->
GetWidth
()
/
2
;
hole
=
via
->
GetDrillValue
()
/
2
;
hole
=
via
->
GetDrillValue
()
/
2
;
x
=
via
->
m_Start
.
x
;
x
=
via
->
GetStart
()
.
x
;
y
=
via
->
m_Start
.
y
;
y
=
via
->
GetStart
()
.
y
;
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
via
->
ReturnLayerPair
(
&
top_layer
,
&
bottom_layer
);
// Export the via padstack
// Export the via padstack
export_round_padstack
(
pcb
,
x
,
y
,
r
,
bottom_layer
,
top_layer
);
export_round_padstack
(
pcb
,
x
,
y
,
r
,
bottom_layer
,
top_layer
);
// Drill a hole
// Drill a hole
export_vrml_hole
(
via_triangles
[
via
->
m_Shape
],
top_layer
,
bottom_layer
,
x
,
y
,
hole
);
export_vrml_hole
(
via_triangles
[
via
->
GetShape
()
],
top_layer
,
bottom_layer
,
x
,
y
,
hole
);
}
}
...
@@ -846,8 +846,8 @@ static void export_vrml_tracks( BOARD* pcb ) //{{{
...
@@ -846,8 +846,8 @@ static void export_vrml_tracks( BOARD* pcb ) //{{{
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
export_vrml_via
(
pcb
,
(
SEGVIA
*
)
track
);
export_vrml_via
(
pcb
,
(
SEGVIA
*
)
track
);
else
else
export_vrml_line
(
track
->
GetLayer
(),
track
->
m_Start
.
x
,
track
->
m_Start
.
y
,
export_vrml_line
(
track
->
GetLayer
(),
track
->
GetStart
().
x
,
track
->
GetStart
()
.
y
,
track
->
m_End
.
x
,
track
->
m_End
.
y
,
track
->
m_Width
,
4
);
track
->
GetEnd
().
x
,
track
->
GetEnd
().
y
,
track
->
GetWidth
()
,
4
);
}
}
}
}
...
...
pcbnew/gendrill_Excellon_writer.cpp
View file @
3e18fa42
...
@@ -480,7 +480,7 @@ void EXCELLON_WRITER::BuildHolesList( int aFirstLayer,
...
@@ -480,7 +480,7 @@ void EXCELLON_WRITER::BuildHolesList( int aFirstLayer,
new_hole
.
m_Hole_Size
.
x
=
new_hole
.
m_Hole_Size
.
y
=
new_hole
.
m_Hole_Diameter
;
new_hole
.
m_Hole_Size
.
x
=
new_hole
.
m_Hole_Size
.
y
=
new_hole
.
m_Hole_Diameter
;
new_hole
.
m_Hole_Shape
=
0
;
// hole shape: round
new_hole
.
m_Hole_Shape
=
0
;
// hole shape: round
new_hole
.
m_Hole_Pos
=
via
->
m_Start
;
new_hole
.
m_Hole_Pos
=
via
->
GetStart
()
;
via
->
ReturnLayerPair
(
&
new_hole
.
m_Hole_Top_Layer
,
&
new_hole
.
m_Hole_Bottom_Layer
);
via
->
ReturnLayerPair
(
&
new_hole
.
m_Hole_Top_Layer
,
&
new_hole
.
m_Hole_Bottom_Layer
);
// ReturnLayerPair return params with m_Hole_Bottom_Layer < m_Hole_Top_Layer
// ReturnLayerPair return params with m_Hole_Bottom_Layer < m_Hole_Top_Layer
...
...
pcbnew/magnetic_tracks_functions.cpp
View file @
3e18fa42
...
@@ -74,19 +74,19 @@ static bool Join( wxPoint* aIntersectPoint, wxPoint a0, wxPoint a1, wxPoint b0,
...
@@ -74,19 +74,19 @@ static bool Join( wxPoint* aIntersectPoint, wxPoint a0, wxPoint a1, wxPoint b0,
*/
*/
bool
Project
(
wxPoint
*
aNearPos
,
wxPoint
on_grid
,
const
TRACK
*
track
)
bool
Project
(
wxPoint
*
aNearPos
,
wxPoint
on_grid
,
const
TRACK
*
track
)
{
{
if
(
track
->
m_Start
==
track
->
m_End
)
if
(
track
->
GetStart
()
==
track
->
GetEnd
()
)
return
false
;
return
false
;
wxPoint
vec
=
track
->
m_End
-
track
->
m_Start
;
wxPoint
vec
=
track
->
GetEnd
()
-
track
->
GetStart
()
;
double
t
=
double
(
on_grid
.
x
-
track
->
m_Start
.
x
)
*
vec
.
x
+
double
t
=
double
(
on_grid
.
x
-
track
->
GetStart
()
.
x
)
*
vec
.
x
+
double
(
on_grid
.
y
-
track
->
m_Start
.
y
)
*
vec
.
y
;
double
(
on_grid
.
y
-
track
->
GetStart
()
.
y
)
*
vec
.
y
;
t
/=
(
double
)
vec
.
x
*
vec
.
x
+
(
double
)
vec
.
y
*
vec
.
y
;
t
/=
(
double
)
vec
.
x
*
vec
.
x
+
(
double
)
vec
.
y
*
vec
.
y
;
t
=
std
::
min
(
std
::
max
(
t
,
0.0
),
1.0
);
t
=
std
::
min
(
std
::
max
(
t
,
0.0
),
1.0
);
aNearPos
->
x
=
KiROUND
(
track
->
m_Start
.
x
+
t
*
vec
.
x
);
aNearPos
->
x
=
KiROUND
(
track
->
GetStart
()
.
x
+
t
*
vec
.
x
);
aNearPos
->
y
=
KiROUND
(
track
->
m_Start
.
y
+
t
*
vec
.
y
);
aNearPos
->
y
=
KiROUND
(
track
->
GetStart
()
.
y
+
t
*
vec
.
y
);
return
true
;
return
true
;
}
}
...
@@ -183,7 +183,7 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
...
@@ -183,7 +183,7 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
{
{
if
(
!
doCheckNet
||
!
currTrack
||
currTrack
->
GetNet
()
==
via
->
GetNet
()
)
if
(
!
doCheckNet
||
!
currTrack
||
currTrack
->
GetNet
()
==
via
->
GetNet
()
)
{
{
*
curpos
=
via
->
m_Start
;
*
curpos
=
via
->
GetStart
()
;
// D(printf("via hit\n");)
// D(printf("via hit\n");)
return
true
;
return
true
;
}
}
...
@@ -210,10 +210,10 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
...
@@ -210,10 +210,10 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
* In two segment mode, ignore the final segment if it's inside a grid square.
* In two segment mode, ignore the final segment if it's inside a grid square.
*/
*/
if
(
!
amMovingVia
&&
currTrack
&&
g_TwoSegmentTrackBuild
&&
currTrack
->
Back
()
if
(
!
amMovingVia
&&
currTrack
&&
g_TwoSegmentTrackBuild
&&
currTrack
->
Back
()
&&
currTrack
->
m_Start
.
x
-
aGridSize
.
x
<
currTrack
->
m_End
.
x
&&
currTrack
->
GetStart
().
x
-
aGridSize
.
x
<
currTrack
->
GetEnd
()
.
x
&&
currTrack
->
m_Start
.
x
+
aGridSize
.
x
>
currTrack
->
m_End
.
x
&&
currTrack
->
GetStart
().
x
+
aGridSize
.
x
>
currTrack
->
GetEnd
()
.
x
&&
currTrack
->
m_Start
.
y
-
aGridSize
.
y
<
currTrack
->
m_End
.
y
&&
currTrack
->
GetStart
().
y
-
aGridSize
.
y
<
currTrack
->
GetEnd
()
.
y
&&
currTrack
->
m_Start
.
y
+
aGridSize
.
y
>
currTrack
->
m_End
.
y
)
&&
currTrack
->
GetStart
().
y
+
aGridSize
.
y
>
currTrack
->
GetEnd
()
.
y
)
{
{
currTrack
=
currTrack
->
Back
();
currTrack
=
currTrack
->
Back
();
}
}
...
@@ -239,7 +239,7 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
...
@@ -239,7 +239,7 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
// D(printf( "have track prospect\n");)
// D(printf( "have track prospect\n");)
if
(
Join
(
curpos
,
track
->
m_Start
,
track
->
m_End
,
currTrack
->
m_Start
,
currTrack
->
m_End
)
)
if
(
Join
(
curpos
,
track
->
GetStart
(),
track
->
GetEnd
(),
currTrack
->
GetStart
(),
currTrack
->
GetEnd
()
)
)
{
{
// D(printf( "join currTrack->Type()=%d\n", currTrack->Type() );)
// D(printf( "join currTrack->Type()=%d\n", currTrack->Type() );)
return
true
;
return
true
;
...
@@ -251,27 +251,27 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
...
@@ -251,27 +251,27 @@ bool Magnetize( PCB_EDIT_FRAME* frame, int aCurrentTool, wxSize aGridSize,
// a new track and that new track is parallel to the track the
// a new track and that new track is parallel to the track the
// mouse is on. Find the nearest end point of the track under mouse
// mouse is on. Find the nearest end point of the track under mouse
// to the mouse and return that.
// to the mouse and return that.
double
distStart
=
hypot
(
double
(
curpos
->
x
-
track
->
m_Start
.
x
),
double
distStart
=
hypot
(
double
(
curpos
->
x
-
track
->
GetStart
()
.
x
),
double
(
curpos
->
y
-
track
->
m_Start
.
y
));
double
(
curpos
->
y
-
track
->
GetStart
()
.
y
));
double
distEnd
=
hypot
(
double
(
curpos
->
x
-
track
->
m_End
.
x
),
double
distEnd
=
hypot
(
double
(
curpos
->
x
-
track
->
GetEnd
()
.
x
),
double
(
curpos
->
y
-
track
->
m_End
.
y
));
double
(
curpos
->
y
-
track
->
GetEnd
()
.
y
));
// if track not via, or if its a via dragging but not with its adjacent track
// if track not via, or if its a via dragging but not with its adjacent track
if
(
currTrack
->
Type
()
!=
PCB_VIA_T
if
(
currTrack
->
Type
()
!=
PCB_VIA_T
||
(
currTrack
->
m_Start
!=
track
->
m_Start
&&
currTrack
->
m_Start
!=
track
->
m_End
))
||
(
currTrack
->
GetStart
()
!=
track
->
GetStart
()
&&
currTrack
->
GetStart
()
!=
track
->
GetEnd
()
))
{
{
if
(
distStart
<=
currTrack
->
m_Width
/
2
)
if
(
distStart
<=
currTrack
->
GetWidth
()
/
2
)
{
{
// D(printf("nearest end is start\n");)
// D(printf("nearest end is start\n");)
*
curpos
=
track
->
m_Start
;
*
curpos
=
track
->
GetStart
()
;
return
true
;
return
true
;
}
}
if
(
distEnd
<=
currTrack
->
m_Width
/
2
)
if
(
distEnd
<=
currTrack
->
GetWidth
()
/
2
)
{
{
// D(printf("nearest end is end\n");)
// D(printf("nearest end is end\n");)
*
curpos
=
track
->
m_End
;
*
curpos
=
track
->
GetEnd
()
;
return
true
;
return
true
;
}
}
...
...
pcbnew/move-drag_pads.cpp
View file @
3e18fa42
...
@@ -139,10 +139,10 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* aPad, wxDC* DC )
...
@@ -139,10 +139,10 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* aPad, wxDC* DC )
// Set the old state
// Set the old state
if
(
g_DragSegmentList
[
ii
].
m_Pad_Start
)
if
(
g_DragSegmentList
[
ii
].
m_Pad_Start
)
Track
->
m_Start
=
Pad_OldPos
;
Track
->
SetStart
(
Pad_OldPos
)
;
if
(
g_DragSegmentList
[
ii
].
m_Pad_End
)
if
(
g_DragSegmentList
[
ii
].
m_Pad_End
)
Track
->
m_End
=
Pad_OldPos
;
Track
->
SetEnd
(
Pad_OldPos
)
;
picker
.
SetItem
(
Track
);
picker
.
SetItem
(
Track
);
pickList
.
PushItem
(
picker
);
pickList
.
PushItem
(
picker
);
...
@@ -172,10 +172,10 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* aPad, wxDC* DC )
...
@@ -172,10 +172,10 @@ void PCB_BASE_FRAME::PlacePad( D_PAD* aPad, wxDC* DC )
// Set the new state
// Set the new state
if
(
g_DragSegmentList
[
ii
].
m_Pad_Start
)
if
(
g_DragSegmentList
[
ii
].
m_Pad_Start
)
Track
->
m_Start
=
aPad
->
GetPosition
(
);
Track
->
SetStart
(
aPad
->
GetPosition
()
);
if
(
g_DragSegmentList
[
ii
].
m_Pad_End
)
if
(
g_DragSegmentList
[
ii
].
m_Pad_End
)
Track
->
m_End
=
aPad
->
GetPosition
(
);
Track
->
SetEnd
(
aPad
->
GetPosition
()
);
Track
->
SetState
(
IN_EDIT
,
OFF
);
Track
->
SetState
(
IN_EDIT
,
OFF
);
...
...
pcbnew/move_or_drag_track.cpp
View file @
3e18fa42
...
@@ -134,13 +134,13 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
...
@@ -134,13 +134,13 @@ static void Show_MoveNode( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPo
track
->
Draw
(
aPanel
,
aDC
,
draw_mode
);
track
->
Draw
(
aPanel
,
aDC
,
draw_mode
);
if
(
track
->
GetFlags
()
&
STARTPOINT
)
if
(
track
->
GetFlags
()
&
STARTPOINT
)
track
->
m_Start
+=
moveVector
;
track
->
SetStart
(
track
->
GetStart
()
+
moveVector
)
;
if
(
track
->
GetFlags
()
&
ENDPOINT
)
if
(
track
->
GetFlags
()
&
ENDPOINT
)
track
->
m_End
+=
moveVector
;
track
->
SetEnd
(
track
->
GetEnd
()
+
moveVector
)
;
if
(
track
->
Type
()
==
PCB_VIA_T
)
if
(
track
->
Type
()
==
PCB_VIA_T
)
track
->
m_End
=
track
->
m_Start
;
track
->
SetEnd
(
track
->
GetStart
()
)
;
track
->
Draw
(
aPanel
,
aDC
,
draw_mode
);
track
->
Draw
(
aPanel
,
aDC
,
draw_mode
);
}
}
...
@@ -265,10 +265,10 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
...
@@ -265,10 +265,10 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
dy
=
Pos
.
y
-
s_LastPos
.
y
;
dy
=
Pos
.
y
-
s_LastPos
.
y
;
//move the line by dx and dy
//move the line by dx and dy
tx1
=
(
double
)
(
Track
->
m_Start
.
x
+
dx
);
tx1
=
(
double
)
(
Track
->
GetStart
()
.
x
+
dx
);
ty1
=
(
double
)
(
Track
->
m_Start
.
y
+
dy
);
ty1
=
(
double
)
(
Track
->
GetStart
()
.
y
+
dy
);
tx2
=
(
double
)
(
Track
->
m_End
.
x
+
dx
);
tx2
=
(
double
)
(
Track
->
GetEnd
()
.
x
+
dx
);
ty2
=
(
double
)
(
Track
->
m_End
.
y
+
dy
);
ty2
=
(
double
)
(
Track
->
GetEnd
()
.
y
+
dy
);
// recalculate the segments new parameters and intersection points
// recalculate the segments new parameters and intersection points
// only the intercept will change, segment slopes does not change
// only the intercept will change, segment slopes does not change
...
@@ -393,25 +393,23 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
...
@@ -393,25 +393,23 @@ static void Show_Drag_Track_Segment_With_Cte_Slope( EDA_DRAW_PANEL* aPanel, wxDC
if
(
update
)
if
(
update
)
{
{
s_LastPos
=
Pos
;
s_LastPos
=
Pos
;
Track
->
m_Start
.
x
=
KiROUND
(
xi1
);
Track
->
SetStart
(
wxPoint
(
KiROUND
(
xi1
),
KiROUND
(
yi1
)
)
);
Track
->
m_Start
.
y
=
KiROUND
(
yi1
);
Track
->
SetEnd
(
wxPoint
(
KiROUND
(
xi2
),
KiROUND
(
yi2
)
)
);
Track
->
m_End
.
x
=
KiROUND
(
xi2
);
Track
->
m_End
.
y
=
KiROUND
(
yi2
);
if
(
tSegmentToEnd
)
if
(
tSegmentToEnd
)
{
{
if
(
tSegmentToEnd
->
GetFlags
()
&
STARTPOINT
)
if
(
tSegmentToEnd
->
GetFlags
()
&
STARTPOINT
)
tSegmentToEnd
->
m_Start
=
Track
->
m_End
;
tSegmentToEnd
->
SetStart
(
Track
->
GetEnd
()
)
;
else
else
tSegmentToEnd
->
m_End
=
Track
->
m_End
;
tSegmentToEnd
->
SetEnd
(
Track
->
GetEnd
()
)
;
}
}
if
(
tSegmentToStart
)
if
(
tSegmentToStart
)
{
{
if
(
tSegmentToStart
->
GetFlags
()
&
STARTPOINT
)
if
(
tSegmentToStart
->
GetFlags
()
&
STARTPOINT
)
tSegmentToStart
->
m_Start
=
Track
->
m_Start
;
tSegmentToStart
->
SetStart
(
Track
->
GetStart
()
)
;
else
else
tSegmentToStart
->
m_End
=
Track
->
m_Start
;
tSegmentToStart
->
SetEnd
(
Track
->
GetStart
()
)
;
}
}
}
}
...
@@ -489,25 +487,25 @@ bool InitialiseDragParameters()
...
@@ -489,25 +487,25 @@ bool InitialiseDragParameters()
{
{
if
(
tSegmentToStart
->
GetFlags
()
&
ENDPOINT
)
if
(
tSegmentToStart
->
GetFlags
()
&
ENDPOINT
)
{
{
tx1
=
(
double
)
tSegmentToStart
->
m_Start
.
x
;
tx1
=
(
double
)
tSegmentToStart
->
GetStart
()
.
x
;
ty1
=
(
double
)
tSegmentToStart
->
m_Start
.
y
;
ty1
=
(
double
)
tSegmentToStart
->
GetStart
()
.
y
;
tx2
=
(
double
)
tSegmentToStart
->
m_End
.
x
;
tx2
=
(
double
)
tSegmentToStart
->
GetEnd
()
.
x
;
ty2
=
(
double
)
tSegmentToStart
->
m_End
.
y
;
ty2
=
(
double
)
tSegmentToStart
->
GetEnd
()
.
y
;
}
}
else
else
{
{
tx1
=
(
double
)
tSegmentToStart
->
m_End
.
x
;
tx1
=
(
double
)
tSegmentToStart
->
GetEnd
()
.
x
;
ty1
=
(
double
)
tSegmentToStart
->
m_End
.
y
;
ty1
=
(
double
)
tSegmentToStart
->
GetEnd
()
.
y
;
tx2
=
(
double
)
tSegmentToStart
->
m_Start
.
x
;
tx2
=
(
double
)
tSegmentToStart
->
GetStart
()
.
x
;
ty2
=
(
double
)
tSegmentToStart
->
m_Start
.
y
;
ty2
=
(
double
)
tSegmentToStart
->
GetStart
()
.
y
;
}
}
}
}
else
// move the start point on a line starting at Track->
m_Start
, and perpendicular to Track
else
// move the start point on a line starting at Track->
GetStart()
, and perpendicular to Track
{
{
tx1
=
(
double
)
Track
->
m_Start
.
x
;
tx1
=
(
double
)
Track
->
GetStart
()
.
x
;
ty1
=
(
double
)
Track
->
m_Start
.
y
;
ty1
=
(
double
)
Track
->
GetStart
()
.
y
;
tx2
=
(
double
)
Track
->
m_End
.
x
;
tx2
=
(
double
)
Track
->
GetEnd
()
.
x
;
ty2
=
(
double
)
Track
->
m_End
.
y
;
ty2
=
(
double
)
Track
->
GetEnd
()
.
y
;
RotatePoint
(
&
tx2
,
&
ty2
,
tx1
,
ty1
,
900
);
RotatePoint
(
&
tx2
,
&
ty2
,
tx1
,
ty1
,
900
);
}
}
...
@@ -532,25 +530,25 @@ bool InitialiseDragParameters()
...
@@ -532,25 +530,25 @@ bool InitialiseDragParameters()
//check if second line is vertical
//check if second line is vertical
if
(
tSegmentToEnd
->
GetFlags
()
&
STARTPOINT
)
if
(
tSegmentToEnd
->
GetFlags
()
&
STARTPOINT
)
{
{
tx1
=
(
double
)
tSegmentToEnd
->
m_Start
.
x
;
tx1
=
(
double
)
tSegmentToEnd
->
GetStart
()
.
x
;
ty1
=
(
double
)
tSegmentToEnd
->
m_Start
.
y
;
ty1
=
(
double
)
tSegmentToEnd
->
GetStart
()
.
y
;
tx2
=
(
double
)
tSegmentToEnd
->
m_End
.
x
;
tx2
=
(
double
)
tSegmentToEnd
->
GetEnd
()
.
x
;
ty2
=
(
double
)
tSegmentToEnd
->
m_End
.
y
;
ty2
=
(
double
)
tSegmentToEnd
->
GetEnd
()
.
y
;
}
}
else
else
{
{
tx1
=
(
double
)
tSegmentToEnd
->
m_End
.
x
;
tx1
=
(
double
)
tSegmentToEnd
->
GetEnd
()
.
x
;
ty1
=
(
double
)
tSegmentToEnd
->
m_End
.
y
;
ty1
=
(
double
)
tSegmentToEnd
->
GetEnd
()
.
y
;
tx2
=
(
double
)
tSegmentToEnd
->
m_Start
.
x
;
tx2
=
(
double
)
tSegmentToEnd
->
GetStart
()
.
x
;
ty2
=
(
double
)
tSegmentToEnd
->
m_Start
.
y
;
ty2
=
(
double
)
tSegmentToEnd
->
GetStart
()
.
y
;
}
}
}
}
else
// move the start point on a line starting at Track->
m_End
, and perpendicular to Track
else
// move the start point on a line starting at Track->
GetEnd()
, and perpendicular to Track
{
{
tx1
=
(
double
)
Track
->
m_End
.
x
;
tx1
=
(
double
)
Track
->
GetEnd
()
.
x
;
ty1
=
(
double
)
Track
->
m_End
.
y
;
ty1
=
(
double
)
Track
->
GetEnd
()
.
y
;
tx2
=
(
double
)
Track
->
m_Start
.
x
;
tx2
=
(
double
)
Track
->
GetStart
()
.
x
;
ty2
=
(
double
)
Track
->
m_Start
.
y
;
ty2
=
(
double
)
Track
->
GetStart
()
.
y
;
RotatePoint
(
&
tx2
,
&
ty2
,
tx1
,
ty1
,
-
900
);
RotatePoint
(
&
tx2
,
&
ty2
,
tx1
,
ty1
,
-
900
);
}
}
...
@@ -570,10 +568,10 @@ bool InitialiseDragParameters()
...
@@ -570,10 +568,10 @@ bool InitialiseDragParameters()
}
}
// Init parameters for the moved segment
// Init parameters for the moved segment
tx1
=
(
double
)
Track
->
m_Start
.
x
;
tx1
=
(
double
)
Track
->
GetStart
()
.
x
;
ty1
=
(
double
)
Track
->
m_Start
.
y
;
ty1
=
(
double
)
Track
->
GetStart
()
.
y
;
tx2
=
(
double
)
Track
->
m_End
.
x
;
tx2
=
(
double
)
Track
->
GetEnd
()
.
x
;
ty2
=
(
double
)
Track
->
m_End
.
y
;
ty2
=
(
double
)
Track
->
GetEnd
()
.
y
;
if
(
tx2
!=
tx1
)
if
(
tx2
!=
tx1
)
{
{
...
@@ -630,12 +628,12 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
...
@@ -630,12 +628,12 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
if
(
aCommand
!=
ID_POPUP_PCB_MOVE_TRACK_SEGMENT
)
if
(
aCommand
!=
ID_POPUP_PCB_MOVE_TRACK_SEGMENT
)
{
{
Collect_TrackSegmentsToDrag
(
GetBoard
(),
aTrack
->
m_Start
,
Collect_TrackSegmentsToDrag
(
GetBoard
(),
aTrack
->
GetStart
()
,
aTrack
->
ReturnMaskLayer
(),
aTrack
->
ReturnMaskLayer
(),
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
}
}
PosInit
=
aTrack
->
m_Start
;
PosInit
=
aTrack
->
GetStart
()
;
}
}
else
else
{
{
...
@@ -650,17 +648,17 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
...
@@ -650,17 +648,17 @@ void PCB_EDIT_FRAME::StartMoveOneNodeOrSegment( TRACK* aTrack, wxDC* aDC, int aC
break
;
break
;
case
ID_POPUP_PCB_DRAG_TRACK_SEGMENT
:
// drag a segment
case
ID_POPUP_PCB_DRAG_TRACK_SEGMENT
:
// drag a segment
pos
=
aTrack
->
m_Start
;
pos
=
aTrack
->
GetStart
()
;
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
pos
=
aTrack
->
m_End
;
pos
=
aTrack
->
GetEnd
()
;
aTrack
->
SetFlags
(
IS_DRAGGED
|
ENDPOINT
|
STARTPOINT
);
aTrack
->
SetFlags
(
IS_DRAGGED
|
ENDPOINT
|
STARTPOINT
);
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
break
;
break
;
case
ID_POPUP_PCB_MOVE_TRACK_NODE
:
// Drag via or move node
case
ID_POPUP_PCB_MOVE_TRACK_NODE
:
// Drag via or move node
pos
=
(
diag
&
STARTPOINT
)
?
aTrack
->
m_Start
:
aTrack
->
m_End
;
pos
=
(
diag
&
STARTPOINT
)
?
aTrack
->
GetStart
()
:
aTrack
->
GetEnd
()
;
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
Collect_TrackSegmentsToDrag
(
GetBoard
(),
pos
,
aTrack
->
ReturnMaskLayer
(),
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
aTrack
->
GetNet
(),
aTrack
->
GetWidth
()
/
2
);
PosInit
=
pos
;
PosInit
=
pos
;
...
@@ -770,7 +768,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
...
@@ -770,7 +768,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
{
{
int
flag
=
STARTPOINT
;
int
flag
=
STARTPOINT
;
if
(
track
->
m_Start
!=
TrackToStartPoint
->
m_Start
)
if
(
track
->
GetStart
()
!=
TrackToStartPoint
->
GetStart
()
)
flag
=
ENDPOINT
;
flag
=
ENDPOINT
;
AddSegmentToDragList
(
flag
,
TrackToStartPoint
);
AddSegmentToDragList
(
flag
,
TrackToStartPoint
);
...
@@ -781,7 +779,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
...
@@ -781,7 +779,7 @@ void PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
{
{
int
flag
=
STARTPOINT
;
int
flag
=
STARTPOINT
;
if
(
track
->
m_End
!=
TrackToEndPoint
->
m_Start
)
if
(
track
->
GetEnd
()
!=
TrackToEndPoint
->
GetStart
()
)
flag
=
ENDPOINT
;
flag
=
ENDPOINT
;
AddSegmentToDragList
(
flag
,
TrackToEndPoint
);
AddSegmentToDragList
(
flag
,
TrackToEndPoint
);
...
@@ -868,14 +866,14 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC )
...
@@ -868,14 +866,14 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC )
* (only pad connection must be tested, track connection will be
* (only pad connection must be tested, track connection will be
* tested by TestNetConnection() ) */
* tested by TestNetConnection() ) */
int
layerMask
=
GetLayerMask
(
Track
->
GetLayer
()
);
int
layerMask
=
GetLayerMask
(
Track
->
GetLayer
()
);
Track
->
start
=
GetBoard
()
->
GetPadFast
(
Track
->
m_Start
,
layerMask
);
Track
->
start
=
GetBoard
()
->
GetPadFast
(
Track
->
GetStart
()
,
layerMask
);
if
(
Track
->
start
)
if
(
Track
->
start
)
Track
->
SetState
(
BEGIN_ONPAD
,
ON
);
Track
->
SetState
(
BEGIN_ONPAD
,
ON
);
else
else
Track
->
SetState
(
BEGIN_ONPAD
,
OFF
);
Track
->
SetState
(
BEGIN_ONPAD
,
OFF
);
Track
->
end
=
GetBoard
()
->
GetPadFast
(
Track
->
m_End
,
layerMask
);
Track
->
end
=
GetBoard
()
->
GetPadFast
(
Track
->
GetEnd
()
,
layerMask
);
if
(
Track
->
end
)
if
(
Track
->
end
)
Track
->
SetState
(
END_ONPAD
,
ON
);
Track
->
SetState
(
END_ONPAD
,
ON
);
...
...
pcbnew/plot_board_layers.cpp
View file @
3e18fa42
...
@@ -137,7 +137,7 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, long aLayerMask,
...
@@ -137,7 +137,7 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, long aLayerMask,
if
(
(
(
1
<<
seg
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
if
(
(
(
1
<<
seg
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
continue
;
continue
;
aPlotter
->
ThickSegment
(
seg
->
m_Start
,
seg
->
m_End
,
seg
->
m_Width
,
aPlotter
->
ThickSegment
(
seg
->
GetStart
(),
seg
->
GetEnd
(),
seg
->
GetWidth
()
,
itemplotter
.
GetMode
()
);
itemplotter
.
GetMode
()
);
}
}
}
}
...
@@ -392,17 +392,17 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
...
@@ -392,17 +392,17 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
if
(
aLayerMask
&
ALL_CU_LAYERS
)
if
(
aLayerMask
&
ALL_CU_LAYERS
)
width_adj
=
itemplotter
.
getFineWidthAdj
();
width_adj
=
itemplotter
.
getFineWidthAdj
();
int
diameter
=
Via
->
m_Width
+
2
*
via_margin
+
width_adj
;
int
diameter
=
Via
->
GetWidth
()
+
2
*
via_margin
+
width_adj
;
// Don't draw a null size item :
// Don't draw a null size item :
if
(
diameter
<=
0
)
if
(
diameter
<=
0
)
continue
;
continue
;
EDA_COLOR_T
color
=
aBoard
->
GetVisibleElementColor
(
VIAS_VISIBLE
+
Via
->
m_Shape
);
EDA_COLOR_T
color
=
aBoard
->
GetVisibleElementColor
(
VIAS_VISIBLE
+
Via
->
GetShape
()
);
// Set plot color (change WHITE to LIGHTGRAY because
// Set plot color (change WHITE to LIGHTGRAY because
// the white items are not seen on a white paper or screen
// the white items are not seen on a white paper or screen
aPlotter
->
SetColor
(
color
!=
WHITE
?
color
:
LIGHTGRAY
);
aPlotter
->
SetColor
(
color
!=
WHITE
?
color
:
LIGHTGRAY
);
aPlotter
->
FlashPadCircle
(
Via
->
m_Start
,
diameter
,
plotMode
);
aPlotter
->
FlashPadCircle
(
Via
->
GetStart
()
,
diameter
,
plotMode
);
}
}
// Plot tracks (not vias) :
// Plot tracks (not vias) :
...
@@ -414,9 +414,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
...
@@ -414,9 +414,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
if
(
(
GetLayerMask
(
track
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
if
(
(
GetLayerMask
(
track
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
continue
;
continue
;
int
width
=
track
->
m_Width
+
itemplotter
.
getFineWidthAdj
();
int
width
=
track
->
GetWidth
()
+
itemplotter
.
getFineWidthAdj
();
aPlotter
->
SetColor
(
itemplotter
.
getColor
(
track
->
GetLayer
()
)
);
aPlotter
->
SetColor
(
itemplotter
.
getColor
(
track
->
GetLayer
()
)
);
aPlotter
->
ThickSegment
(
track
->
m_Start
,
track
->
m_End
,
width
,
plotMode
);
aPlotter
->
ThickSegment
(
track
->
GetStart
(),
track
->
GetEnd
()
,
width
,
plotMode
);
}
}
// Plot zones (outdated, for old boards compatibility):
// Plot zones (outdated, for old boards compatibility):
...
@@ -425,9 +425,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
...
@@ -425,9 +425,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
if
(
(
GetLayerMask
(
track
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
if
(
(
GetLayerMask
(
track
->
GetLayer
()
)
&
aLayerMask
)
==
0
)
continue
;
continue
;
int
width
=
track
->
m_Width
+
itemplotter
.
getFineWidthAdj
();
int
width
=
track
->
GetWidth
()
+
itemplotter
.
getFineWidthAdj
();
aPlotter
->
SetColor
(
itemplotter
.
getColor
(
track
->
GetLayer
()
)
);
aPlotter
->
SetColor
(
itemplotter
.
getColor
(
track
->
GetLayer
()
)
);
aPlotter
->
ThickSegment
(
track
->
m_Start
,
track
->
m_End
,
width
,
plotMode
);
aPlotter
->
ThickSegment
(
track
->
GetStart
(),
track
->
GetEnd
()
,
width
,
plotMode
);
}
}
// Plot filled ares
// Plot filled ares
...
...
pcbnew/plot_brditems_plotter.cpp
View file @
3e18fa42
...
@@ -711,8 +711,8 @@ void BRDITEMS_PLOTTER::PlotDrillMarks()
...
@@ -711,8 +711,8 @@ void BRDITEMS_PLOTTER::PlotDrillMarks()
continue
;
continue
;
plotOneDrillMark
(
PAD_CIRCLE
,
plotOneDrillMark
(
PAD_CIRCLE
,
pts
->
m_Start
,
wxSize
(
pts
->
GetDrillValue
(),
0
),
pts
->
GetStart
()
,
wxSize
(
pts
->
GetDrillValue
(),
0
),
wxSize
(
pts
->
m_Width
,
0
),
0
,
small_drill
);
wxSize
(
pts
->
GetWidth
()
,
0
),
0
,
small_drill
);
}
}
for
(
MODULE
*
Module
=
m_board
->
m_Modules
;
Module
!=
NULL
;
Module
=
Module
->
Next
()
)
for
(
MODULE
*
Module
=
m_board
->
m_Modules
;
Module
!=
NULL
;
Module
=
Module
->
Next
()
)
...
...
pcbnew/print_board_functions.cpp
View file @
3e18fa42
...
@@ -231,12 +231,12 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC,
...
@@ -231,12 +231,12 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC,
if
(
pt_trace
->
Type
()
==
PCB_VIA_T
)
// VIA encountered.
if
(
pt_trace
->
Type
()
==
PCB_VIA_T
)
// VIA encountered.
{
{
int
radius
=
pt_trace
->
m_Width
>>
1
;
int
radius
=
pt_trace
->
GetWidth
()
>>
1
;
EDA_COLOR_T
color
=
g_ColorsSettings
.
GetItemColor
(
VIAS_VISIBLE
+
pt_trace
->
m_Shape
);
EDA_COLOR_T
color
=
g_ColorsSettings
.
GetItemColor
(
VIAS_VISIBLE
+
pt_trace
->
GetShape
()
);
GRSetDrawMode
(
aDC
,
drawmode
);
GRSetDrawMode
(
aDC
,
drawmode
);
GRFilledCircle
(
m_canvas
->
GetClipBox
(),
aDC
,
GRFilledCircle
(
m_canvas
->
GetClipBox
(),
aDC
,
pt_trace
->
m_Start
.
x
,
pt_trace
->
GetStart
()
.
x
,
pt_trace
->
m_Start
.
y
,
pt_trace
->
GetStart
()
.
y
,
radius
,
radius
,
0
,
color
,
color
);
0
,
color
,
color
);
}
}
...
@@ -305,7 +305,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC,
...
@@ -305,7 +305,7 @@ void PCB_EDIT_FRAME::PrintPage( wxDC* aDC,
diameter
=
pt_trace
->
GetDrillValue
();
diameter
=
pt_trace
->
GetDrillValue
();
GRFilledCircle
(
m_canvas
->
GetClipBox
(),
aDC
,
GRFilledCircle
(
m_canvas
->
GetClipBox
(),
aDC
,
pt_trace
->
m_Start
.
x
,
pt_trace
->
m_Start
.
y
,
pt_trace
->
GetStart
().
x
,
pt_trace
->
GetStart
()
.
y
,
diameter
/
2
,
diameter
/
2
,
0
,
color
,
color
);
0
,
color
,
color
);
}
}
...
...
pcbnew/ratsnest.cpp
View file @
3e18fa42
...
@@ -847,10 +847,10 @@ void PCB_BASE_FRAME::BuildAirWiresTargetsList( BOARD_CONNECTED_ITEM* aItemRef,
...
@@ -847,10 +847,10 @@ void PCB_BASE_FRAME::BuildAirWiresTargetsList( BOARD_CONNECTED_ITEM* aItemRef,
if
(
!
track
->
GetSubNet
()
||
(
track
->
GetSubNet
()
!=
subnet
)
)
if
(
!
track
->
GetSubNet
()
||
(
track
->
GetSubNet
()
!=
subnet
)
)
{
{
if
(
aPosition
!=
track
->
m_Start
)
if
(
aPosition
!=
track
->
GetStart
()
)
s_TargetsLocations
.
push_back
(
track
->
m_Start
);
s_TargetsLocations
.
push_back
(
track
->
GetStart
()
);
if
(
aPosition
!=
track
->
m_End
&&
track
->
m_Start
!=
track
->
m_End
)
if
(
aPosition
!=
track
->
GetEnd
()
&&
track
->
GetStart
()
!=
track
->
GetEnd
()
)
s_TargetsLocations
.
push_back
(
track
->
m_End
);
s_TargetsLocations
.
push_back
(
track
->
GetEnd
()
);
}
}
}
}
...
...
pcbnew/specctra_export.cpp
View file @
3e18fa42
...
@@ -761,7 +761,7 @@ PADSTACK* SPECCTRA_DB::makeVia( const SEGVIA* aVia )
...
@@ -761,7 +761,7 @@ PADSTACK* SPECCTRA_DB::makeVia( const SEGVIA* aVia )
if
(
topLayer
>
botLayer
)
if
(
topLayer
>
botLayer
)
EXCHG
(
topLayer
,
botLayer
);
EXCHG
(
topLayer
,
botLayer
);
return
makeVia
(
aVia
->
m_Width
,
aVia
->
GetDrillValue
(),
topLayer
,
botLayer
);
return
makeVia
(
aVia
->
GetWidth
()
,
aVia
->
GetDrillValue
(),
topLayer
,
botLayer
);
}
}
...
@@ -1493,12 +1493,12 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR )
...
@@ -1493,12 +1493,12 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR )
continue
;
continue
;
if
(
old_netcode
!=
netcode
if
(
old_netcode
!=
netcode
||
old_width
!=
track
->
m_Width
||
old_width
!=
track
->
GetWidth
()
||
old_layer
!=
track
->
GetLayer
()
||
old_layer
!=
track
->
GetLayer
()
||
(
path
&&
path
->
points
.
back
()
!=
mapPt
(
track
->
m_Start
)
)
||
(
path
&&
path
->
points
.
back
()
!=
mapPt
(
track
->
GetStart
()
)
)
)
)
{
{
old_width
=
track
->
m_Width
;
old_width
=
track
->
GetWidth
()
;
old_layer
=
track
->
GetLayer
();
old_layer
=
track
->
GetLayer
();
if
(
old_netcode
!=
netcode
)
if
(
old_netcode
!=
netcode
)
...
@@ -1524,10 +1524,10 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR )
...
@@ -1524,10 +1524,10 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR )
path
->
layer_id
=
layerIds
[
pcbLayer
];
path
->
layer_id
=
layerIds
[
pcbLayer
];
path
->
aperture_width
=
scale
(
old_width
);
path
->
aperture_width
=
scale
(
old_width
);
path
->
AppendPoint
(
mapPt
(
track
->
m_Start
)
);
path
->
AppendPoint
(
mapPt
(
track
->
GetStart
()
)
);
}
}
path
->
AppendPoint
(
mapPt
(
track
->
m_End
)
);
path
->
AppendPoint
(
mapPt
(
track
->
GetEnd
()
)
);
}
}
}
}
...
...
pcbnew/specctra_import.cpp
View file @
3e18fa42
...
@@ -235,10 +235,10 @@ TRACK* SPECCTRA_DB::makeTRACK( PATH* aPath, int aPointIndex, int aNetcode ) thro
...
@@ -235,10 +235,10 @@ TRACK* SPECCTRA_DB::makeTRACK( PATH* aPath, int aPointIndex, int aNetcode ) thro
TRACK
*
track
=
new
TRACK
(
sessionBoard
);
TRACK
*
track
=
new
TRACK
(
sessionBoard
);
track
->
m_Start
=
mapPt
(
aPath
->
points
[
aPointIndex
+
0
],
routeResolution
);
track
->
SetStart
(
mapPt
(
aPath
->
points
[
aPointIndex
+
0
],
routeResolution
)
);
track
->
m_End
=
mapPt
(
aPath
->
points
[
aPointIndex
+
1
],
routeResolution
);
track
->
SetEnd
(
mapPt
(
aPath
->
points
[
aPointIndex
+
1
],
routeResolution
)
);
track
->
SetLayer
(
pcbLayer2kicad
[
layerNdx
]
);
track
->
SetLayer
(
pcbLayer2kicad
[
layerNdx
]
);
track
->
m_Width
=
scale
(
aPath
->
aperture_width
,
routeResolution
);
track
->
SetWidth
(
scale
(
aPath
->
aperture_width
,
routeResolution
)
);
track
->
SetNet
(
aNetcode
);
track
->
SetNet
(
aNetcode
);
return
track
;
return
track
;
...
@@ -295,8 +295,8 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
...
@@ -295,8 +295,8 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
via
=
new
SEGVIA
(
sessionBoard
);
via
=
new
SEGVIA
(
sessionBoard
);
via
->
SetPosition
(
mapPt
(
aPoint
,
routeResolution
)
);
via
->
SetPosition
(
mapPt
(
aPoint
,
routeResolution
)
);
via
->
SetDrill
(
drillDiam
);
via
->
SetDrill
(
drillDiam
);
via
->
m_Shape
=
VIA_THROUGH
;
via
->
SetShape
(
VIA_THROUGH
)
;
via
->
m_Width
=
viaDiam
;
via
->
SetWidth
(
viaDiam
)
;
via
->
SetLayerPair
(
LAYER_N_FRONT
,
LAYER_N_BACK
);
via
->
SetLayerPair
(
LAYER_N_FRONT
,
LAYER_N_BACK
);
}
}
else
if
(
shapeCount
==
copperLayerCount
)
else
if
(
shapeCount
==
copperLayerCount
)
...
@@ -313,8 +313,8 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
...
@@ -313,8 +313,8 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
via
=
new
SEGVIA
(
sessionBoard
);
via
=
new
SEGVIA
(
sessionBoard
);
via
->
SetPosition
(
mapPt
(
aPoint
,
routeResolution
)
);
via
->
SetPosition
(
mapPt
(
aPoint
,
routeResolution
)
);
via
->
SetDrill
(
drillDiam
);
via
->
SetDrill
(
drillDiam
);
via
->
m_Shape
=
VIA_THROUGH
;
via
->
SetShape
(
VIA_THROUGH
)
;
via
->
m_Width
=
viaDiam
;
via
->
SetWidth
(
viaDiam
)
;
via
->
SetLayerPair
(
LAYER_N_FRONT
,
LAYER_N_BACK
);
via
->
SetLayerPair
(
LAYER_N_FRONT
,
LAYER_N_BACK
);
}
}
else
// VIA_MICROVIA or VIA_BLIND_BURIED
else
// VIA_MICROVIA or VIA_BLIND_BURIED
...
@@ -357,11 +357,11 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
...
@@ -357,11 +357,11 @@ SEGVIA* SPECCTRA_DB::makeVIA( PADSTACK* aPadstack, const POINT& aPoint, int aNet
if
(
(
topLayerNdx
==
0
&&
botLayerNdx
==
1
)
if
(
(
topLayerNdx
==
0
&&
botLayerNdx
==
1
)
||
(
topLayerNdx
==
copperLayerCount
-
2
&&
botLayerNdx
==
copperLayerCount
-
1
))
||
(
topLayerNdx
==
copperLayerCount
-
2
&&
botLayerNdx
==
copperLayerCount
-
1
))
via
->
m_Shape
=
VIA_MICROVIA
;
via
->
SetShape
(
VIA_MICROVIA
)
;
else
else
via
->
m_Shape
=
VIA_BLIND_BURIED
;
via
->
SetShape
(
VIA_BLIND_BURIED
)
;
via
->
m_Width
=
viaDiam
;
via
->
SetWidth
(
viaDiam
)
;
topLayerNdx
=
pcbLayer2kicad
[
topLayerNdx
];
topLayerNdx
=
pcbLayer2kicad
[
topLayerNdx
];
botLayerNdx
=
pcbLayer2kicad
[
botLayerNdx
];
botLayerNdx
=
pcbLayer2kicad
[
botLayerNdx
];
...
...
pcbnew/tr_modif.cpp
View file @
3e18fa42
...
@@ -126,8 +126,8 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC,
...
@@ -126,8 +126,8 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC,
if
(
(
StartTrack
==
NULL
)
||
(
EndTrack
==
NULL
)
)
if
(
(
StartTrack
==
NULL
)
||
(
EndTrack
==
NULL
)
)
return
0
;
return
0
;
start
=
StartTrack
->
m_Start
;
start
=
StartTrack
->
GetStart
()
;
end
=
EndTrack
->
m_End
;
end
=
EndTrack
->
GetEnd
()
;
// The start and end points cannot be the same.
// The start and end points cannot be the same.
if
(
start
==
end
)
if
(
start
==
end
)
...
@@ -248,7 +248,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC,
...
@@ -248,7 +248,7 @@ int PCB_EDIT_FRAME::EraseRedundantTrack( wxDC* aDC,
if
(
pt_segm
->
GetState
(
BUSY
)
==
0
)
if
(
pt_segm
->
GetState
(
BUSY
)
==
0
)
break
;
break
;
if
(
pt_segm
->
m_Start
==
start
||
pt_segm
->
m_End
==
start
)
if
(
pt_segm
->
GetStart
()
==
start
||
pt_segm
->
GetEnd
()
==
start
)
{
{
// Marked track can be erased.
// Marked track can be erased.
TRACK
*
NextS
;
TRACK
*
NextS
;
...
...
pcbnew/zones_polygons_insulated_copper_islands.cpp
View file @
3e18fa42
...
@@ -74,10 +74,10 @@ void ZONE_CONTAINER::Test_For_Copper_Island_And_Remove_Insulated_Islands( BOARD
...
@@ -74,10 +74,10 @@ void ZONE_CONTAINER::Test_For_Copper_Island_And_Remove_Insulated_Islands( BOARD
if
(
track
->
GetNet
()
!=
GetNet
()
)
if
(
track
->
GetNet
()
!=
GetNet
()
)
continue
;
continue
;
listPointsCandidates
.
push_back
(
track
->
m_Start
);
listPointsCandidates
.
push_back
(
track
->
GetStart
()
);
if
(
track
->
Type
()
!=
PCB_VIA_T
)
if
(
track
->
Type
()
!=
PCB_VIA_T
)
listPointsCandidates
.
push_back
(
track
->
m_End
);
listPointsCandidates
.
push_back
(
track
->
GetEnd
()
);
}
}
// test if a point is inside
// test if a point is inside
...
...
pcbnew/zones_polygons_test_connections.cpp
View file @
3e18fa42
...
@@ -169,12 +169,12 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode )
...
@@ -169,12 +169,12 @@ void BOARD::Test_Connections_To_Copper_Areas( int aNetcode )
}
}
else
if
(
item
->
Type
()
==
PCB_VIA_T
)
else
if
(
item
->
Type
()
==
PCB_VIA_T
)
{
{
pos1
=
pos2
=
(
(
SEGVIA
*
)
item
)
->
m_Start
;
pos1
=
pos2
=
(
(
SEGVIA
*
)
item
)
->
GetStart
()
;
}
}
else
if
(
item
->
Type
()
==
PCB_TRACE_T
)
else
if
(
item
->
Type
()
==
PCB_TRACE_T
)
{
{
pos1
=
(
(
TRACK
*
)
item
)
->
m_Start
;
pos1
=
(
(
TRACK
*
)
item
)
->
GetStart
()
;
pos2
=
(
(
TRACK
*
)
item
)
->
m_End
;
pos2
=
(
(
TRACK
*
)
item
)
->
GetEnd
()
;
}
}
else
else
{
{
...
...
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