%%%
% Bonbon
%%%
\def\filedateBonbon{2025/09/27}%
\def\fileversionBonbon{0.1b}%
\message{-- \filedateBonbon\space v\fileversionBonbon}%
%
\setKVdefault[Bonbon]{CouleurUn=red,Echelle=1,CouleurDeux={}}%
%
\NewDocumentCommand\Bonbon{o}{%
  \useKVdefault[Bonbon]%
  \setKV[Bonbon]{#1}%
  \mplibforcehmode%
  \begin{mplibcode}
    boolean Bicolore;
    Bicolore=false;
    color CouleurUn,CouleurDeux;
    CouleurUn:=\useKV[Bonbon]{CouleurUn};
    \ifemptyKV[Bonbon]{CouleurDeux}{}{
      Bicolore:=true;
      CouleurDeux:=\useKV[Bonbon]{CouleurDeux};
    }%
    Echelle:=\useKV[Bonbon]{Echelle};
    input PfCSolid;
      
    pas:=0.25132;
      
    Initialisation(10,50,50,15);
    incolor:=white-CouleurUn;
    outcolor:=CouleurUn;
    if Bicolore:
      draw Sparam("Echelle*(u,cos(u)*cos(v),cos(u)*sin(v))",0,pi,pas,0,2*pi,pas);
      incolor:=white-CouleurDeux;
      outcolor:=CouleurDeux;
      draw Sparam("Echelle*(u,cos(u)*cos(v),cos(u)*sin(v))",pi,2*pi,pas,0,2*pi,pas);
    else:
      draw Sparam("Echelle*(u,cos(u)*cos(v),cos(u)*sin(v))",0,2*pi,pas,0,2*pi,pas);
    fi;
  \end{mplibcode}%
}%