BeginPackage["CSM`ComplexParametricPlot`", "Utilities`FilterOptions`"]

ComplexParametricPlot::usage =
	"ComplexParametricPlot[z, {t, t0, t1}] plots a complex parametric line.
	ComplexParametricPlot[z, {t, t0, t1}, {r, r0, r1, dr}] plot several lines."

ComplexParametricMap::usage = "ComplexParametricMap[f, z, ranges..] shows
	the image of the parametric lines defined by z and their images
	under f side by side."

Begin["`Private`"]

ComplexParametricPlot[z_, range_List, opts___?OptionQ]:=
    ParametricPlot[{Re[z],Im[z]}, range, opts]

ComplexParametricPlot[z_, range_List, table_List, opts___?OptionQ]:=
    ParametricPlot[Evaluate[Table[{Re[z],Im[z]}, table]], range, opts]

ComplexParametricMap[f_, z_, ranges__, opts___?OptionQ]:=
Module[{pre,post},
    pre = ComplexParametricPlot[z, ranges,
              DisplayFunction->Identity, FilterOptions[ParametricPlot,opts]];
    post = ComplexParametricPlot[f[z], ranges,
              DisplayFunction->Identity, FilterOptions[ParametricPlot,opts]];
    Show[GraphicsArray[{pre,post}], FilterOptions[GraphicsArray,opts],
         DisplayFunction:>$DisplayFunction]
]

End[]

EndPackage[]
