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
a674dd65
Commit
a674dd65
authored
Dec 19, 2012
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew: class DIMENSION: code cleaning
parent
ea603c4d
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
354 additions
and
421 deletions
+354
-421
length.h.usuned
include/length.h.usuned
+0
-0
class_dimension.cpp
pcbnew/class_dimension.cpp
+199
-250
class_dimension.h
pcbnew/class_dimension.h
+38
-38
dimension.cpp
pcbnew/dimension.cpp
+19
-35
kicad_plugin.cpp
pcbnew/kicad_plugin.cpp
+28
-28
legacy_plugin.cpp
pcbnew/legacy_plugin.cpp
+42
-42
pcb_parser.cpp
pcbnew/pcb_parser.cpp
+14
-14
plot_brditems_plotter.cpp
pcbnew/plot_brditems_plotter.cpp
+14
-14
No files found.
include/length.h
→
include/length.h
.usuned
View file @
a674dd65
File moved
pcbnew/class_dimension.cpp
View file @
a674dd65
...
...
@@ -50,7 +50,7 @@ DIMENSION::DIMENSION( BOARD_ITEM* aParent ) :
m_Text
(
this
)
{
m_Layer
=
DRAW_LAYER
;
m_Width
=
50
;
m_Width
=
Millimeter2iu
(
0.2
)
;
m_Value
=
0
;
m_Shape
=
0
;
m_Unit
=
INCHES
;
...
...
@@ -64,11 +64,16 @@ DIMENSION::~DIMENSION()
void
DIMENSION
::
SetPosition
(
const
wxPoint
&
aPos
)
{
m_Pos
=
aPos
;
m_Text
.
SetPos
(
aPos
);
}
const
wxPoint
&
DIMENSION
::
GetPosition
()
const
{
return
m_Text
.
GetPosition
();
}
void
DIMENSION
::
SetText
(
const
wxString
&
aNewText
)
{
m_Text
.
SetText
(
aNewText
);
...
...
@@ -84,7 +89,7 @@ const wxString DIMENSION::GetText() const
void
DIMENSION
::
SetLayer
(
int
aLayer
)
{
m_Layer
=
aLayer
;
m_Text
.
SetLayer
(
aLayer
);
m_Text
.
SetLayer
(
aLayer
);
}
...
...
@@ -93,82 +98,50 @@ void DIMENSION::Copy( DIMENSION* source )
m_Value
=
source
->
m_Value
;
SetLayer
(
source
->
GetLayer
()
);
m_Width
=
source
->
m_Width
;
m_Pos
=
source
->
m_Pos
;
m_Shape
=
source
->
m_Shape
;
m_Unit
=
source
->
m_Unit
;
SetTimeStamp
(
GetNewTimeStamp
()
);
m_Text
.
Copy
(
&
source
->
m_Text
);
m_crossBarOx
=
source
->
m_crossBarOx
;
m_crossBarOy
=
source
->
m_crossBarOy
;
m_crossBarFx
=
source
->
m_crossBarFx
;
m_crossBarFy
=
source
->
m_crossBarFy
;
m_featureLineGOx
=
source
->
m_featureLineGOx
;
m_featureLineGOy
=
source
->
m_featureLineGOy
;
m_featureLineGFx
=
source
->
m_featureLineGFx
;
m_featureLineGFy
=
source
->
m_featureLineGFy
;
m_featureLineDOx
=
source
->
m_featureLineDOx
;
m_featureLineDOy
=
source
->
m_featureLineDOy
;
m_featureLineDFx
=
source
->
m_featureLineDFx
;
m_featureLineDFy
=
source
->
m_featureLineDFy
;
m_arrowD1Ox
=
source
->
m_arrowD1Ox
;
m_arrowD1Oy
=
source
->
m_arrowD1Oy
;
m_arrowD1Fx
=
source
->
m_arrowD1Fx
;
m_arrowD1Fy
=
source
->
m_arrowD1Fy
;
m_arrowD2Ox
=
source
->
m_arrowD2Ox
;
m_arrowD2Oy
=
source
->
m_arrowD2Oy
;
m_arrowD2Fx
=
source
->
m_arrowD2Fx
;
m_arrowD2Fy
=
source
->
m_arrowD2Fy
;
m_arrowG1Ox
=
source
->
m_arrowG1Ox
;
m_arrowG1Oy
=
source
->
m_arrowG1Oy
;
m_arrowG1Fx
=
source
->
m_arrowG1Fx
;
m_arrowG1Fy
=
source
->
m_arrowG1Fy
;
m_arrowG2Ox
=
source
->
m_arrowG2Ox
;
m_arrowG2Oy
=
source
->
m_arrowG2Oy
;
m_arrowG2Fx
=
source
->
m_arrowG2Fx
;
m_arrowG2Fy
=
source
->
m_arrowG2Fy
;
m_crossBarO
=
source
->
m_crossBarO
;
m_crossBarF
=
source
->
m_crossBarF
;
m_featureLineGO
=
source
->
m_featureLineGO
;
m_featureLineGF
=
source
->
m_featureLineGF
;
m_featureLineDO
=
source
->
m_featureLineDO
;
m_featureLineDF
=
source
->
m_featureLineDF
;
m_arrowD1O
=
source
->
m_arrowD1O
;
m_arrowD1F
=
source
->
m_arrowD1F
;
m_arrowD2O
=
source
->
m_arrowD2O
;
m_arrowD2F
=
source
->
m_arrowD2F
;
m_arrowG1O
=
source
->
m_arrowG1O
;
m_arrowG1F
=
source
->
m_arrowG1F
;
m_arrowG2O
=
source
->
m_arrowG2O
;
m_arrowG2F
=
source
->
m_arrowG2F
;
}
void
DIMENSION
::
Move
(
const
wxPoint
&
offset
)
{
m_Pos
+=
offset
;
m_Text
.
m_Pos
+=
offset
;
m_crossBarOx
+=
offset
.
x
;
m_crossBarOy
+=
offset
.
y
;
m_crossBarFx
+=
offset
.
x
;
m_crossBarFy
+=
offset
.
y
;
m_featureLineGOx
+=
offset
.
x
;
m_featureLineGOy
+=
offset
.
y
;
m_featureLineGFx
+=
offset
.
x
;
m_featureLineGFy
+=
offset
.
y
;
m_featureLineDOx
+=
offset
.
x
;
m_featureLineDOy
+=
offset
.
y
;
m_featureLineDFx
+=
offset
.
x
;
m_featureLineDFy
+=
offset
.
y
;
m_arrowG1Ox
+=
offset
.
x
;
m_arrowG1Oy
+=
offset
.
y
;
m_arrowG1Fx
+=
offset
.
x
;
m_arrowG1Fy
+=
offset
.
y
;
m_arrowG2Ox
+=
offset
.
x
;
m_arrowG2Oy
+=
offset
.
y
;
m_arrowG2Fx
+=
offset
.
x
;
m_arrowG2Fy
+=
offset
.
y
;
m_arrowD1Ox
+=
offset
.
x
;
m_arrowD1Oy
+=
offset
.
y
;
m_arrowD1Fx
+=
offset
.
x
;
m_arrowD1Fy
+=
offset
.
y
;
m_arrowD2Ox
+=
offset
.
x
;
m_arrowD2Oy
+=
offset
.
y
;
m_arrowD2Fx
+=
offset
.
x
;
m_arrowD2Fy
+=
offset
.
y
;
m_crossBarO
+=
offset
;
m_crossBarF
+=
offset
;
m_featureLineGO
+=
offset
;
m_featureLineGF
+=
offset
;
m_featureLineDO
+=
offset
;
m_featureLineDF
+=
offset
;
m_arrowG1O
+=
offset
;
m_arrowG1F
+=
offset
;
m_arrowG2O
+=
offset
;
m_arrowG2F
+=
offset
;
m_arrowD1O
+=
offset
;
m_arrowD1F
+=
offset
;
m_arrowD2O
+=
offset
;
m_arrowD2F
+=
offset
;
}
void
DIMENSION
::
Rotate
(
const
wxPoint
&
aRotCentre
,
double
aAngle
)
{
RotatePoint
(
&
m_Pos
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_Text
.
m_Pos
,
aRotCentre
,
aAngle
);
double
newAngle
=
m_Text
.
GetOrientation
()
+
aAngle
;
...
...
@@ -181,20 +154,20 @@ void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle )
m_Text
.
SetOrientation
(
newAngle
);
RotatePoint
(
&
m_crossBarO
x
,
&
m_crossBarOy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_crossBarF
x
,
&
m_crossBarFy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_featureLineGO
x
,
&
m_featureLineGOy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_featureLineGF
x
,
&
m_featureLineGFy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_featureLineDO
x
,
&
m_featureLineDOy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_featureLineDF
x
,
&
m_featureLineDFy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowG1O
x
,
&
m_arrowG1Oy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowG1F
x
,
&
m_arrowG1Fy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowG2O
x
,
&
m_arrowG2Oy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowG2F
x
,
&
m_arrowG2Fy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowD1O
x
,
&
m_arrowD1Oy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowD1F
x
,
&
m_arrowD1Fy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowD2O
x
,
&
m_arrowD2Oy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_arrowD2F
x
,
&
m_arrowD2Fy
,
aRotCentre
.
x
,
aRotCentre
.
y
,
aAngle
);
RotatePoint
(
&
m_crossBarO
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_crossBarF
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_featureLineGO
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_featureLineGF
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_featureLineDO
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_featureLineDF
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowG1O
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowG1F
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowG2O
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowG2F
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowD1O
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowD1F
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowD2O
,
aRotCentre
,
aAngle
);
RotatePoint
(
&
m_arrowD2F
,
aRotCentre
,
aAngle
);
}
...
...
@@ -208,11 +181,11 @@ void DIMENSION::Flip( const wxPoint& aCentre )
void
DIMENSION
::
Mirror
(
const
wxPoint
&
axis_pos
)
{
#define INVERT( pos ) (pos) = axis_pos.y - ( (pos) - axis_pos.y )
INVERT
(
m_Pos
.
y
);
INVERT
(
m_Text
.
m_Pos
.
y
);
// invert angle
double
newAngle
=
m_Text
.
GetOrientation
();
if
(
newAngle
>=
3600
)
newAngle
-=
3600
;
...
...
@@ -221,20 +194,20 @@ void DIMENSION::Mirror( const wxPoint& axis_pos )
m_Text
.
SetOrientation
(
newAngle
);
INVERT
(
m_crossBarOy
);
INVERT
(
m_crossBarFy
);
INVERT
(
m_featureLineGOy
);
INVERT
(
m_featureLineGFy
);
INVERT
(
m_featureLineDOy
);
INVERT
(
m_featureLineDFy
);
INVERT
(
m_arrowG1Oy
);
INVERT
(
m_arrowG1Fy
);
INVERT
(
m_arrowG2Oy
);
INVERT
(
m_arrowG2Fy
);
INVERT
(
m_arrowD1Oy
);
INVERT
(
m_arrowD1Fy
);
INVERT
(
m_arrowD2Oy
);
INVERT
(
m_arrowD2Fy
);
INVERT
(
m_crossBarO
.
y
);
INVERT
(
m_crossBarF
.
y
);
INVERT
(
m_featureLineGO
.
y
);
INVERT
(
m_featureLineGF
.
y
);
INVERT
(
m_featureLineDO
.
y
);
INVERT
(
m_featureLineDF
.
y
);
INVERT
(
m_arrowG1O
.
y
);
INVERT
(
m_arrowG1F
.
y
);
INVERT
(
m_arrowG2O
.
y
);
INVERT
(
m_arrowG2F
.
y
);
INVERT
(
m_arrowD1O
.
y
);
INVERT
(
m_arrowD1F
.
y
);
INVERT
(
m_arrowD2O
.
y
);
INVERT
(
m_arrowD2F
.
y
);
}
...
...
@@ -256,8 +229,8 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
ii
=
m_Text
.
m_Size
.
y
+
m_Text
.
GetThickness
()
+
(
m_Width
*
3
);
deltax
=
m_featureLineDOx
-
m_featureLineGO
x
;
deltay
=
m_featureLineDOy
-
m_featureLineGO
y
;
deltax
=
m_featureLineDO
.
x
-
m_featureLineGO
.
x
;
deltay
=
m_featureLineDO
.
y
-
m_featureLineGO
.
y
;
// Calculate dimension value
measure
=
KiROUND
(
hypot
(
(
double
)
deltax
,
(
double
)
deltay
)
);
...
...
@@ -276,16 +249,16 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
hx
=
(
abs
)
(
(
int
)
(
(
(
double
)
deltay
*
hx
)
/
measure
)
);
hy
=
(
abs
)
(
(
int
)
(
(
(
double
)
deltax
*
hy
)
/
measure
)
);
if
(
m_featureLineGO
x
>
m_crossBarO
x
)
if
(
m_featureLineGO
.
x
>
m_crossBarO
.
x
)
hx
=
-
hx
;
if
(
m_featureLineGO
x
==
m_crossBarO
x
)
if
(
m_featureLineGO
.
x
==
m_crossBarO
.
x
)
hx
=
0
;
if
(
m_featureLineGO
y
>
m_crossBarO
y
)
if
(
m_featureLineGO
.
y
>
m_crossBarO
.
y
)
hy
=
-
hy
;
if
(
m_featureLineGO
y
==
m_crossBarO
y
)
if
(
m_featureLineGO
.
y
==
m_crossBarO
.
y
)
hy
=
0
;
angle_f
=
angle
+
(
M_PI
*
27.5
/
180
);
...
...
@@ -296,41 +269,42 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
arrow_dw_Y
=
(
int
)
(
arrowz
*
sin
(
angle_f
)
);
}
m_arrowG1O
x
=
m_crossBarO
x
;
m_arrowG1O
y
=
m_crossBarO
y
;
m_arrowG1F
x
=
m_crossBarO
x
+
arrow_up_X
;
m_arrowG1F
y
=
m_crossBarO
y
+
arrow_up_Y
;
m_arrowG1O
.
x
=
m_crossBarO
.
x
;
m_arrowG1O
.
y
=
m_crossBarO
.
y
;
m_arrowG1F
.
x
=
m_crossBarO
.
x
+
arrow_up_X
;
m_arrowG1F
.
y
=
m_crossBarO
.
y
+
arrow_up_Y
;
m_arrowG2O
x
=
m_crossBarO
x
;
m_arrowG2O
y
=
m_crossBarO
y
;
m_arrowG2F
x
=
m_crossBarO
x
+
arrow_dw_X
;
m_arrowG2F
y
=
m_crossBarO
y
+
arrow_dw_Y
;
m_arrowG2O
.
x
=
m_crossBarO
.
x
;
m_arrowG2O
.
y
=
m_crossBarO
.
y
;
m_arrowG2F
.
x
=
m_crossBarO
.
x
+
arrow_dw_X
;
m_arrowG2F
.
y
=
m_crossBarO
.
y
+
arrow_dw_Y
;
/* The right arrow is symmetrical to the left.
* / = -\ and \ = -/
*/
m_arrowD1O
x
=
m_crossBarF
x
;
m_arrowD1O
y
=
m_crossBarF
y
;
m_arrowD1F
x
=
m_crossBarF
x
-
arrow_dw_X
;
m_arrowD1F
y
=
m_crossBarF
y
-
arrow_dw_Y
;
m_arrowD1O
.
x
=
m_crossBarF
.
x
;
m_arrowD1O
.
y
=
m_crossBarF
.
y
;
m_arrowD1F
.
x
=
m_crossBarF
.
x
-
arrow_dw_X
;
m_arrowD1F
.
y
=
m_crossBarF
.
y
-
arrow_dw_Y
;
m_arrowD2O
x
=
m_crossBarF
x
;
m_arrowD2O
y
=
m_crossBarF
y
;
m_arrowD2F
x
=
m_crossBarF
x
-
arrow_up_X
;
m_arrowD2F
y
=
m_crossBarF
y
-
arrow_up_Y
;
m_arrowD2O
.
x
=
m_crossBarF
.
x
;
m_arrowD2O
.
y
=
m_crossBarF
.
y
;
m_arrowD2F
.
x
=
m_crossBarF
.
x
-
arrow_up_X
;
m_arrowD2F
.
y
=
m_crossBarF
.
y
-
arrow_up_Y
;
m_featureLineGF
x
=
m_crossBarO
x
+
hx
;
m_featureLineGF
y
=
m_crossBarO
y
+
hy
;
m_featureLineGF
.
x
=
m_crossBarO
.
x
+
hx
;
m_featureLineGF
.
y
=
m_crossBarO
.
y
+
hy
;
m_featureLineDF
x
=
m_crossBarF
x
+
hx
;
m_featureLineDF
y
=
m_crossBarF
y
+
hy
;
m_featureLineDF
.
x
=
m_crossBarF
.
x
+
hx
;
m_featureLineDF
.
y
=
m_crossBarF
.
y
+
hy
;
// Calculate the better text position and orientation:
m_
Pos
.
x
=
m_Text
.
m_Pos
.
x
=
(
m_crossBarFx
+
m_featureLineGF
x
)
/
2
;
m_
Pos
.
y
=
m_Text
.
m_Pos
.
y
=
(
m_crossBarFy
+
m_featureLineGF
y
)
/
2
;
m_
Text
.
m_Pos
.
x
=
(
m_crossBarF
.
x
+
m_featureLineGF
.
x
)
/
2
;
m_
Text
.
m_Pos
.
y
=
(
m_crossBarF
.
y
+
m_featureLineGF
.
y
)
/
2
;
double
newAngle
=
-
(
angle
*
1800
/
M_PI
);
if
(
newAngle
<
0
)
newAngle
+=
3600
;
...
...
@@ -354,20 +328,16 @@ void DIMENSION::AdjustDimensionDetails( bool aDoNotChangeText )
void
DIMENSION
::
Draw
(
EDA_DRAW_PANEL
*
panel
,
wxDC
*
DC
,
GR_DRAWMODE
mode_color
,
const
wxPoint
&
offset
)
{
int
ox
,
oy
,
typeaff
,
width
;
int
typeaff
,
width
;
EDA_COLOR_T
gcolor
;
ox
=
-
offset
.
x
;
oy
=
-
offset
.
y
;
m_Text
.
Draw
(
panel
,
DC
,
mode_color
,
offset
);
BOARD
*
brd
=
GetBoard
(
);
BOARD
*
brd
=
GetBoard
();
if
(
brd
->
IsLayerVisible
(
m_Layer
)
==
false
)
return
;
gcolor
=
brd
->
GetLayerColor
(
m_Layer
);
m_Text
.
Draw
(
panel
,
DC
,
mode_color
,
offset
);
gcolor
=
brd
->
GetLayerColor
(
m_Layer
);
GRSetDrawMode
(
DC
,
mode_color
);
typeaff
=
DisplayOpt
.
DisplayDrawItems
;
...
...
@@ -382,58 +352,37 @@ void DIMENSION::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE mode_color,
width
=
0
;
case
FILLED
:
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_crossBarOx
-
ox
,
m_crossBarOy
-
oy
,
m_crossBarFx
-
ox
,
m_crossBarFy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_featureLineGOx
-
ox
,
m_featureLineGOy
-
oy
,
m_featureLineGFx
-
ox
,
m_featureLineGFy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_featureLineDOx
-
ox
,
m_featureLineDOy
-
oy
,
m_featureLineDFx
-
ox
,
m_featureLineDFy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowD1Ox
-
ox
,
m_arrowD1Oy
-
oy
,
m_arrowD1Fx
-
ox
,
m_arrowD1Fy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowD2Ox
-
ox
,
m_arrowD2Oy
-
oy
,
m_arrowD2Fx
-
ox
,
m_arrowD2Fy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowG1Ox
-
ox
,
m_arrowG1Oy
-
oy
,
m_arrowG1Fx
-
ox
,
m_arrowG1Fy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowG2Ox
-
ox
,
m_arrowG2Oy
-
oy
,
m_arrowG2Fx
-
ox
,
m_arrowG2Fy
-
oy
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_crossBarO
+
offset
,
m_crossBarF
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_featureLineGO
+
offset
,
m_featureLineGF
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_featureLineDO
+
offset
,
m_featureLineDF
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowD1O
+
offset
,
m_arrowD1F
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowD2O
+
offset
,
m_arrowD2F
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowG1O
+
offset
,
m_arrowG1F
+
offset
,
width
,
gcolor
);
GRLine
(
panel
->
GetClipBox
(),
DC
,
m_arrowG2O
+
offset
,
m_arrowG2F
+
offset
,
width
,
gcolor
);
break
;
case
SKETCH
:
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_crossBarOx
-
ox
,
m_crossBarOy
-
oy
,
m_crossBarFx
-
ox
,
m_crossBarFy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_featureLineGOx
-
ox
,
m_featureLineGOy
-
oy
,
m_featureLineGFx
-
ox
,
m_featureLineGFy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_featureLineDOx
-
ox
,
m_featureLineDOy
-
oy
,
m_featureLineDFx
-
ox
,
m_featureLineDFy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowD1Ox
-
ox
,
m_arrowD1Oy
-
oy
,
m_arrowD1Fx
-
ox
,
m_arrowD1Fy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowD2Ox
-
ox
,
m_arrowD2Oy
-
oy
,
m_arrowD2Fx
-
ox
,
m_arrowD2Fy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowG1Ox
-
ox
,
m_arrowG1Oy
-
oy
,
m_arrowG1Fx
-
ox
,
m_arrowG1Fy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowG2Ox
-
ox
,
m_arrowG2Oy
-
oy
,
m_arrowG2Fx
-
ox
,
m_arrowG2Fy
-
oy
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_crossBarO
+
offset
,
m_crossBarF
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_featureLineGO
+
offset
,
m_featureLineGF
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_featureLineDO
+
offset
,
m_featureLineDF
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowD1O
+
offset
,
m_arrowD1F
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowD2O
+
offset
,
m_arrowD2F
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowG1O
+
offset
,
m_arrowG1F
+
offset
,
width
,
gcolor
);
GRCSegm
(
panel
->
GetClipBox
(),
DC
,
m_arrowG2O
+
offset
,
m_arrowG2F
+
offset
,
width
,
gcolor
);
break
;
}
}
...
...
@@ -456,12 +405,12 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
return
true
;
// Locate SEGMENTS?
ux0
=
m_crossBarOx
;
uy0
=
m_crossBarOy
;
ux0
=
m_crossBarO
.
x
;
uy0
=
m_crossBarO
.
y
;
// Recalculate coordinates with ux0, uy0 = origin.
dx
=
m_crossBarF
x
-
ux0
;
dy
=
m_crossBarF
y
-
uy0
;
dx
=
m_crossBarF
.
x
-
ux0
;
dy
=
m_crossBarF
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -469,11 +418,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_featureLineGOx
;
uy0
=
m_featureLineGOy
;
ux0
=
m_featureLineGO
.
x
;
uy0
=
m_featureLineGO
.
y
;
dx
=
m_featureLineGF
x
-
ux0
;
dy
=
m_featureLineGF
y
-
uy0
;
dx
=
m_featureLineGF
.
x
-
ux0
;
dy
=
m_featureLineGF
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -481,11 +430,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_featureLineDOx
;
uy0
=
m_featureLineDOy
;
ux0
=
m_featureLineDO
.
x
;
uy0
=
m_featureLineDO
.
y
;
dx
=
m_featureLineDF
x
-
ux0
;
dy
=
m_featureLineDF
y
-
uy0
;
dx
=
m_featureLineDF
.
x
-
ux0
;
dy
=
m_featureLineDF
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -493,11 +442,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_arrowD1Ox
;
uy0
=
m_arrowD1Oy
;
ux0
=
m_arrowD1O
.
x
;
uy0
=
m_arrowD1O
.
y
;
dx
=
m_arrowD1F
x
-
ux0
;
dy
=
m_arrowD1F
y
-
uy0
;
dx
=
m_arrowD1F
.
x
-
ux0
;
dy
=
m_arrowD1F
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -505,11 +454,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_arrowD2Ox
;
uy0
=
m_arrowD2Oy
;
ux0
=
m_arrowD2O
.
x
;
uy0
=
m_arrowD2O
.
y
;
dx
=
m_arrowD2F
x
-
ux0
;
dy
=
m_arrowD2F
y
-
uy0
;
dx
=
m_arrowD2F
.
x
-
ux0
;
dy
=
m_arrowD2F
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -517,11 +466,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_arrowG1Ox
;
uy0
=
m_arrowG1Oy
;
ux0
=
m_arrowG1O
.
x
;
uy0
=
m_arrowG1O
.
y
;
dx
=
m_arrowG1F
x
-
ux0
;
dy
=
m_arrowG1F
y
-
uy0
;
dx
=
m_arrowG1F
.
x
-
ux0
;
dy
=
m_arrowG1F
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -529,11 +478,11 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
if
(
DistanceTest
(
m_Width
/
2
,
dx
,
dy
,
spot_cX
,
spot_cY
)
)
return
true
;
ux0
=
m_arrowG2Ox
;
uy0
=
m_arrowG2Oy
;
ux0
=
m_arrowG2O
.
x
;
uy0
=
m_arrowG2O
.
y
;
dx
=
m_arrowG2F
x
-
ux0
;
dy
=
m_arrowG2F
y
-
uy0
;
dx
=
m_arrowG2F
.
x
-
ux0
;
dy
=
m_arrowG2F
.
y
-
uy0
;
spot_cX
=
aPosition
.
x
-
ux0
;
spot_cY
=
aPosition
.
y
-
uy0
;
...
...
@@ -547,7 +496,7 @@ bool DIMENSION::HitTest( const wxPoint& aPosition )
bool
DIMENSION
::
HitTest
(
const
EDA_RECT
&
aRect
)
const
{
if
(
aRect
.
Contains
(
m_Pos
)
)
if
(
aRect
.
Contains
(
GetPosition
()
)
)
return
true
;
return
false
;
...
...
@@ -565,23 +514,23 @@ EDA_RECT DIMENSION::GetBoundingBox() const
ymin
=
bBox
.
GetY
();
ymax
=
bBox
.
GetBottom
();
xmin
=
std
::
min
(
xmin
,
m_crossBarO
x
);
xmin
=
std
::
min
(
xmin
,
m_crossBarF
x
);
ymin
=
std
::
min
(
ymin
,
m_crossBarO
y
);
ymin
=
std
::
min
(
ymin
,
m_crossBarF
y
);
xmax
=
std
::
max
(
xmax
,
m_crossBarO
x
);
xmax
=
std
::
max
(
xmax
,
m_crossBarF
x
);
ymax
=
std
::
max
(
ymax
,
m_crossBarO
y
);
ymax
=
std
::
max
(
ymax
,
m_crossBarF
y
);
xmin
=
std
::
min
(
xmin
,
m_featureLineGO
x
);
xmin
=
std
::
min
(
xmin
,
m_featureLineGF
x
);
ymin
=
std
::
min
(
ymin
,
m_featureLineGO
y
);
ymin
=
std
::
min
(
ymin
,
m_featureLineGF
y
);
xmax
=
std
::
max
(
xmax
,
m_featureLineGO
x
);
xmax
=
std
::
max
(
xmax
,
m_featureLineGF
x
);
ymax
=
std
::
max
(
ymax
,
m_featureLineGO
y
);
ymax
=
std
::
max
(
ymax
,
m_featureLineGF
y
);
xmin
=
std
::
min
(
xmin
,
m_crossBarO
.
x
);
xmin
=
std
::
min
(
xmin
,
m_crossBarF
.
x
);
ymin
=
std
::
min
(
ymin
,
m_crossBarO
.
y
);
ymin
=
std
::
min
(
ymin
,
m_crossBarF
.
y
);
xmax
=
std
::
max
(
xmax
,
m_crossBarO
.
x
);
xmax
=
std
::
max
(
xmax
,
m_crossBarF
.
x
);
ymax
=
std
::
max
(
ymax
,
m_crossBarO
.
y
);
ymax
=
std
::
max
(
ymax
,
m_crossBarF
.
y
);
xmin
=
std
::
min
(
xmin
,
m_featureLineGO
.
x
);
xmin
=
std
::
min
(
xmin
,
m_featureLineGF
.
x
);
ymin
=
std
::
min
(
ymin
,
m_featureLineGO
.
y
);
ymin
=
std
::
min
(
ymin
,
m_featureLineGF
.
y
);
xmax
=
std
::
max
(
xmax
,
m_featureLineGO
.
x
);
xmax
=
std
::
max
(
xmax
,
m_featureLineGF
.
x
);
ymax
=
std
::
max
(
ymax
,
m_featureLineGO
.
y
);
ymax
=
std
::
max
(
ymax
,
m_featureLineGF
.
y
);
bBox
.
SetX
(
xmin
);
bBox
.
SetY
(
ymin
);
...
...
pcbnew/class_dimension.h
View file @
a674dd65
...
...
@@ -44,20 +44,20 @@ class DIMENSION : public BOARD_ITEM
{
public
:
int
m_Width
;
wxPoint
m_Pos
;
int
m_Shape
;
/// Current always 0.
int
m_Unit
;
/// 0 = inches, 1 = mm
int
m_Value
;
/// value of PCB dimensions.
int
m_Shape
;
// / Currently always 0.
int
m_Unit
;
// / 0 = inches, 1 = mm
int
m_Value
;
// / value of PCB dimensions.
TEXTE_PCB
m_Text
;
int
m_crossBarOx
,
m_crossBarOy
,
m_crossBarFx
,
m_crossBarFy
;
int
m_featureLineGOx
,
m_featureLineGOy
,
m_featureLineGFx
,
m_featureLineGFy
;
int
m_featureLineDOx
,
m_featureLineDOy
,
m_featureLineDFx
,
m_featureLineDFy
;
int
m_arrowD1Ox
,
m_arrowD1Oy
,
m_arrowD1Fx
,
m_arrowD1Fy
;
int
m_arrowD2Ox
,
m_arrowD2Oy
,
m_arrowD2Fx
,
m_arrowD2Fy
;
int
m_arrowG1Ox
,
m_arrowG1Oy
,
m_arrowG1Fx
,
m_arrowG1Fy
;
int
m_arrowG2Ox
,
m_arrowG2Oy
,
m_arrowG2Fx
,
m_arrowG2Fy
;
// private: These member should be private. they are public only due to legacy code
wxPoint
m_crossBarO
,
m_crossBarF
;
wxPoint
m_featureLineGO
,
m_featureLineGF
;
wxPoint
m_featureLineDO
,
m_featureLineDF
;
wxPoint
m_arrowD1O
,
m_arrowD1F
;
wxPoint
m_arrowD2O
,
m_arrowD2F
;
wxPoint
m_arrowG1O
,
m_arrowG1F
;
wxPoint
m_arrowG2O
,
m_arrowG2F
;
public
:
DIMENSION
(
BOARD_ITEM
*
aParent
);
...
...
@@ -65,7 +65,7 @@ public:
~
DIMENSION
();
const
wxPoint
&
GetPosition
()
const
{
return
m_Pos
;
}
const
wxPoint
&
GetPosition
()
const
;
void
SetPosition
(
const
wxPoint
&
aPos
);
// override, sets m_Text's position too
...
...
pcbnew/dimension.cpp
View file @
a674dd65
...
...
@@ -244,26 +244,13 @@ DIMENSION* PCB_EDIT_FRAME::EditDimension( DIMENSION* aDimension, wxDC* aDC )
aDimension
->
SetLayer
(
getActiveLayer
()
);
aDimension
->
m_crossBarOx
=
aDimension
->
m_crossBarFx
=
pos
.
x
;
aDimension
->
m_crossBarOy
=
aDimension
->
m_crossBarFy
=
pos
.
y
;
aDimension
->
m_featureLineDOx
=
aDimension
->
m_featureLineDFx
=
pos
.
x
;
aDimension
->
m_featureLineDOy
=
aDimension
->
m_featureLineDFy
=
pos
.
y
;
aDimension
->
m_featureLineGOx
=
aDimension
->
m_featureLineGFx
=
pos
.
x
;
aDimension
->
m_featureLineGOy
=
aDimension
->
m_featureLineGFy
=
pos
.
y
;
aDimension
->
m_arrowG1Ox
=
aDimension
->
m_arrowG1Fx
=
pos
.
x
;
aDimension
->
m_arrowG1Oy
=
aDimension
->
m_arrowG1Fy
=
pos
.
y
;
aDimension
->
m_arrowG2Ox
=
aDimension
->
m_arrowG2Fx
=
pos
.
x
;
aDimension
->
m_arrowG2Oy
=
aDimension
->
m_arrowG2Fy
=
pos
.
y
;
aDimension
->
m_arrowD1Ox
=
aDimension
->
m_arrowD1Fx
=
pos
.
x
;
aDimension
->
m_arrowD1Oy
=
aDimension
->
m_arrowD1Fy
=
pos
.
y
;
aDimension
->
m_arrowD2Ox
=
aDimension
->
m_arrowD2Fx
=
pos
.
x
;
aDimension
->
m_arrowD2Oy
=
aDimension
->
m_arrowD2Fy
=
pos
.
y
;
aDimension
->
m_crossBarO
=
aDimension
->
m_crossBarF
=
pos
;
aDimension
->
m_featureLineDO
=
aDimension
->
m_featureLineDF
=
pos
;
aDimension
->
m_featureLineGO
=
aDimension
->
m_featureLineGF
=
pos
;
aDimension
->
m_arrowG1O
=
aDimension
->
m_arrowG1F
=
pos
;
aDimension
->
m_arrowG2O
=
aDimension
->
m_arrowG2F
=
pos
;
aDimension
->
m_arrowD1O
=
aDimension
->
m_arrowD1F
=
pos
;
aDimension
->
m_arrowD2O
=
aDimension
->
m_arrowD2F
=
pos
;
aDimension
->
m_Text
.
m_Size
=
GetBoard
()
->
GetDesignSettings
().
m_PcbTextSize
;
int
width
=
GetBoard
()
->
GetDesignSettings
().
m_PcbTextWidth
;
...
...
@@ -327,31 +314,28 @@ static void BuildDimension( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
if
(
status_dimension
==
1
)
{
Dimension
->
m_featureLineDOx
=
pos
.
x
;
Dimension
->
m_featureLineDOy
=
pos
.
y
;
Dimension
->
m_crossBarFx
=
Dimension
->
m_featureLineDOx
;
Dimension
->
m_crossBarFy
=
Dimension
->
m_featureLineDOy
;
Dimension
->
m_featureLineDO
=
pos
;
Dimension
->
m_crossBarF
=
Dimension
->
m_featureLineDO
;
Dimension
->
AdjustDimensionDetails
(
);
}
else
{
int
deltax
,
deltay
,
dx
,
dy
;
wxPoint
delta
;
int
dx
,
dy
;
float
angle
,
depl
;
deltax
=
Dimension
->
m_featureLineDOx
-
Dimension
->
m_featureLineGOx
;
deltay
=
Dimension
->
m_featureLineDOy
-
Dimension
->
m_featureLineGOy
;
delta
=
Dimension
->
m_featureLineDO
-
Dimension
->
m_featureLineGO
;
/* Calculating the direction of travel perpendicular to the selected axis. */
angle
=
atan2
(
(
double
)
delta
y
,
(
double
)
delta
x
)
+
(
M_PI
/
2
);
angle
=
atan2
(
(
double
)
delta
.
y
,
(
double
)
delta
.
x
)
+
(
M_PI
/
2
);
deltax
=
pos
.
x
-
Dimension
->
m_featureLineDOx
;
deltay
=
pos
.
y
-
Dimension
->
m_featureLineDOy
;
depl
=
(
deltax
*
cos
(
angle
)
)
+
(
deltay
*
sin
(
angle
)
);
delta
=
pos
-
Dimension
->
m_featureLineDO
;
depl
=
(
delta
.
x
*
cos
(
angle
)
)
+
(
delta
.
y
*
sin
(
angle
)
);
dx
=
(
int
)
(
depl
*
cos
(
angle
)
);
dy
=
(
int
)
(
depl
*
sin
(
angle
)
);
Dimension
->
m_crossBarO
x
=
Dimension
->
m_featureLineGO
x
+
dx
;
Dimension
->
m_crossBarO
y
=
Dimension
->
m_featureLineGO
y
+
dy
;
Dimension
->
m_crossBarF
x
=
Dimension
->
m_featureLineDO
x
+
dx
;
Dimension
->
m_crossBarF
y
=
Dimension
->
m_featureLineDO
y
+
dy
;
Dimension
->
m_crossBarO
.
x
=
Dimension
->
m_featureLineGO
.
x
+
dx
;
Dimension
->
m_crossBarO
.
y
=
Dimension
->
m_featureLineGO
.
y
+
dy
;
Dimension
->
m_crossBarF
.
x
=
Dimension
->
m_featureLineDO
.
x
+
dx
;
Dimension
->
m_crossBarF
.
y
=
Dimension
->
m_featureLineDO
.
y
+
dy
;
Dimension
->
AdjustDimensionDetails
(
);
}
...
...
pcbnew/kicad_plugin.cpp
View file @
a674dd65
...
...
@@ -644,46 +644,46 @@ void PCB_IO::format( DIMENSION* aDimension, int aNestLevel ) const
Format
(
(
TEXTE_PCB
*
)
&
aDimension
->
m_Text
,
aNestLevel
+
1
);
m_out
->
Print
(
aNestLevel
+
1
,
"(feature1 (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_featureLineDOx
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDOy
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDFx
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDFy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_featureLineDO
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDO
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDF
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineDF
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(feature2 (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_featureLineGOx
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGOy
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGFx
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGFy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_featureLineGO
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGO
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGF
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_featureLineGF
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(crossbar (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_crossBarOx
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarOy
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarFx
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarFy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_crossBarO
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarO
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarF
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_crossBarF
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(arrow1a (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_arrowD1Ox
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1Oy
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1Fx
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1Fy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_arrowD1O
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1O
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1F
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD1F
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(arrow1b (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_arrowD2Ox
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2Oy
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2Fx
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2Fy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_arrowD2O
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2O
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2F
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowD2F
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(arrow2a (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_arrowG1Ox
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1Oy
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1Fx
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1Fy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_arrowG1O
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1O
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1F
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG1F
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
+
1
,
"(arrow2b (pts (xy %s %s) (xy %s %s)))
\n
"
,
FMT_IU
(
aDimension
->
m_arrowG2Ox
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2Oy
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2Fx
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2Fy
).
c_str
()
);
FMT_IU
(
aDimension
->
m_arrowG2O
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2O
.
y
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2F
.
x
).
c_str
(),
FMT_IU
(
aDimension
->
m_arrowG2F
.
y
).
c_str
()
);
m_out
->
Print
(
aNestLevel
,
")
\n
"
);
}
...
...
pcbnew/legacy_plugin.cpp
View file @
a674dd65
...
...
@@ -2485,10 +2485,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
crossBarFy
=
biuParse
(
data
,
&
data
);
BIU
width
=
biuParse
(
data
);
dim
->
m_crossBarOx
=
crossBarOx
;
dim
->
m_crossBarOy
=
crossBarOy
;
dim
->
m_crossBarFx
=
crossBarFx
;
dim
->
m_crossBarFy
=
crossBarFy
;
dim
->
m_crossBarO
.
x
=
crossBarOx
;
dim
->
m_crossBarO
.
y
=
crossBarOy
;
dim
->
m_crossBarF
.
x
=
crossBarFx
;
dim
->
m_crossBarF
.
y
=
crossBarFy
;
dim
->
m_Width
=
width
;
(
void
)
ignore
;
}
...
...
@@ -2503,10 +2503,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
featureLineDFx
=
biuParse
(
data
,
&
data
);
BIU
featureLineDFy
=
biuParse
(
data
);
dim
->
m_featureLineDOx
=
featureLineDOx
;
dim
->
m_featureLineDOy
=
featureLineDOy
;
dim
->
m_featureLineDFx
=
featureLineDFx
;
dim
->
m_featureLineDFy
=
featureLineDFy
;
dim
->
m_featureLineDO
.
x
=
featureLineDOx
;
dim
->
m_featureLineDO
.
y
=
featureLineDOy
;
dim
->
m_featureLineDF
.
x
=
featureLineDFx
;
dim
->
m_featureLineDF
.
y
=
featureLineDFy
;
(
void
)
ignore
;
}
...
...
@@ -2520,10 +2520,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
featureLineGFx
=
biuParse
(
data
,
&
data
);
BIU
featureLineGFy
=
biuParse
(
data
);
dim
->
m_featureLineGOx
=
featureLineGOx
;
dim
->
m_featureLineGOy
=
featureLineGOy
;
dim
->
m_featureLineGFx
=
featureLineGFx
;
dim
->
m_featureLineGFy
=
featureLineGFy
;
dim
->
m_featureLineGO
.
x
=
featureLineGOx
;
dim
->
m_featureLineGO
.
y
=
featureLineGOy
;
dim
->
m_featureLineGF
.
x
=
featureLineGFx
;
dim
->
m_featureLineGF
.
y
=
featureLineGFy
;
(
void
)
ignore
;
}
...
...
@@ -2537,10 +2537,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
arrowD1Fx
=
biuParse
(
data
,
&
data
);
BIU
arrowD1Fy
=
biuParse
(
data
);
dim
->
m_arrowD1Ox
=
arrowD10x
;
dim
->
m_arrowD1Oy
=
arrowD10y
;
dim
->
m_arrowD1Fx
=
arrowD1Fx
;
dim
->
m_arrowD1Fy
=
arrowD1Fy
;
dim
->
m_arrowD1O
.
x
=
arrowD10x
;
dim
->
m_arrowD1O
.
y
=
arrowD10y
;
dim
->
m_arrowD1F
.
x
=
arrowD1Fx
;
dim
->
m_arrowD1F
.
y
=
arrowD1Fy
;
(
void
)
ignore
;
}
...
...
@@ -2554,10 +2554,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
arrowD2Fx
=
biuParse
(
data
,
&
data
);
BIU
arrowD2Fy
=
biuParse
(
data
,
&
data
);
dim
->
m_arrowD2Ox
=
arrowD2Ox
;
dim
->
m_arrowD2Oy
=
arrowD2Oy
;
dim
->
m_arrowD2Fx
=
arrowD2Fx
;
dim
->
m_arrowD2Fy
=
arrowD2Fy
;
dim
->
m_arrowD2O
.
x
=
arrowD2Ox
;
dim
->
m_arrowD2O
.
y
=
arrowD2Oy
;
dim
->
m_arrowD2F
.
x
=
arrowD2Fx
;
dim
->
m_arrowD2F
.
y
=
arrowD2Fy
;
(
void
)
ignore
;
}
...
...
@@ -2570,10 +2570,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
arrowG1Fx
=
biuParse
(
data
,
&
data
);
BIU
arrowG1Fy
=
biuParse
(
data
,
&
data
);
dim
->
m_arrowG1Ox
=
arrowG1Ox
;
dim
->
m_arrowG1Oy
=
arrowG1Oy
;
dim
->
m_arrowG1Fx
=
arrowG1Fx
;
dim
->
m_arrowG1Fy
=
arrowG1Fy
;
dim
->
m_arrowG1O
.
x
=
arrowG1Ox
;
dim
->
m_arrowG1O
.
y
=
arrowG1Oy
;
dim
->
m_arrowG1F
.
x
=
arrowG1Fx
;
dim
->
m_arrowG1F
.
y
=
arrowG1Fy
;
(
void
)
ignore
;
}
...
...
@@ -2586,10 +2586,10 @@ void LEGACY_PLUGIN::loadDIMENSION()
BIU
arrowG2Fx
=
biuParse
(
data
,
&
data
);
BIU
arrowG2Fy
=
biuParse
(
data
,
&
data
);
dim
->
m_arrowG2Ox
=
arrowG2Ox
;
dim
->
m_arrowG2Oy
=
arrowG2Oy
;
dim
->
m_arrowG2Fx
=
arrowG2Fx
;
dim
->
m_arrowG2Fy
=
arrowG2Fy
;
dim
->
m_arrowG2O
.
x
=
arrowG2Ox
;
dim
->
m_arrowG2O
.
y
=
arrowG2Oy
;
dim
->
m_arrowG2F
.
x
=
arrowG2Fx
;
dim
->
m_arrowG2F
.
y
=
arrowG2Fy
;
(
void
)
ignore
;
}
}
...
...
@@ -3743,38 +3743,38 @@ void LEGACY_PLUGIN::saveDIMENTION( const DIMENSION* me ) const
);
fprintf
(
m_fp
,
"Sb %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_crossBarO
x
,
me
->
m_crossBarO
y
).
c_str
(),
fmtBIUPair
(
me
->
m_crossBarF
x
,
me
->
m_crossBarF
y
).
c_str
(),
fmtBIUPair
(
me
->
m_crossBarO
.
x
,
me
->
m_crossBarO
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_crossBarF
.
x
,
me
->
m_crossBarF
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"Sd %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_featureLineDO
x
,
me
->
m_featureLineDO
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineDF
x
,
me
->
m_featureLineDF
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineDO
.
x
,
me
->
m_featureLineDO
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineDF
.
x
,
me
->
m_featureLineDF
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"Sg %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_featureLineGO
x
,
me
->
m_featureLineGO
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineGF
x
,
me
->
m_featureLineGF
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineGO
.
x
,
me
->
m_featureLineGO
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_featureLineGF
.
x
,
me
->
m_featureLineGF
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"S1 %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_arrowD1O
x
,
me
->
m_arrowD1O
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD1F
x
,
me
->
m_arrowD1F
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD1O
.
x
,
me
->
m_arrowD1O
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD1F
.
x
,
me
->
m_arrowD1F
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"S2 %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_arrowD2O
x
,
me
->
m_arrowD2O
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD2F
x
,
me
->
m_arrowD2F
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD2O
.
x
,
me
->
m_arrowD2O
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowD2F
.
x
,
me
->
m_arrowD2F
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"S3 %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_arrowG1O
x
,
me
->
m_arrowG1O
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG1F
x
,
me
->
m_arrowG1F
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG1O
.
x
,
me
->
m_arrowG1O
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG1F
.
x
,
me
->
m_arrowG1F
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"S4 %d %s %s %s
\n
"
,
S_SEGMENT
,
fmtBIUPair
(
me
->
m_arrowG2O
x
,
me
->
m_arrowG2O
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG2F
x
,
me
->
m_arrowG2F
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG2O
.
x
,
me
->
m_arrowG2O
.
y
).
c_str
(),
fmtBIUPair
(
me
->
m_arrowG2F
.
x
,
me
->
m_arrowG2F
.
y
).
c_str
(),
fmtBIU
(
me
->
GetWidth
()
).
c_str
()
);
fprintf
(
m_fp
,
"$endCOTATION
\n
"
);
...
...
pcbnew/pcb_parser.cpp
View file @
a674dd65
...
...
@@ -1418,8 +1418,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_featureLineDO
x
,
&
dimension
->
m_featureLineDO
y
);
parseXY
(
&
dimension
->
m_featureLineDF
x
,
&
dimension
->
m_featureLineDF
y
);
parseXY
(
&
dimension
->
m_featureLineDO
.
x
,
&
dimension
->
m_featureLineDO
.
y
);
parseXY
(
&
dimension
->
m_featureLineDF
.
x
,
&
dimension
->
m_featureLineDF
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1431,8 +1431,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_featureLineGO
x
,
&
dimension
->
m_featureLineGO
y
);
parseXY
(
&
dimension
->
m_featureLineGF
x
,
&
dimension
->
m_featureLineGF
y
);
parseXY
(
&
dimension
->
m_featureLineGO
.
x
,
&
dimension
->
m_featureLineGO
.
y
);
parseXY
(
&
dimension
->
m_featureLineGF
.
x
,
&
dimension
->
m_featureLineGF
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1445,8 +1445,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_crossBarO
x
,
&
dimension
->
m_crossBarO
y
);
parseXY
(
&
dimension
->
m_crossBarF
x
,
&
dimension
->
m_crossBarF
y
);
parseXY
(
&
dimension
->
m_crossBarO
.
x
,
&
dimension
->
m_crossBarO
.
y
);
parseXY
(
&
dimension
->
m_crossBarF
.
x
,
&
dimension
->
m_crossBarF
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1458,8 +1458,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_arrowD1O
x
,
&
dimension
->
m_arrowD1O
y
);
parseXY
(
&
dimension
->
m_arrowD1F
x
,
&
dimension
->
m_arrowD1F
y
);
parseXY
(
&
dimension
->
m_arrowD1O
.
x
,
&
dimension
->
m_arrowD1O
.
y
);
parseXY
(
&
dimension
->
m_arrowD1F
.
x
,
&
dimension
->
m_arrowD1F
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1471,8 +1471,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_arrowD2O
x
,
&
dimension
->
m_arrowD2O
y
);
parseXY
(
&
dimension
->
m_arrowD2F
x
,
&
dimension
->
m_arrowD2F
y
);
parseXY
(
&
dimension
->
m_arrowD2O
.
x
,
&
dimension
->
m_arrowD2O
.
y
);
parseXY
(
&
dimension
->
m_arrowD2F
.
x
,
&
dimension
->
m_arrowD2F
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1484,8 +1484,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_arrowG1O
x
,
&
dimension
->
m_arrowG1O
y
);
parseXY
(
&
dimension
->
m_arrowG1F
x
,
&
dimension
->
m_arrowG1F
y
);
parseXY
(
&
dimension
->
m_arrowG1O
.
x
,
&
dimension
->
m_arrowG1O
.
y
);
parseXY
(
&
dimension
->
m_arrowG1F
.
x
,
&
dimension
->
m_arrowG1F
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
@@ -1497,8 +1497,8 @@ DIMENSION* PCB_PARSER::parseDIMENSION() throw( IO_ERROR, PARSE_ERROR )
if
(
token
!=
T_pts
)
Expecting
(
T_pts
);
parseXY
(
&
dimension
->
m_arrowG2O
x
,
&
dimension
->
m_arrowG2O
y
);
parseXY
(
&
dimension
->
m_arrowG2F
x
,
&
dimension
->
m_arrowG2F
y
);
parseXY
(
&
dimension
->
m_arrowG2O
.
x
,
&
dimension
->
m_arrowG2O
.
y
);
parseXY
(
&
dimension
->
m_arrowG2F
.
x
,
&
dimension
->
m_arrowG2F
.
y
);
NeedRIGHT
();
NeedRIGHT
();
break
;
...
...
pcbnew/plot_brditems_plotter.cpp
View file @
a674dd65
...
...
@@ -277,32 +277,32 @@ void BRDITEMS_PLOTTER::PlotDimension( DIMENSION* aDim )
PlotTextePcb
(
&
aDim
->
m_Text
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_crossBarOx
,
aDim
->
m_crossBarOy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_crossBarFx
,
aDim
->
m_crossBarFy
)
);
draw
.
SetStart
(
aDim
->
m_crossBarO
);
draw
.
SetEnd
(
aDim
->
m_crossBarF
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_featureLineGOx
,
aDim
->
m_featureLineGOy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_featureLineGFx
,
aDim
->
m_featureLineGFy
)
);
draw
.
SetStart
(
aDim
->
m_featureLineGO
);
draw
.
SetEnd
(
aDim
->
m_featureLineGF
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_featureLineDOx
,
aDim
->
m_featureLineDOy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_featureLineDFx
,
aDim
->
m_featureLineDFy
)
);
draw
.
SetStart
(
aDim
->
m_featureLineDO
);
draw
.
SetEnd
(
aDim
->
m_featureLineDF
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_arrowD1Ox
,
aDim
->
m_arrowD1Oy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_arrowD1Fx
,
aDim
->
m_arrowD1Fy
)
);
draw
.
SetStart
(
aDim
->
m_arrowD1O
);
draw
.
SetEnd
(
aDim
->
m_arrowD1F
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_arrowD2Ox
,
aDim
->
m_arrowD2Oy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_arrowD2Fx
,
aDim
->
m_arrowD2Fy
)
);
draw
.
SetStart
(
aDim
->
m_arrowD2O
);
draw
.
SetEnd
(
aDim
->
m_arrowD2F
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_arrowG1Ox
,
aDim
->
m_arrowG1Oy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_arrowG1Fx
,
aDim
->
m_arrowG1Fy
)
);
draw
.
SetStart
(
aDim
->
m_arrowG1O
);
draw
.
SetEnd
(
aDim
->
m_arrowG1F
);
PlotDrawSegment
(
&
draw
);
draw
.
SetStart
(
wxPoint
(
aDim
->
m_arrowG2Ox
,
aDim
->
m_arrowG2Oy
)
);
draw
.
SetEnd
(
wxPoint
(
aDim
->
m_arrowG2Fx
,
aDim
->
m_arrowG2Fy
)
);
draw
.
SetStart
(
aDim
->
m_arrowG2O
);
draw
.
SetEnd
(
aDim
->
m_arrowG2F
);
PlotDrawSegment
(
&
draw
);
}
...
...
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