Now despite hard looking in the OpenDX doc, faq, and users-list
archive, I cannot find an obvious method to perform this
type of averaging without resorting to inefficient approaches.
I understand how to read particle data, how to plot the
individual particles and their data (with AutoGlyph), how to
make field from irregular sampling (Regrid), but how can one
"count" or sum the particle data within individual grid cells?
Any clue would be appreciated, thanks!

If the particle data form has not been included in OpenDX
original design, it seems that it would be simple to expand
OpenDX with a few macros converting particle data to field data.

        Daniel


It was not simple, but I did it anyway (about 6 months ago). (:-)
The enclosed is a macro I developed for a consulting project I'm currently working on.
It does, as far as I can tell, precisely what you asked for.

The only "inefficiency" is that we must use iteration over all connection elements. This might be done more efficiently if someone wrote it up as a compiled module but for my purposes, the macro is fine. Prior to the macro call, I'm creating an "annular disc" (essentially a warped rectilinear volume) to place into the particle volume (which is inherently cylindrical), so the "number of connections" iterated over is that of the disc, not of the volume. Our idea is to count the particles/connection, then MapToPlane, and rubbersheet a density surface which changes dynamically as the hydrodynamic field evolves (different number, density, and distribution of particles per time step). It all works as planned.

If the macro gives you an error, it's probably a long line that got a hard return during the transmission process. I'm not offering free support on this (I am a paid consultant after all), nor abandoning my copyright, and it is not a trivial exercise in DX object structuring. But it should offer a clue... and it is internally commented.
//
// time: Thu Sep  6 13:20:57 2001
//
// version: 3.1.2 (format), 4.1.1 (DX)
//
//
// Begin MDF
// MODULE CountItemsPerConnection
// CATEGORY FluidMacros
// DESCRIPTION Tallies count of particles within all connections of a specified 3D field // INPUT connections_field; object; (no default); Field with 3D connections to tally into
// INPUT field_to_tally; object; (no default); 3D positions field to be tallied
// OUTPUT tally_field; value or value list or field; Same as 3D connections field but with data component showing counts of positions from pos_field per connection
// End MDF
//
// comment: Copyright, Chris Pelkie, Conceptual Reality Presentations, Inc. 2001. // comment: Given a connections field (3D connections) and a 3D positions field, for example, scattered particle positions, this macro counts the number of particle positions within each connection element and returns the connection field with a data component containing the connection-dependent counts.
// comment:
// comment: This is used to determine the number of particles within a given volume's connections, then we use MapToPlane to derive a slice through the volume suitable for Rubbersheet.
// workspace: width = 1204, height = 826
// layout: snap = 0, width = 50, height = 50, align = NN
//
macro CountItemsPerConnection(
 connections_field
,field_to_tally
) -> (
 tally_field
) {
    //
    // node Input[43]: x = 15, y = 0, inputs = 0, label = Input
// parameter: position = 1, name = 'connections_field', value = '(no default)', descriptive = 1, description = 'Field with 3D connections to tally into', required = 0, visible = 1
    //
CountItemsPerConnection_Input_43_out_1 = connections_field;
    //
    // node Transmitter[339]: x = 0, y = 73, inputs = 1, label = conn_field
    //
conn_field = CountItemsPerConnection_Input_43_out_1;
    //
    // node Receiver[639]: x = 225, y = 0, inputs = 1, label = conn_field
    //
CountItemsPerConnection_Receiver_639_out_1[cache: 0] = conn_field;
    //
    // node Inquire[22]: x = 248, y = 71, inputs = 3, label = Inquire
// input[2]: defaulting = 0, visible = 1, type = 32, value = "connection counts"
    // input[3]: defaulting = 1, visible = 0, type = 32, value = "connections"
    //
CountItemsPerConnection_Inquire_22_out_1[cache: 2] =
    Inquire(
    CountItemsPerConnection_Receiver_639_out_1,
    "connection counts",
    NULL
    ) [instance: 22, cache: 1];
    //
    // node Enumerate[6]: x = 128, y = 151, inputs = 5, label = Enumerate
    // input[1]: defaulting = 0, visible = 1, type = 29, value = 0
    // input[3]: defaulting = 1, visible = 1, type = 1, value = 1
    // input[4]: defaulting = 0, visible = 1, type = 29, value = 1
    //
CountItemsPerConnection_Enumerate_6_out_1[cache: 2] =
    Enumerate(
    0,
    NULL,
    CountItemsPerConnection_Inquire_22_out_1,
    1,
    NULL
    ) [instance: 6, cache: 1];
    //
// node Transmitter[341]: x = 135, y = 226, inputs = 1, label = conn_index_list
    //
conn_index_list = CountItemsPerConnection_Enumerate_6_out_1;
    //
    // node Receiver[640]: x = 0, y = 390, inputs = 1, label = conn_index_list
    //
CountItemsPerConnection_Receiver_640_out_1[cache: 0] = conn_index_list;
    //
// node Transmitter[343]: x = 249, y = 226, inputs = 1, label = max_conn_index
    //
max_conn_index = CountItemsPerConnection_Inquire_22_out_1;
    //
    // node Receiver[641]: x = 500, y = 0, inputs = 1, label = max_conn_index
    //
CountItemsPerConnection_Receiver_641_out_1[cache: 0] = max_conn_index;
    //
    // node Compute[314]: x = 523, y = 75, inputs = 2, label = Compute
    // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0 - 1"
    // expression: value = a - 1
    // name[2]: value = a
    //
CountItemsPerConnection_Compute_314_out_1[cache: 2] =
    Compute(
    "$0 - 1",
    CountItemsPerConnection_Receiver_641_out_1
    ) [instance: 314, cache: 1];
    //
    // node ForEachN[3]: x = 520, y = 149, inputs = 3, label = ForEachN
    // input[1]: defaulting = 0, visible = 1, type = 1, value = 0
    //
CountItemsPerConnection_ForEachN_3_out_1[cache: 2],
CountItemsPerConnection_ForEachN_3_out_2[cache: 2] =
    ForEachN(
    0,
    CountItemsPerConnection_Compute_314_out_1,
    NULL
    ) [instance: 3, cache: 1];
    //
// node Transmitter[342]: x = 491, y = 227, inputs = 1, label = current_index
    //
current_index = CountItemsPerConnection_ForEachN_3_out_1;
    //
    // node Receiver[647]: x = 112, y = 390, inputs = 1, label = current_index
    //
CountItemsPerConnection_Receiver_647_out_1[cache: 0] = current_index;
    //
// node Compute[307]: x = 36, y = 471, inputs = 3, label = Compute invalid connections; only current is valid // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0 == $1 ? byte(0) : byte(1)"
    // expression: value = pos == current ? byte(0) : byte(1)
    // name[2]: value = pos
    // name[3]: value = current
    //
CountItemsPerConnection_Compute_307_out_1[cache: 2] =
    Compute(
    "$0 == $1 ? byte(0) : byte(1)",
    CountItemsPerConnection_Receiver_640_out_1,
    CountItemsPerConnection_Receiver_647_out_1
    ) [instance: 307, cache: 1];
    //
    // node Options[8]: x = 58, y = 540, inputs = 3, label = Options
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "dep"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "connections"
    //
CountItemsPerConnection_Options_8_out_1[cache: 2] =
    Options(
    CountItemsPerConnection_Compute_307_out_1,
    "dep",
    "connections"
    ) [instance: 8, cache: 1];
    //
    // node Enumerate[7]: x = 339, y = 152, inputs = 5, label = Enumerate
    // input[1]: defaulting = 0, visible = 1, type = 29, value = 0
    // input[2]: defaulting = 0, visible = 1, type = 29, value = 0
    // input[3]: defaulting = 1, visible = 1, type = 1, value = 1
    // input[4]: defaulting = 1, visible = 1, type = 29, value = 1
    //
CountItemsPerConnection_Enumerate_7_out_1[cache: 2] =
    Enumerate(
    0,
    0,
    CountItemsPerConnection_Inquire_22_out_1,
    NULL,
    NULL
    ) [instance: 7, cache: 1];
    //
    // node Transmitter[345]: x = 370, y = 226, inputs = 1, label = tally_list
    //
tally_list = CountItemsPerConnection_Enumerate_7_out_1;
    //
    // node Receiver[645]: x = 654, y = 71, inputs = 1, label = tally_list
    //
CountItemsPerConnection_Receiver_645_out_1[cache: 0] = tally_list;
    //
    // node Options[11]: x = 671, y = 150, inputs = 3, label = Options
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "dep"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "connections"
    //
CountItemsPerConnection_Options_11_out_1[cache: 2] =
    Options(
    CountItemsPerConnection_Receiver_645_out_1,
    "dep",
    "connections"
    ) [instance: 11, cache: 1];
    //
    // node Receiver[644]: x = 686, y = 0, inputs = 1, label = conn_index_list
    //
CountItemsPerConnection_Receiver_644_out_1[cache: 0] = conn_index_list;
    //
    // node Options[9]: x = 727, y = 72, inputs = 3, label = Options
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "dep"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "connections"
    //
CountItemsPerConnection_Options_9_out_1[cache: 2] =
    Options(
    CountItemsPerConnection_Receiver_644_out_1,
    "dep",
    "connections"
    ) [instance: 9, cache: 1];
    //
    // node Receiver[637]: x = 798, y = 0, inputs = 1, label = conn_field
    //
CountItemsPerConnection_Receiver_637_out_1[cache: 0] = conn_field;
    //
    // node Replace[48]: x = 751, y = 152, inputs = 4, label = Replace
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "data"
    // input[4]: defaulting = 0, visible = 1, type = 32, value = "conn_index"
    //
CountItemsPerConnection_Replace_48_out_1[cache: 2] =
    Replace(
    CountItemsPerConnection_Options_9_out_1,
    CountItemsPerConnection_Receiver_637_out_1,
    "data",
    "conn_index"
    ) [instance: 48, cache: 1];
    //
    // node Replace[49]: x = 695, y = 231, inputs = 4, label = Replace
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "data"
    // input[4]: defaulting = 0, visible = 1, type = 32, value = "data"
    //
CountItemsPerConnection_Replace_49_out_1[cache: 2] =
    Replace(
    CountItemsPerConnection_Options_11_out_1,
    CountItemsPerConnection_Replace_48_out_1,
    "data",
    "data"
    ) [instance: 49, cache: 1];
    //
// node Transmitter[346]: x = 685, y = 303, inputs = 1, label = initial_conn_field
    //
initial_conn_field = CountItemsPerConnection_Replace_49_out_1;
    //
// node Receiver[648]: x = 121, y = 471, inputs = 1, label = initial_conn_field
    //
CountItemsPerConnection_Receiver_648_out_1[cache: 0] = initial_conn_field;
    //
    // node GetLocal[7]: x = 163, y = 540, inputs = 3, label = GetLocal
    //
CountItemsPerConnection_GetLocal_7_out_1[cache: 2],
CountItemsPerConnection_GetLocal_7_out_2[cache: 2] =
    GetLocal(
    CountItemsPerConnection_Receiver_648_out_1,
    NULL,
    NULL
    ) [instance: 7, cache: 1];
    //
    // node Replace[45]: x = 82, y = 617, inputs = 4, label = Replace
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "data"
// input[4]: defaulting = 0, visible = 1, type = 32, value = "invalid connections"
    //
CountItemsPerConnection_Replace_45_out_1[cache: 2] =
    Replace(
    CountItemsPerConnection_Options_8_out_1,
    CountItemsPerConnection_GetLocal_7_out_1,
    "data",
    "invalid connections"
    ) [instance: 45, cache: 1];
    //
// node Transmitter[334]: x = 77, y = 692, inputs = 1, label = curr_conn_field
    //
curr_conn_field = CountItemsPerConnection_Replace_45_out_1;
    //
// node Receiver[630]: x = 666, y = 401, inputs = 1, label = curr_conn_field
    //
CountItemsPerConnection_Receiver_630_out_1[cache: 0] = curr_conn_field;
    //
    // node Remove[7]: x = 704, y = 476, inputs = 2, label = Remove
// input[2]: defaulting = 0, visible = 1, type = 32, value = "invalid connections"
    //
CountItemsPerConnection_Remove_7_out_1[cache: 2] =
    Remove(
    CountItemsPerConnection_Receiver_630_out_1,
    "invalid connections"
    ) [instance: 7, cache: 1];
    //
    // node Mark[101]: x = 730, y = 553, inputs = 2, label = Mark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "conn_index"
    //
CountItemsPerConnection_Mark_101_out_1[cache: 2] =
    Mark(
    CountItemsPerConnection_Remove_7_out_1,
    "conn_index"
    ) [instance: 101, cache: 1];
    //
    // node Receiver[642]: x = 783, y = 554, inputs = 1, label = current_index
    //
CountItemsPerConnection_Receiver_642_out_1[cache: 0] = current_index;
    //
    // node Input[44]: x = 93, y = 0, inputs = 0, label = Input
// parameter: position = 2, name = 'field_to_tally', value = '(no default)', descriptive = 1, description = '3D positions field to be tallied', required = 0, visible = 1
    //
CountItemsPerConnection_Input_44_out_1 = field_to_tally;
    //
    // node Transmitter[340]: x = 81, y = 74, inputs = 1, label = pos_field
    //
pos_field = CountItemsPerConnection_Input_44_out_1;
    //
    // node Receiver[638]: x = 240, y = 390, inputs = 1, label = pos_field
    //
CountItemsPerConnection_Receiver_638_out_1[cache: 0] = pos_field;
    //
// node Receiver[627]: x = 310, y = 390, inputs = 1, label = curr_conn_field
    //
CountItemsPerConnection_Receiver_627_out_1[cache: 0] = curr_conn_field;
    //
    // node Map[2]: x = 261, y = 467, inputs = 4, label = Map
    // input[3]: defaulting = 1, visible = 0, type = 32, value = NULL
    // input[4]: defaulting = 1, visible = 0, type = 32, value = NULL
    //
CountItemsPerConnection_Map_2_out_1[cache: 2] =
    Map(
    CountItemsPerConnection_Receiver_638_out_1,
    CountItemsPerConnection_Receiver_627_out_1,
    NULL,
    NULL
    ) [instance: 2, cache: 1];
    //
    // node Rename[15]: x = 273, y = 538, inputs = 3, label = Rename
// input[2]: defaulting = 0, visible = 1, type = 32, value = "invalid positions"
    // input[3]: defaulting = 0, visible = 1, type = 32, value = "invalid_pos"
    //
CountItemsPerConnection_Rename_15_out_1[cache: 2] =
    Rename(
    CountItemsPerConnection_Map_2_out_1,
    "invalid positions",
    "invalid_pos"
    ) [instance: 15, cache: 1];
    //
    // node Mark[97]: x = 297, y = 613, inputs = 2, label = Mark
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "invalid_pos"
    //
CountItemsPerConnection_Mark_97_out_1[cache: 2] =
    Mark(
    CountItemsPerConnection_Rename_15_out_1,
    "invalid_pos"
    ) [instance: 97, cache: 1];
    //
    // node Include[28]: x = 309, y = 693, inputs = 6, label = Include
    // input[3]: defaulting = 0, visible = 1, type = 5, value = .5
    // input[6]: defaulting = 0, visible = 1, type = 3, value = 1
    //
CountItemsPerConnection_Include_28_out_1[cache: 2] =
    Include(
    CountItemsPerConnection_Mark_97_out_1,
    NULL,
    .5,
    NULL,
    NULL,
    1
    ) [instance: 28, cache: 1];
    //
// node Transmitter[347]: x = 326, y = 764, inputs = 1, label = culled_pos_field
    //
culled_pos_field = CountItemsPerConnection_Include_28_out_1;
    //
// node Receiver[649]: x = 838, y = 396, inputs = 1, label = culled_pos_field
    //
CountItemsPerConnection_Receiver_649_out_1[cache: 0] = culled_pos_field;
    //
    // node Inquire[25]: x = 843, y = 473, inputs = 3, label = Inquire
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "is empty + 1"
    // input[3]: visible = 0
    //
CountItemsPerConnection_Inquire_25_out_1[cache: 2] =
    Inquire(
    CountItemsPerConnection_Receiver_649_out_1,
    "is empty + 1",
    NULL
    ) [instance: 25, cache: 1];
    //
    // node Inquire[23]: x = 901, y = 472, inputs = 3, label = Inquire
    // input[2]: defaulting = 0, visible = 1, type = 32, value = "data counts"
    // input[3]: defaulting = 1, visible = 0, type = 32, value = "positions"
    //
CountItemsPerConnection_Inquire_23_out_1[cache: 2] =
    Inquire(
    CountItemsPerConnection_Receiver_649_out_1,
    "data counts",
    NULL
    ) [instance: 23, cache: 1];
    //
    // node Switch[25]: x = 892, y = 552, inputs = 3, label = Switch
    // input[3]: defaulting = 0, visible = 1, type = 67108863, value = 0
    //
CountItemsPerConnection_Switch_25_out_1[cache: 2] =
    Switch(
    CountItemsPerConnection_Inquire_25_out_1,
    CountItemsPerConnection_Inquire_23_out_1,
    0
    ) [instance: 25, cache: 1];
    //
    // node Compute[309]: x = 708, y = 641, inputs = 5, label = Compute
// input[1]: defaulting = 0, visible = 0, type = 32, value = "$1 == $2 ? $3 : $0"
    // expression: value = index == current ? count : data
    // name[2]: value = data
    // name[3]: value = index
    // name[4]: value = current
    // name[5]: value = count
    //
CountItemsPerConnection_Compute_309_out_1[cache: 2] =
    Compute(
    "$1 == $2 ? $3 : $0",
    CountItemsPerConnection_Remove_7_out_1,
    CountItemsPerConnection_Mark_101_out_1,
    CountItemsPerConnection_Receiver_642_out_1,
    CountItemsPerConnection_Switch_25_out_1
    ) [instance: 309, cache: 1];
    //
    // node Output[13]: x = 722, y = 715, inputs = 1, label = Output
// parameter: position = 1, name = 'tally_field', value = ' ', descriptive = 0, description = 'Same as 3D connections field but with data component showing counts of positions from pos_field per connection', required = 0, visible = 1
    //
tally_field = CountItemsPerConnection_Compute_309_out_1;
    //
    // node Transmitter[344]: x = 185, y = 618, inputs = 1, label = the_link
    //
the_link = CountItemsPerConnection_GetLocal_7_out_2;
    //
    // node Receiver[643]: x = 809, y = 639, inputs = 1, label = the_link
    //
CountItemsPerConnection_Receiver_643_out_1[cache: 0] = the_link;
    //
    // node SetLocal[7]: x = 788, y = 715, inputs = 3, label = SetLocal
    //
    SetLocal(
    CountItemsPerConnection_Compute_309_out_1,
    CountItemsPerConnection_Receiver_643_out_1,
    NULL
    ) [instance: 7, cache: 1];
    //
// decorator Annotate pos=(365,462) size=248x76 style(Label), value = <NULL>
    // annotation user_begin: 128
    // annotation user: Map pos_field to conn_field.
    // annotation user: Since there is only one valid
    // annotation user: connection, only positions that lie
    // annotation user: within that connection are valid.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    //
// decorator Annotate pos=(177,309) size=387x44 style(Label), value = <NULL>
    // annotation user_begin: 113
// annotation user: Create a list of length (num_connections of field), then // annotation user: for each connection, invalidate all but the current one.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    //
// decorator Annotate pos=(876,641) size=264x76 style(Label), value = <NULL>
    // annotation user_begin: 115
    // annotation user: Count (Inquire) the number of
    // annotation user: positions and write it into the
    // annotation user: connection-dependent data array at
    // annotation user: the current index.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    //
// decorator Annotate pos=(970,477) size=234x44 style(Label), value = <NULL>
    // annotation user_begin: 61
    // annotation user: Problems arise when there are 0
    // annotation user: positions output from Include
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    //
// decorator Annotate pos=(363,540) size=289x60 style(Label), value = <NULL>
    // annotation user_begin: 110
    // annotation user: Problems arise when all positions are
    // annotation user: invalid so we rename "invalid positions"
    // annotation user: to a non-special component name
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
    //
// decorator Annotate pos=(461,710) size=193x28 style(Label), value = <NULL>
    // annotation user_begin: 28
    // annotation user: Cull all but valid positions
    // annotation user_end: <NULL>
    //
// decorator Annotate pos=(874,725) size=294x76 style(Label), value = <NULL>
    // annotation user_begin: 123
    // annotation user: Removed invalid connections from
    // annotation user: curr_conn_field else DX invalidates
    // annotation user: everything through successive ORs with
    // annotation user: previous state.
    // annotation user_end: <NULL>
    // resource *decorator.alignment:XmALIGNMENT_BEGINNING
// network: end of macro body
}
CountItemsPerConnection_Input_43_out_1 = NULL;
CountItemsPerConnection_Transmitter_339_out_1 = NULL;
CountItemsPerConnection_Receiver_639_out_1 = NULL;
CountItemsPerConnection_Inquire_22_out_1 = NULL;
CountItemsPerConnection_Enumerate_6_out_1 = NULL;
CountItemsPerConnection_Transmitter_341_out_1 = NULL;
CountItemsPerConnection_Receiver_640_out_1 = NULL;
CountItemsPerConnection_Transmitter_343_out_1 = NULL;
CountItemsPerConnection_Receiver_641_out_1 = NULL;
CountItemsPerConnection_Compute_314_out_1 = NULL;
CountItemsPerConnection_ForEachN_3_out_1 = NULL;
CountItemsPerConnection_Transmitter_342_out_1 = NULL;
CountItemsPerConnection_Receiver_647_out_1 = NULL;
CountItemsPerConnection_Compute_307_out_1 = NULL;
CountItemsPerConnection_Options_8_out_1 = NULL;
CountItemsPerConnection_Enumerate_7_out_1 = NULL;
CountItemsPerConnection_Transmitter_345_out_1 = NULL;
CountItemsPerConnection_Receiver_645_out_1 = NULL;
CountItemsPerConnection_Options_11_out_1 = NULL;
CountItemsPerConnection_Receiver_644_out_1 = NULL;
CountItemsPerConnection_Options_9_out_1 = NULL;
CountItemsPerConnection_Receiver_637_out_1 = NULL;
CountItemsPerConnection_Replace_48_out_1 = NULL;
CountItemsPerConnection_Replace_49_out_1 = NULL;
CountItemsPerConnection_Transmitter_346_out_1 = NULL;
CountItemsPerConnection_Receiver_648_out_1 = NULL;
CountItemsPerConnection_GetLocal_7_out_1 = NULL;
CountItemsPerConnection_GetLocal_7_out_2 = NULL;
CountItemsPerConnection_Replace_45_out_1 = NULL;
CountItemsPerConnection_Transmitter_334_out_1 = NULL;
CountItemsPerConnection_Receiver_630_out_1 = NULL;
CountItemsPerConnection_Remove_7_out_1 = NULL;
CountItemsPerConnection_Mark_101_out_1 = NULL;
CountItemsPerConnection_Receiver_642_out_1 = NULL;
CountItemsPerConnection_Input_44_out_1 = NULL;
CountItemsPerConnection_Transmitter_340_out_1 = NULL;
CountItemsPerConnection_Receiver_638_out_1 = NULL;
CountItemsPerConnection_Receiver_627_out_1 = NULL;
CountItemsPerConnection_Map_2_out_1 = NULL;
CountItemsPerConnection_Rename_15_out_1 = NULL;
CountItemsPerConnection_Mark_97_out_1 = NULL;
CountItemsPerConnection_Include_28_out_1 = NULL;
CountItemsPerConnection_Transmitter_347_out_1 = NULL;
CountItemsPerConnection_Receiver_649_out_1 = NULL;
CountItemsPerConnection_Inquire_25_out_1 = NULL;
CountItemsPerConnection_Inquire_23_out_1 = NULL;
CountItemsPerConnection_Switch_25_out_1 = NULL;
CountItemsPerConnection_Compute_309_out_1 = NULL;
CountItemsPerConnection_Transmitter_344_out_1 = NULL;
CountItemsPerConnection_Receiver_643_out_1 = NULL;

Chris Pelkie
Vice President/Scientific Visualization Producer
Conceptual Reality Presentations, Inc.
30 West Meadow Drive
Ithaca, NY 14850
[EMAIL PROTECTED]

Reply via email to