tikz-trackschematic/src/tikzlibrarytrackschematic.c...

118 lines
3.7 KiB
TeX

%% symbol library for TikZ track schematics
%
% Copyright 2019 Martin Scheidt (ISC license)
%
% Permission to use, copy, modify, and/or distribute this file for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
\ProvidesFileRCS{tikzlibrarytrackschematic.construction.code.tex}
\colorlet{background}{white}
\colorlet{foreground}{black}
\tikzset{
pics/platform_left/.default=4,
pics/platform_left/.style n args={1}{
code={
\path[draw, line width=0.75pt,foreground] (0,0.5) -- ++(0,-0.3) -- ++(#1,0) -- ++(0,0.3);
\path[draw, line width=0.75pt,foreground] (0,0.3) -- ++(#1,0);
}
},
}
\tikzset{
pics/platform_right/.default=4,
pics/platform_right/.style n args={1}{
code={
\path[draw, line width=0.75pt,foreground] (0,-0.5) -- ++(0,0.3) -- ++(#1,0) -- ++(0,-0.3);
\path[draw, line width=0.75pt,foreground] (0,-0.3) -- ++(#1,0);
}
},
}
\tikzset{
level_crossing_barrier_left/.pic={
{ % road
\path[draw, line width=1pt,foreground] (-0.2, 0.8) -- ++(0,-0.6);
\path[draw, line width=1pt,foreground] ( 0.2, 0.8) -- ++(0,-0.6);
}
{ % barrier
\filldraw[foreground] (-0.4,0.5) circle (0.05);
\path[draw, line width=1pt,foreground] (-0.4,0.5) -- ++(0.39,0);
}
};
}
\tikzset{
level_crossing_barrier_right/.pic={
{ % road
\path[draw, line width=1pt,foreground] (-0.2,-0.8) -- ++(0, 0.6);
\path[draw, line width=1pt,foreground] ( 0.2,-0.8) -- ++(0, 0.6);
}
{ % barrier
\filldraw[foreground] (0.4,-0.5) circle (0.05);
\path[draw, line width=1pt,foreground] (0.4,-0.5) -- ++(-0.39,0);
}
};
}
\tikzset{
level_crossing/.pic={
{ % road
\path[draw, line width=1pt,foreground] (-0.2,-0.8) -- ++(0, 0.6);
\path[draw, line width=1pt,foreground] ( 0.2,-0.8) -- ++(0, 0.6);
}
};
}
\tikzset{
pics/bridge_left/.style n args={1}{
code={
\path[draw, line width=0.75pt,foreground] (-0.1,0.48) -- ++(0.08,-0.08) -- ++(#1,0) -- ++(0.08,0.08);
}
},
pics/bridge_left/.default=3,
}
\tikzset{
pics/bridge_right/.default=3,
pics/bridge_right/.style n args={1}{
code={
\path[draw, line width=0.75pt,foreground] (-0.1,-0.48) -- ++(0.08,0.08) -- ++(#1,0) -- ++(0.08,-0.08);
}
},
}
\tikzset{
interlocking/.pic={
{
\path[draw, line width=1pt,foreground] (-0.6,-0.4 ) rectangle ++(1.2,0.8); % building
\path[draw, fill,foreground] (-0.5,-0.3 ) rectangle ++(1.0,0.2); % table
\path[draw, fill,foreground] ( 0 , 0.15) circle (0.15); % human dot
}
};
}
\tikzset{
hump/.pic={
{ % upper side
\path[draw, line width=0.75pt,foreground] (-0.3, 0.1) -- ++(0,0.05);
\path[draw, line width=0.75pt,foreground] (-0.2, 0.1) -- ++(0,0.15);
\path[draw, line width=0.75pt,foreground] (-0.1, 0.1) -- ++(0,0.25);
\path[draw, line width=0.75pt,foreground] ( 0.0, 0.1) -- ++(0,0.35);
\path[draw, line width=0.75pt,foreground] ( 0.1, 0.1) -- ++(0,0.25);
\path[draw, line width=0.75pt,foreground] ( 0.2, 0.1) -- ++(0,0.15);
\path[draw, line width=0.75pt,foreground] ( 0.3, 0.1) -- ++(0,0.05);
% lower side
\path[draw, line width=0.75pt,foreground] (-0.3,-0.1) -- ++(0,-0.05);
\path[draw, line width=0.75pt,foreground] (-0.2,-0.1) -- ++(0,-0.15);
\path[draw, line width=0.75pt,foreground] (-0.1,-0.1) -- ++(0,-0.25);
\path[draw, line width=0.75pt,foreground] ( 0.0,-0.1) -- ++(0,-0.35);
\path[draw, line width=0.75pt,foreground] ( 0.1,-0.1) -- ++(0,-0.25);
\path[draw, line width=0.75pt,foreground] ( 0.2,-0.1) -- ++(0,-0.15);
\path[draw, line width=0.75pt,foreground] ( 0.3,-0.1) -- ++(0,-0.05);
}
};
}
\endinput