Eeschema: fix issues with pin shapes related to clock input pin shapes.
Fixes from master, commit eaea03217: * Fix not drawn shapes for clock low, inverted clock and broken shape for falling edge clock * Especially, shape for falling edge clock was a not existing shape, therefore useless. * now falling edge clock and clock low shape are similar.
This commit is contained in:
parent
3442cc3d1a
commit
b234ff9234
|
@ -8,14 +8,20 @@
|
||||||
static const unsigned char png[] = {
|
static const unsigned char png[] = {
|
||||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||||
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff,
|
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff,
|
||||||
0x61, 0x00, 0x00, 0x00, 0x60, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x63, 0x90, 0x92, 0x92, 0xfa,
|
0x61, 0x00, 0x00, 0x00, 0xb9, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x63, 0x60, 0x40, 0x03, 0x52,
|
||||||
0x0f, 0xc2, 0x0c, 0xe4, 0x02, 0xaa, 0x19, 0x20, 0x2e, 0x2e, 0x2e, 0x46, 0x91, 0x01, 0xd2, 0xd2,
|
0x52, 0x52, 0xff, 0x41, 0x98, 0x01, 0x0b, 0x10, 0x11, 0x11, 0xe1, 0x95, 0x94, 0x94, 0xdc, 0xca,
|
||||||
0xd2, 0x97, 0xc9, 0x32, 0x04, 0x66, 0x00, 0x14, 0x5f, 0x97, 0x97, 0x97, 0x97, 0x24, 0xd7, 0x80,
|
0x80, 0x0f, 0xe0, 0x32, 0x40, 0x5a, 0x5a, 0x5a, 0x06, 0x28, 0x7e, 0x1e, 0x97, 0xe1, 0x70, 0x1b,
|
||||||
0x4b, 0x64, 0x19, 0x02, 0x33, 0x40, 0x42, 0x42, 0x42, 0x94, 0x2c, 0x43, 0x90, 0x63, 0x01, 0x14,
|
0xb0, 0x19, 0x20, 0x23, 0x23, 0x63, 0x06, 0x14, 0x7b, 0x81, 0xcf, 0x75, 0x20, 0xc0, 0x08, 0xb4,
|
||||||
0x06, 0xa0, 0xb0, 0x40, 0xf3, 0x16, 0x5e, 0x4c, 0x3d, 0x03, 0xd0, 0xbd, 0x20, 0x2a, 0x2a, 0x2a,
|
0x65, 0x2d, 0xba, 0x22, 0xa0, 0x93, 0x83, 0x80, 0xfc, 0xaf, 0x30, 0x71, 0x9c, 0x06, 0x00, 0x35,
|
||||||
0x41, 0x76, 0x20, 0x12, 0xad, 0x19, 0x5b, 0x34, 0x92, 0xa4, 0x99, 0xaa, 0x09, 0x89, 0xe2, 0xa4,
|
0xd7, 0xa0, 0x2b, 0x02, 0xd2, 0x65, 0x40, 0xfc, 0x17, 0x2a, 0x36, 0x0b, 0xa7, 0x01, 0x40, 0x41,
|
||||||
0x3c, 0x60, 0xb9, 0x11, 0x00, 0xd8, 0xbd, 0x63, 0x3e, 0x86, 0xe5, 0x97, 0x0f, 0x00, 0x00, 0x00,
|
0x37, 0x20, 0xfe, 0x83, 0xa4, 0x18, 0x84, 0xa7, 0x42, 0xe9, 0x7f, 0x40, 0xdc, 0x80, 0x33, 0x7c,
|
||||||
0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
0x80, 0xfe, 0x53, 0x05, 0x0a, 0xbe, 0x07, 0x49, 0x00, 0x9d, 0x5b, 0x85, 0xec, 0x0a, 0x20, 0xfe,
|
||||||
|
0x0e, 0xc4, 0x11, 0x78, 0x03, 0x18, 0x28, 0x70, 0x05, 0x24, 0x08, 0xf2, 0x3f, 0x28, 0x1c, 0xd0,
|
||||||
|
0x0c, 0x20, 0x88, 0x29, 0x37, 0x40, 0x5c, 0x5c, 0x5c, 0x11, 0xc8, 0x78, 0x03, 0x35, 0xa4, 0x9a,
|
||||||
|
0x50, 0x54, 0xe1, 0x4a, 0x3c, 0xae, 0xe8, 0x81, 0xc8, 0x40, 0x2a, 0x40, 0xb6, 0x9d, 0x2c, 0x03,
|
||||||
|
0x70, 0x25, 0x24, 0x92, 0x00, 0xae, 0xa4, 0x4c, 0x6a, 0x78, 0xd0, 0xd7, 0x00, 0x00, 0xe0, 0x1c,
|
||||||
|
0x80, 0xeb, 0x37, 0x41, 0x6c, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
|
||||||
|
0x60, 0x82,
|
||||||
};
|
};
|
||||||
|
|
||||||
const BITMAP_OPAQUE pinshape_clock_fall_xpm[1] = {{ png, sizeof( png ), "pinshape_clock_fall_xpm" }};
|
const BITMAP_OPAQUE pinshape_clock_fall_xpm[1] = {{ png, sizeof( png ), "pinshape_clock_fall_xpm" }};
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
width="16"
|
width="16"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
inkscape:version="0.48.4 r9939"
|
inkscape:version="0.92.0 r15299"
|
||||||
sodipodi:docname="pinshape_clock_active_low.svg">
|
sodipodi:docname="pinshape_clock_active_low.svg">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata22">
|
id="metadata22">
|
||||||
|
@ -21,8 +21,23 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title />
|
<dc:title></dc:title>
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by/4.0/" />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
</cc:License>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
|
@ -36,15 +51,15 @@
|
||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="1366"
|
inkscape:window-width="1920"
|
||||||
inkscape:window-height="744"
|
inkscape:window-height="1033"
|
||||||
id="namedview18"
|
id="namedview18"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:zoom="24.969708"
|
inkscape:zoom="24.969708"
|
||||||
inkscape:cx="4.4578733"
|
inkscape:cx="4.4578733"
|
||||||
inkscape:cy="9.2981956"
|
inkscape:cy="9.2981956"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="-4"
|
||||||
inkscape:window-y="24"
|
inkscape:window-y="-4"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="svg2">
|
inkscape:current-layer="svg2">
|
||||||
<inkscape:grid
|
<inkscape:grid
|
||||||
|
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.2 KiB |
|
@ -11,8 +11,8 @@
|
||||||
width="16"
|
width="16"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
inkscape:version="0.48.4 r9939"
|
inkscape:version="0.92.0 r15299"
|
||||||
sodipodi:docname="pinshape_clock_fall.svg">
|
sodipodi:docname="pinshape_clock_active_low.svg">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata22">
|
id="metadata22">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -21,8 +21,23 @@
|
||||||
<dc:format>image/svg+xml</dc:format>
|
<dc:format>image/svg+xml</dc:format>
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title />
|
<dc:title></dc:title>
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by/4.0/" />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
</cc:License>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
|
@ -36,15 +51,15 @@
|
||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="1366"
|
inkscape:window-width="1920"
|
||||||
inkscape:window-height="744"
|
inkscape:window-height="1033"
|
||||||
id="namedview18"
|
id="namedview18"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:zoom="24.969708"
|
inkscape:zoom="24.969708"
|
||||||
inkscape:cx="4.4578733"
|
inkscape:cx="4.4578733"
|
||||||
inkscape:cy="9.2981956"
|
inkscape:cy="9.2981956"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="-4"
|
||||||
inkscape:window-y="24"
|
inkscape:window-y="-4"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="svg2">
|
inkscape:current-layer="svg2">
|
||||||
<inkscape:grid
|
<inkscape:grid
|
||||||
|
@ -56,19 +71,25 @@
|
||||||
snapvisiblegridlinesonly="true" />
|
snapvisiblegridlinesonly="true" />
|
||||||
</sodipodi:namedview>
|
</sodipodi:namedview>
|
||||||
<path
|
<path
|
||||||
d="M 1,0 1,16"
|
d="M 5,0 5,16"
|
||||||
id="path12"
|
id="path12"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
<path
|
<path
|
||||||
d="M 6,8 16,8"
|
d="M 5,8 16,8"
|
||||||
id="path14"
|
id="path14"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
sodipodi:nodetypes="cc" />
|
sodipodi:nodetypes="cc" />
|
||||||
<path
|
<path
|
||||||
d="M 1,13 6,8 1,3"
|
sodipodi:nodetypes="ccc"
|
||||||
|
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4010"
|
||||||
|
d="m 5,8 7,-6 0,6" />
|
||||||
|
<path
|
||||||
|
d="M 5,13 1,8 5,3"
|
||||||
id="path4094"
|
id="path4094"
|
||||||
inkscape:connector-curvature="0"
|
inkscape:connector-curvature="0"
|
||||||
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
style="fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.2 KiB |
|
@ -11,8 +11,8 @@
|
||||||
width="16"
|
width="16"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg2"
|
id="svg2"
|
||||||
inkscape:version="0.48.4 r9939"
|
inkscape:version="0.92.0 r15299"
|
||||||
sodipodi:docname="pinshape_clock_normal.svg">
|
sodipodi:docname="pinshape_clock_invert.svg">
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata22">
|
id="metadata22">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -22,7 +22,22 @@
|
||||||
<dc:type
|
<dc:type
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<dc:title></dc:title>
|
<dc:title></dc:title>
|
||||||
|
<cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by/4.0/" />
|
||||||
</cc:Work>
|
</cc:Work>
|
||||||
|
<cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by/4.0/">
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
</cc:License>
|
||||||
</rdf:RDF>
|
</rdf:RDF>
|
||||||
</metadata>
|
</metadata>
|
||||||
<defs
|
<defs
|
||||||
|
@ -36,15 +51,15 @@
|
||||||
guidetolerance="10"
|
guidetolerance="10"
|
||||||
inkscape:pageopacity="0"
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:window-width="1366"
|
inkscape:window-width="1920"
|
||||||
inkscape:window-height="744"
|
inkscape:window-height="1033"
|
||||||
id="namedview18"
|
id="namedview18"
|
||||||
showgrid="true"
|
showgrid="true"
|
||||||
inkscape:zoom="24.969708"
|
inkscape:zoom="24.969708"
|
||||||
inkscape:cx="18.434809"
|
inkscape:cx="18.434809"
|
||||||
inkscape:cy="9.4183412"
|
inkscape:cy="9.4183412"
|
||||||
inkscape:window-x="0"
|
inkscape:window-x="-4"
|
||||||
inkscape:window-y="24"
|
inkscape:window-y="-4"
|
||||||
inkscape:window-maximized="1"
|
inkscape:window-maximized="1"
|
||||||
inkscape:current-layer="svg2">
|
inkscape:current-layer="svg2">
|
||||||
<inkscape:grid
|
<inkscape:grid
|
||||||
|
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.3 KiB |
|
@ -729,34 +729,15 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
MapY1 * radius * 2 + y1 );
|
MapY1 * radius * 2 + y1 );
|
||||||
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
||||||
}
|
}
|
||||||
else if( m_shape == PINSHAPE_FALLING_EDGE_CLOCK ) /* an alternative for Inverted Clock */
|
|
||||||
{
|
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
|
||||||
{
|
|
||||||
GRMoveTo( x1, y1 + clock_size );
|
|
||||||
GRLineTo( clipbox, aDC, x1 + MapX1 * clock_size * 2, y1,
|
|
||||||
width, color );
|
|
||||||
GRLineTo( clipbox, aDC, x1, y1 - clock_size, width, color );
|
|
||||||
}
|
|
||||||
else /* MapX1 = 0 */
|
|
||||||
{
|
|
||||||
GRMoveTo( x1 + clock_size, y1 );
|
|
||||||
GRLineTo( clipbox, aDC, x1, y1 + MapY1 * clock_size * 2,
|
|
||||||
width, color );
|
|
||||||
GRLineTo( clipbox, aDC, x1 - clock_size, y1,
|
|
||||||
width, color );
|
|
||||||
}
|
|
||||||
GRMoveTo( MapX1 * clock_size * 2 + x1, MapY1 * clock_size * 2 + y1 );
|
|
||||||
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GRMoveTo( x1, y1 );
|
GRMoveTo( x1, y1 );
|
||||||
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape == PINSHAPE_CLOCK || m_shape == PINSHAPE_INVERTED_CLOCK || m_shape == PINSHAPE_CLOCK_LOW )
|
// Draw the clock shape (>)inside the symbol
|
||||||
|
if( m_shape == PINSHAPE_CLOCK || m_shape == PINSHAPE_INVERTED_CLOCK ||
|
||||||
|
m_shape == PINSHAPE_FALLING_EDGE_CLOCK || m_shape == PINSHAPE_CLOCK_LOW )
|
||||||
{
|
{
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
const int clock_size = InternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -777,7 +758,9 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape == PINSHAPE_INPUT_LOW || m_shape == PINSHAPE_CLOCK_LOW )
|
// Draw the active low (or H to L active transition)
|
||||||
|
if( m_shape == PINSHAPE_INPUT_LOW ||
|
||||||
|
m_shape == PINSHAPE_FALLING_EDGE_CLOCK || m_shape == PINSHAPE_CLOCK_LOW )
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
|
|
@ -558,7 +558,6 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool aIsDangling, bool isMovi
|
||||||
VECTOR2I p0, dir;
|
VECTOR2I p0, dir;
|
||||||
int len = aPin->GetLength();
|
int len = aPin->GetLength();
|
||||||
int width = aPin->GetPenSize();
|
int width = aPin->GetPenSize();
|
||||||
int shape = aPin->GetShape();
|
|
||||||
int orient = aPin->GetOrientation();
|
int orient = aPin->GetOrientation();
|
||||||
|
|
||||||
switch( orient )
|
switch( orient )
|
||||||
|
@ -594,76 +593,10 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool aIsDangling, bool isMovi
|
||||||
const int diam = radius*2;
|
const int diam = radius*2;
|
||||||
const int clock_size = InternalPinDecoSize( *aPin );
|
const int clock_size = InternalPinDecoSize( *aPin );
|
||||||
|
|
||||||
if( shape == PINSHAPE_INVERTED )
|
if( aPin->GetType() == PIN_NC ) // Draw a N.C. symbol
|
||||||
{
|
|
||||||
m_gal->DrawCircle( p0 + dir * radius, radius );
|
|
||||||
m_gal->DrawLine( p0 + dir * ( diam ), pos );
|
|
||||||
}
|
|
||||||
else if( shape == PINSHAPE_FALLING_EDGE_CLOCK )
|
|
||||||
{
|
|
||||||
pc = p0 + dir * clock_size ;
|
|
||||||
|
|
||||||
triLine( p0 + VECTOR2D( dir.y, -dir.x) * clock_size,
|
|
||||||
pc,
|
|
||||||
p0 + VECTOR2D( -dir.y, dir.x) * clock_size );
|
|
||||||
|
|
||||||
m_gal->DrawLine( pos, pc );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
m_gal->DrawLine( p0, pos );
|
m_gal->DrawLine( p0, pos );
|
||||||
}
|
|
||||||
|
|
||||||
if( shape == PINSHAPE_CLOCK )
|
|
||||||
{
|
|
||||||
if (!dir.y)
|
|
||||||
{
|
|
||||||
triLine( p0 + VECTOR2D( 0, clock_size ),
|
|
||||||
p0 + VECTOR2D( -dir.x * clock_size, 0 ),
|
|
||||||
p0 + VECTOR2D( 0, -clock_size ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
triLine( p0 + VECTOR2D( clock_size, 0 ),
|
|
||||||
p0 + VECTOR2D( 0, -dir.y * clock_size ),
|
|
||||||
p0 + VECTOR2D( -clock_size, 0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( shape == PINSHAPE_INPUT_LOW )
|
|
||||||
{
|
|
||||||
if(!dir.y)
|
|
||||||
{
|
|
||||||
triLine( p0 + VECTOR2D(dir.x, 0) * diam,
|
|
||||||
p0 + VECTOR2D(dir.x, -1) * diam,
|
|
||||||
p0 );
|
|
||||||
}
|
|
||||||
else /* MapX1 = 0 */
|
|
||||||
{
|
|
||||||
triLine( p0 + VECTOR2D( 0, dir.y) * diam,
|
|
||||||
p0 + VECTOR2D(-1, dir.y) * diam,
|
|
||||||
p0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( shape == PINSHAPE_OUTPUT_LOW ) /* IEEE symbol "Active Low Output" */
|
|
||||||
{
|
|
||||||
if( !dir.y ) // Horizontal pin
|
|
||||||
m_gal->DrawLine( p0 - VECTOR2D( 0, diam ), p0 + VECTOR2D( dir.x, 0 ) * diam );
|
|
||||||
else // Vertical pin
|
|
||||||
m_gal->DrawLine( p0 - VECTOR2D( diam, 0 ), p0 + VECTOR2D( 0, dir.y ) * diam );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( shape == PINSHAPE_NONLOGIC ) /* NonLogic pin symbol */
|
|
||||||
{
|
|
||||||
m_gal->DrawLine( p0 - VECTOR2D( dir.x + dir.y, dir.y - dir.x ) * radius,
|
|
||||||
p0 + VECTOR2D( dir.x + dir.y, dir.y - dir.x ) * radius );
|
|
||||||
m_gal->DrawLine( p0 - VECTOR2D( dir.x - dir.y, dir.x + dir.y ) * radius,
|
|
||||||
p0 + VECTOR2D( dir.x - dir.y, dir.x + dir.y ) * radius );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( aPin->GetType() == PIN_NC ) // Draw a N.C. symbol
|
|
||||||
{
|
|
||||||
m_gal->DrawLine( pos + VECTOR2D( -1, -1 ) * TARGET_PIN_RADIUS,
|
m_gal->DrawLine( pos + VECTOR2D( -1, -1 ) * TARGET_PIN_RADIUS,
|
||||||
pos + VECTOR2D( 1, 1 ) * TARGET_PIN_RADIUS );
|
pos + VECTOR2D( 1, 1 ) * TARGET_PIN_RADIUS );
|
||||||
m_gal->DrawLine( pos + VECTOR2D( 1, -1 ) * TARGET_PIN_RADIUS ,
|
m_gal->DrawLine( pos + VECTOR2D( 1, -1 ) * TARGET_PIN_RADIUS ,
|
||||||
|
@ -671,6 +604,107 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool aIsDangling, bool isMovi
|
||||||
|
|
||||||
aIsDangling = false; // PIN_NC pin type is always not connected and dangling.
|
aIsDangling = false; // PIN_NC pin type is always not connected and dangling.
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch( aPin->GetShape() )
|
||||||
|
{
|
||||||
|
case PINSHAPE_LINE:
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED:
|
||||||
|
m_gal->DrawCircle( p0 + dir * radius, radius );
|
||||||
|
m_gal->DrawLine( p0 + dir * ( diam ), pos );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED_CLOCK:
|
||||||
|
pc = p0 - dir * clock_size ;
|
||||||
|
|
||||||
|
triLine( p0 + VECTOR2D( dir.y, -dir.x) * clock_size,
|
||||||
|
pc,
|
||||||
|
p0 + VECTOR2D( -dir.y, dir.x) * clock_size );
|
||||||
|
|
||||||
|
m_gal->DrawCircle( p0 + dir * radius, radius );
|
||||||
|
m_gal->DrawLine( p0 + dir * ( diam ), pos );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK_LOW:
|
||||||
|
case PINSHAPE_FALLING_EDGE_CLOCK:
|
||||||
|
pc = p0 - dir * clock_size ;
|
||||||
|
|
||||||
|
triLine( p0 + VECTOR2D( dir.y, -dir.x) * clock_size,
|
||||||
|
pc,
|
||||||
|
p0 + VECTOR2D( -dir.y, dir.x) * clock_size );
|
||||||
|
|
||||||
|
if(!dir.y)
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D(dir.x, 0) * diam,
|
||||||
|
p0 + VECTOR2D(dir.x, -1) * diam,
|
||||||
|
p0 );
|
||||||
|
}
|
||||||
|
else /* MapX1 = 0 */
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D( 0, dir.y) * diam,
|
||||||
|
p0 + VECTOR2D(-1, dir.y) * diam,
|
||||||
|
p0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK:
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
|
||||||
|
if (!dir.y)
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D( 0, clock_size ),
|
||||||
|
p0 + VECTOR2D( -dir.x * clock_size, 0 ),
|
||||||
|
p0 + VECTOR2D( 0, -clock_size ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D( clock_size, 0 ),
|
||||||
|
p0 + VECTOR2D( 0, -dir.y * clock_size ),
|
||||||
|
p0 + VECTOR2D( -clock_size, 0 ) );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_INPUT_LOW:
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
|
||||||
|
if(!dir.y)
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D(dir.x, 0) * diam,
|
||||||
|
p0 + VECTOR2D(dir.x, -1) * diam,
|
||||||
|
p0 );
|
||||||
|
}
|
||||||
|
else /* MapX1 = 0 */
|
||||||
|
{
|
||||||
|
triLine( p0 + VECTOR2D( 0, dir.y) * diam,
|
||||||
|
p0 + VECTOR2D(-1, dir.y) * diam,
|
||||||
|
p0 );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_OUTPUT_LOW: // IEEE symbol "Active Low Output"
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
|
||||||
|
if( !dir.y ) // Horizontal pin
|
||||||
|
m_gal->DrawLine( p0 - VECTOR2D( 0, diam ), p0 + VECTOR2D( dir.x, 0 ) * diam );
|
||||||
|
else // Vertical pin
|
||||||
|
m_gal->DrawLine( p0 - VECTOR2D( diam, 0 ), p0 + VECTOR2D( 0, dir.y ) * diam );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_NONLOGIC: // NonLogic pin symbol
|
||||||
|
m_gal->DrawLine( p0, pos );
|
||||||
|
|
||||||
|
m_gal->DrawLine( p0 - VECTOR2D( dir.x + dir.y, dir.y - dir.x ) * radius,
|
||||||
|
p0 + VECTOR2D( dir.x + dir.y, dir.y - dir.x ) * radius );
|
||||||
|
m_gal->DrawLine( p0 - VECTOR2D( dir.x - dir.y, dir.x + dir.y ) * radius,
|
||||||
|
p0 + VECTOR2D( dir.x - dir.y, dir.x + dir.y ) * radius );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( aIsDangling && ( aPin->IsVisible() || aPin->IsPowerConnection() ) )
|
if( aIsDangling && ( aPin->IsVisible() || aPin->IsPowerConnection() ) )
|
||||||
drawPinDanglingSymbol( m_gal, pos, color );
|
drawPinDanglingSymbol( m_gal, pos, color );
|
||||||
|
|
Loading…
Reference in New Issue