I am relatively new to DX.  The data set I have is a 3D intensity which is
generated by a modeling program.  The data is generated in slices, and I've been
able to import and display the data in 3D.  However, this type of data has not
been traditionally displayed as a 3D isosurface, but rather as a series of
slices taken through one direction.  Typically the 2D images are collected
together to form a single diagram which contains several 2D intensity plots.  I
am hoping to display the information in a tradional way while providing a
mechanism to view the data in more sophisticated ways.

For each slice, I run the data through Isosurface to create the isolines, and in
parallel run it through RubberSheet to get a colorized intensity.  These two
images are Rendered and Overlay'd to get a single plot which shows a color
representation of the intensity and several of the isolines.

What I am having trouble with is the collecting of these images into a single
Display.  Since the number of files/slices generated can be variable, I didn't
want to limit my network to fixed number of slices.  So, I tried to implement
the importing of the data as a ForEachN loop.  The original idea was to import
each file, create the colorized intensity plot, and arrange it with the other
plots, but the arranging does not work the way I would expect.  Instead of
showing each plot side-by-side, it shows each plot in sequence at the same spot.

To simplify the task, I generated image files for each of the plots and wrote a
small network which reads these files with a ForEachN loop.  The file is added
to a group using Append, and sent to Arrange.  This doesn't work.  I've tried
Collect, CollectSeries, CollectNamed, and Append, but in none of the cases does
the Arrange create an array of plots.  However, if I read each file in
separately with a ReadImage for each file (instead of the ForEachN loop), the
Arrange works fine.  The problem seems to lie in the fact that every time
through the loop, the group used by Append, Collect, CollectSeries, CollectNamed
is reinitialized or created fresh.  The Append does not append to a group within
a ForEachN loop.

The documentation makes it clear that a ForEachXX loop used in a top-level
network means that everything within that network gets executed for each time
through the loop.  It suggested using a macro if this wasn't the desired
behavior.  So, I moved the reading of the images into a macro and tried to
output the group of images to be fed into the Arrange.  However, the Append,
Collect, CollectSeries, and CollectNamed work exactly the same way, i.e. they do
not continue to collect items into a previously created group.  I even had the
group be an input into the macro and used Append within the macro, but this
didn't work either.  IN EVERY CASE, if I output the group each time through the
loop with a Describe, it said that the group contained exactly ONE member.  I
should probably point out that I did use the index of the loop as an input into
the Append and CollectSeries, but this had no effect.

Am I missing something simple when it comes to working with groups?  It seems to
me that one should be able to compile a group within a loop and use that group
outside of the loop.  Is there an easier way to do this?  All of the examples
that use groups or Arrange do so with manually (i.e. not within a loop) created
groups.  Does someone have an example of using a group within a loop?  

Some more side questions, how do you use the "last" parameter of the ForEachXX
loops?  If everything within a top-level network is executed each time through
the loop, why would someone need to know you've reached the last item?  Wouldn't
this be the same as ending a loop (which apparently you cannot do in a top-level
network)?  Would this provide a method for executing something after the loop is
done?

To test further, I attempted to use the SimpleGetSetLoop.net example to execute
my loop.  This has the same effect.  

It is probably not critical that I get an answer to this as I can do what I want
with a fixed number of inputs.  But this seems to be a poor solution to the
problem.  I would imagine there is a simple solution, or this is a serious
deficiency (in my opinion) in the program.  If anyone is interested, I can
forward my examples and some data.

Thanks for the help.

Al




-------------------------------------------------
This mail sent by http://webmail.rushmore.com

Reply via email to