DO_GreyScale, DO_VolumeRender, DO_HotMetal, DO_CyanYellowRed, DO_DefaultStep, DO_FilterDatamap, DO_NT_GreyScale, DO_NT_VolumeRender, DO_NT_HotMetal, DO_NT_CyanYellowRed, DO_NT_DefaultStep, DO_NT_FilterDatamap, DO_LITE_GreyScale, DO_LITE_VolumeRender, DO_LITE_HotMetal, DO_LITE_CyanYellowRed, DO_LITE_DefaultStep, DO_LITE_FilterDatamap

Synopsis

Any DataObject produces a renderable object that contains data as well as attributes for rendering.

All DataObject's have a relatively high object count, various strategies were suggested in the "White Paper" to reduce the object count of an application.These DataObjects are all pre-made macros of DataObject's, DataObjectNoTexture's and DataObjectLite's that can be used to build lite applications. These macros require Developers Edition of AVS/Express and come with no user interface.

Input Ports

For the "DO_" objects (DataObject)
Name Type Description

in ... The data to be rendered. This can be any group that includes the following subobjects:

GDxform_templ xform; // Transform.

method render; // Render method

texture_in ... ...
texture_col_in ... Optional input to the DefaultTexture object. texture_in is the texture-map data. texture_col_in is a colormap, which you include when the texture-map data is byte data rather than RGB.
child_objs ... Optionally one or more objects to be children of this object. Multi-level object hierarchies can be built in this manner.

For the "DO_NT_" and "DO_LITE_" objects (DataObjectNoTexture and DataObjectLite)
Name Type Description

in ... The data to be rendered. This can be any group that includes the following subobjects:
child_objs ... Optionally one or more objects to be children of this object. Multi-level object hierarchies can be built in this manner.

Description

Reducing the object count of an application is the thing most likely to speed up the loading and running of an application. This is one of a library of utility macros designed to reduce the object count.

These are all AVS/Express macros which as such require no compilation. Most applications are produced with AVS/Express Developers Edition and these macros also require AVS/Express Developers Edition. They contain no UI so that the developer has as much freedom as possible.

A DataObject has a high object count and this is a utility library of DataObject's with Datamaps that can be used to reduce the object count, either directly or by allowing the use of a ViewersLite macro.

Many modules have a DataObject module if this occurs just before a viewer then by altering the datamap here the colour of the final image can be specified. The Data Object can be pared down removing unwanted functions in a variety of ways and the appropriate data map added directly or a selection of data maps added to the Data Object.

DataObject's are all prefixed with "DO_"

DataObject_NoTexture's are all prefixed with "DO_NT_"

DataObject_Lite's are all prefixed with "DO_LITE_"

Of these the DataObject have the highest object count, then the DataObject_NoTexture and the DataObject_Lite has the lowest count.

Many other properties of an object can be altered through the DataObject rather than through the view or scene, this again will reduce the size of the application. For example the object can be removed from a scene by putting a toggle on the parameter DataObject.Obj.visible and the transparency can be altered by connecting DataObject.Props.trans to a slider.

These techniques remove the necessity of the user having to select any of the objects in the viewer to be the current select object to alter the Datamap.

Input Ports

As above.

Output Ports

obj

The renderable object that can be connected directly to a Graphics Display Kit viewer.

Utility Macros

These macros are all variations of the AVS/Express standard macros DataObject, DataObjectNoTexture and DataObjectLite.

Example

An example application EgViewLite is provided, which shows how some of these DataObjects have been used in conjunction with the module templates DVorthoslice_unif and DViso to produce a renderable object with selected datamap.

This example also demonstrates the use of DataObjects altered so the Datamap can be selected and ViewersLite.

Files

iac_proj/viewlite/vl_macs.v contains all the DataObject macros discussed here as well as the macros Datamap_Switch, DO_Dmap_Switch, DO_NT_Dmap_Switch, DO_LITE_Dmap_Switch, View3DMinimal, View3D_TrackObj, View3D_TrackAll3, View2DMinimal, View2D_TrackObj, View2D_TrackAll3, ViewMinimal, View_TrackObj, View_TrackAll3 and an example EgViewLite.

Other Notes

The macros can be acessed through the IAC_PROJ library in the Templates library or through one of four libraries DataObjects_apps, Views3DLite, Views2DLite and UViewsLite all of which are in the Misc sub-library IAC library area.

The example EgViewLite can also be acessed through the IAC library but is located in the Examples sub-library.

Authors

J Leng
Manchester Visualization Centre

Modifications

Paul G. Lever

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also

DataObject, Datamap_Switch, the DataObjects "_Dmap_Switch", and the viewers lite 3D, 2D and Universal "Minimal", "_TrackObj" and "_TrackAll3".