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
143d0790
Commit
143d0790
authored
Jan 23, 2008
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added ZONE_CONTAINER::GetClass() and beautified
parent
9da29ee2
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
167 additions
and
117 deletions
+167
-117
class_zone.h
pcbnew/class_zone.h
+167
-117
No files found.
pcbnew/class_zone.h
View file @
143d0790
...
@@ -10,10 +10,11 @@
...
@@ -10,10 +10,11 @@
/************************/
/************************/
/* class ZONE_CONTAINER */
/* class ZONE_CONTAINER */
/************************/
/************************/
/* handle a list of polygons delimiting a copper zone
/* handle a list of polygons delimiting a copper zone
* a zone is described by a main polygon, a time stamp, a layer and a net name.
* a zone is described by a main polygon, a time stamp, a layer and a net name.
* others polygons inside this main polygon are holes.
* others polygons inside this main polygon are holes.
*/
*/
class
ZONE_CONTAINER
:
public
BOARD_ITEM
class
ZONE_CONTAINER
:
public
BOARD_ITEM
{
{
...
@@ -23,8 +24,9 @@ public:
...
@@ -23,8 +24,9 @@ public:
THERMAL_PAD
,
// Use thermal relief for pads
THERMAL_PAD
,
// Use thermal relief for pads
PAD_IN_ZONE
// pads are covered by copper
PAD_IN_ZONE
// pads are covered by copper
};
};
wxString
m_Netname
;
// Net Name
wxString
m_Netname
;
// Net Name
CPolyLine
*
m_Poly
;
// outlines
CPolyLine
*
m_Poly
;
// outlines
int
m_CornerSelection
;
// For corner moving, corner index to drag, or -1 if no selection
int
m_CornerSelection
;
// For corner moving, corner index to drag, or -1 if no selection
int
m_ZoneClearance
;
// clearance value
int
m_ZoneClearance
;
// clearance value
int
m_GridFillValue
;
// Grid used for filling
int
m_GridFillValue
;
// Grid used for filling
...
@@ -35,24 +37,33 @@ private:
...
@@ -35,24 +37,33 @@ private:
int
m_NetCode
;
// Net number for fast comparisons
int
m_NetCode
;
// Net number for fast comparisons
public
:
public
:
ZONE_CONTAINER
(
BOARD
*
parent
);
ZONE_CONTAINER
(
BOARD
*
parent
);
~
ZONE_CONTAINER
();
~
ZONE_CONTAINER
();
bool
Save
(
FILE
*
aFile
)
const
;
bool
Save
(
FILE
*
aFile
)
const
;
int
ReadDescr
(
FILE
*
aFile
,
int
*
aLineNum
=
NULL
);
int
ReadDescr
(
FILE
*
aFile
,
int
*
aLineNum
=
NULL
);
wxPoint
&
GetPosition
(
)
{
static
wxPoint
pos
;
return
pos
;
}
wxPoint
&
GetPosition
()
void
UnLink
(
void
)
{};
{
static
wxPoint
pos
;
return
pos
;
}
/** Function copy
void
UnLink
(
void
)
{
};
/**
* Function copy
* copy usefull data from the source.
* copy usefull data from the source.
* flags and linked list pointers are NOT copied
* flags and linked list pointers are NOT copied
*/
*/
void
Copy
(
ZONE_CONTAINER
*
src
);
void
Copy
(
ZONE_CONTAINER
*
src
);
void
Display_Infos
(
WinEDA_DrawFrame
*
frame
);
void
Display_Infos
(
WinEDA_DrawFrame
*
frame
);
/** Function Draw
/**
* Function Draw
* Draws the zone outline.
* Draws the zone outline.
* @param panel = current Draw Panel
* @param panel = current Draw Panel
* @param DC = current Device Context
* @param DC = current Device Context
...
@@ -62,8 +73,12 @@ public:
...
@@ -62,8 +73,12 @@ public:
void
Draw
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
void
Draw
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
const
wxPoint
&
offset
,
int
draw_mode
);
const
wxPoint
&
offset
,
int
draw_mode
);
int
GetNet
(
void
)
const
{
return
m_NetCode
;
}
int
GetNet
(
void
)
const
{
return
m_NetCode
;
}
void
SetNet
(
int
anet_code
);
void
SetNet
(
int
anet_code
);
/**
/**
* Function HitTest
* Function HitTest
* tests if the given wxPoint is within the bounds of this object.
* tests if the given wxPoint is within the bounds of this object.
...
@@ -79,6 +94,7 @@ public:
...
@@ -79,6 +94,7 @@ public:
* @param refPos : A wxPoint to test
* @param refPos : A wxPoint to test
*/
*/
int
HitTestForCorner
(
const
wxPoint
&
refPos
);
int
HitTestForCorner
(
const
wxPoint
&
refPos
);
/**
/**
* Function HitTestForEdge
* Function HitTestForEdge
* tests if the given wxPoint near a corner, or near the segment define by 2 corners.
* tests if the given wxPoint near a corner, or near the segment define by 2 corners.
...
@@ -95,7 +111,8 @@ public:
...
@@ -95,7 +111,8 @@ public:
*/
*/
bool
HitTest
(
EDA_Rect
&
refArea
);
bool
HitTest
(
EDA_Rect
&
refArea
);
/** Function Fill_Zone()
/**
* Function Fill_Zone()
* Calculate the zone filling
* Calculate the zone filling
* The zone outline is a frontier, and can be complex (with holes)
* The zone outline is a frontier, and can be complex (with holes)
* The filling starts from starting points like pads, tracks.
* The filling starts from starting points like pads, tracks.
...
@@ -105,15 +122,16 @@ public:
...
@@ -105,15 +122,16 @@ public:
* @param verbose = true to show error messages
* @param verbose = true to show error messages
* @return error level (0 = no error)
* @return error level (0 = no error)
*/
*/
int
Fill_Zone
(
WinEDA_PcbFrame
*
frame
,
wxDC
*
DC
,
bool
verbose
=
TRUE
);
int
Fill_Zone
(
WinEDA_PcbFrame
*
frame
,
wxDC
*
DC
,
bool
verbose
=
TRUE
);
/* Geometric transformations: */
/* Geometric transformations: */
/**
/**
* Function Move
* Function Move
* Move the outlines
* Move the outlines
* @param offset = moving vector
* @param offset = moving vector
*/
*/
void
Move
(
const
wxPoint
&
offset
);
void
Move
(
const
wxPoint
&
offset
);
/**
/**
* Function Move
* Function Move
...
@@ -121,8 +139,7 @@ public:
...
@@ -121,8 +139,7 @@ public:
* @param centre = rot centre
* @param centre = rot centre
* @param angle = in 0.1 degree
* @param angle = in 0.1 degree
*/
*/
void
Rotate
(
const
wxPoint
&
centre
,
int
angle
);
void
Rotate
(
const
wxPoint
&
centre
,
int
angle
);
/**
/**
* Function Mirror
* Function Mirror
...
@@ -130,18 +147,29 @@ public:
...
@@ -130,18 +147,29 @@ public:
* the layer is not changed
* the layer is not changed
* @param mirror_ref = vertical axis position
* @param mirror_ref = vertical axis position
*/
*/
void
Mirror
(
const
wxPoint
&
mirror_ref
);
void
Mirror
(
const
wxPoint
&
mirror_ref
);
/**
* Function GetClass
* returns the class name.
* @return wxString
*/
wxString
GetClass
()
const
{
return
wxT
(
"ZONE_CONTAINER"
);
}
};
};
/*******************/
/*******************/
/* class EDGE_ZONE */
/* class EDGE_ZONE */
/*******************/
/*******************/
/* Classe used temporary to create a zone outline.
/* Classe used temporary to create a zone outline.
*
*
* TODO: remove this class and use only the ZONE_CONTAINER::m_Poly
* TODO: remove this class and use only the ZONE_CONTAINER::m_Poly
* to create outlines
* to create outlines
*/
*/
class
EDGE_ZONE
:
public
DRAWSEGMENT
class
EDGE_ZONE
:
public
DRAWSEGMENT
{
{
private
:
private
:
...
@@ -152,12 +180,24 @@ public:
...
@@ -152,12 +180,24 @@ public:
~
EDGE_ZONE
();
~
EDGE_ZONE
();
EDGE_ZONE
*
Next
()
{
return
(
EDGE_ZONE
*
)
Pnext
;
}
EDGE_ZONE
*
Next
()
{
EDGE_ZONE
*
Back
()
{
return
(
EDGE_ZONE
*
)
Pback
;
}
return
(
EDGE_ZONE
*
)
Pnext
;
}
int
GetNet
(
void
)
const
{
return
m_NetCode
;
}
void
SetNet
(
int
anet_code
)
{
m_NetCode
=
anet_code
;
}
EDGE_ZONE
*
Back
()
{
return
(
EDGE_ZONE
*
)
Pback
;
}
int
GetNet
(
void
)
const
{
return
m_NetCode
;
}
void
SetNet
(
int
anet_code
)
{
m_NetCode
=
anet_code
;
}
/**
/**
* Function Display_Infos
* Function Display_Infos
...
@@ -175,6 +215,16 @@ public:
...
@@ -175,6 +215,16 @@ public:
* @return bool - true if success writing else false.
* @return bool - true if success writing else false.
*/
*/
bool
Save
(
FILE
*
aFile
)
const
;
bool
Save
(
FILE
*
aFile
)
const
;
/**
* Function GetClass
* returns the class name.
* @return wxString
*/
wxString
GetClass
()
const
{
return
wxT
(
"EDGE_ZONE"
);
}
};
};
#endif // #ifndef CLASS_ZONE_H
#endif // #ifndef CLASS_ZONE_H
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