Before Version 6, there was a function ListSurfacePlot3D in the
Graphics`Graphics3D` package. It took a 2-dimensional array of 3D
points and plotted the surface that they defined, respecting the order
they came in. This was fast and very convenient in many
applications.
Mathematica Version 6 still contains a number of more specialised 3D
plotting functions (like RevolutionPlot3D or ParametricPlot3D) that
could be defined in terms of the more basic ListSurfacePlot3D by
giving it certain arrays of points.
However the new Version 6 kernel function called ListSurfacePlot3D is
a different animal altogether: it takes a one-dimensional list of
points and tries to construct a surface through them. This is a much
more complicated operation and, even when you flatten the sort of 2D
list that could have been given to the old ListSurfacePlot3D, the
results are rarely the same (and the computing time can be much
longer).
In fact it fails completely in trivial modifications of the examples
in the documentation, e.g., when you re-scale one dimension of the
sphere example by a factor 19:
ListSurfacePlot3D[
Flatten[Table[{Cos[\[Phi]] Sin[\[Theta]],
19 Sin[\[Theta]] Sin[\[Phi]],
Cos[\[Theta]]}, {\[Phi], -\[Pi], \[Pi], .2}, {\[Theta],
0, \[Pi], .2}], 1], BoxRatios -> {1, 1, 1}]
the algorithm is totally confused and you no longer get something that
looks like a re-scaled sphere.
I have searched the Version 6 documentation and cannot find anything
that does what the old ListSurfacePlot3D did (except of course loading
the legacy package and explicitly calling
Graphics`Graphics3D`ListSurfacePlot3D).
Of course, the new function has it's uses but I would like to get the
predictable old one back for the frequent cases where I know how the
points should be joined up to make the surface.
If I'm right, I think this is a serious gap in the basic 3D graphics
functionality of Version 6. It has broken some of my packages for
plotting long, thin accelerator beam profiles.
John Jowett