% Loading operation in an open-pit mine loading area.
% Semi-enclosed drivable region with a single entrance, an excavator working
% against the bench face, and a truck at the designated loading pose.
\documentclass[border=1pt]{standalone}
\input{figstyle}
\begin{document}
\begin{tikzpicture}[scale=0.094]

  % ---------- terrain / non-drivable surroundings -------------------------
  \begin{scope}
    \clip (-3,-1) rectangle (79,44);
    \fill[fillc] (-3,-1) rectangle (79,44);
    \draw[pattern=north east lines, pattern color=sitec!55, draw=none]
          (-3,-1) rectangle (79,44);
  \end{scope}

  % ---------- drivable loading area (Omega_free) --------------------------
  \def\sitepath{
      (0,10) -- (16,6.5) -- (33,5) -- (50,6.5) -- (63,11) -- (70,19)
             -- (66,30) -- (52,36) -- (36,35) -- (21,30) -- (8,24) -- (0,20)
  }
  \fill[white] \sitepath -- cycle;
  \draw[siteline] \sitepath;

  % ---------- entrance ----------------------------------------------------
  \draw[white, line width=1.4pt] (0.2,10.4) -- (0.2,19.6);
  \draw[->, line width=0.7pt, sitec] (-9,15) -- (-1.2,15);
  \node[ann, sitec, align=center] at (-9,20.5) {single\\entrance};

  % ---------- bench face / ore pile --------------------------------------
  % jagged toe line along the upper-right boundary
  \draw[siteline, sitec]
       (70,19) -- (72.5,22) -- (69.5,25) -- (72,28) -- (68,31)
              -- (70,34) -- (65,35.5) -- (66,38.5) -- (60,38) -- (55,40);
  \node[ann, sitec, align=center] at (60,25.5) {bench face\\/ ore pile};
  \node[ann, sitec] at (12,38) {$\Omega_\text{obs}$};
  \node[ann] at (20,15) {$\Omega_\text{free}$};

  % ---------- excavator ---------------------------------------------------
  \begin{scope}[shift={(57,31)}, rotate=-155]
    \draw[veh, fill=sitec!35] (-3.2,-2.0) rectangle (3.2,2.0);   % tracks
    \draw[veh, fill=sitec!70] (-1.8,-1.5) rectangle (1.4,1.5);   % house
    \draw[line width=0.9pt, sitec] (1.2,0.6) -- (5.6,2.6);       % boom
    \draw[line width=0.9pt, sitec] (5.6,2.6) -- (7.4,-0.6);      % stick
    \draw[veh, fill=sitec!45] (7.4,-0.6) -- (8.9,-1.9) -- (7.4,-2.9)
                              -- (6.4,-1.5) -- cycle;            % bucket
  \end{scope}
  \node[ann, sitec] at (57,36.5) {excavator};

  % ---------- truck at the loading pose ----------------------------------
  % rear-axle centre at (44,24), heading 205 deg, L_v = 12 m, B_v = 3 m,
  % rear overhang 1.5 m (body spans a in [-1.5, 10.5] in body frame)
  \begin{scope}[shift={(44,24)}, rotate=205]
    \draw[veh, parkc, fill=parkc!12] (-1.5,-1.5) rectangle (10.5,1.5);
    \draw[veh, parkc, fill=parkc!30] (6.6,-1.5) rectangle (10.5,1.5); % cab
    \foreach \sx in {0,6.5}{
      \foreach \sy in {-1.5,1.5}{
        \draw[line width=0.4pt, parkc, fill=parkc!60]
              (\sx-0.9,\sy-0.28) rectangle (\sx+0.9,\sy+0.28);
      }
    }
    \fill[parkc] (0,0) circle (0.42);
  \end{scope}
  \node[ann, parkc, align=center] at (34,20)
       {loading pose\\$\boldsymbol{\eta}_\text{load}$};
  \draw[->, line width=0.5pt, parkc] (37.5,22.6) -- (42,23.4);

  % ---------- shared channel ---------------------------------------------
  \draw[<->, line width=0.5pt, sitec] (6,14.2) -- (16.5,11.3);
  \node[annt, sitec, align=center] at (12.5,7.6) {shared\\channel};

\end{tikzpicture}
\end{document}
