<<<<<<<<<<<<<<<<<

visage_outline(visage)Scientific Visualizationvisage_outline(visage)

NAME

visage_outline - display a quick outline of the VISAGE geometry

DESCRIPTION

The visage_object object displays a crude, but quick, representation of the geometry of the data set provided. Depending upon the type of geometry in the data set, the outline representation will vary.

For the structured_grid_set, the outline will appear as lines corresponding to the topological edges of the structured grid. For all other geometry classes (i.e., unstructured_grid_set, etc.) the outline is lines corresponding to the geometry bounding box.

SUPERCLASS

visage_computed_feature

INSTANCE VARIABLES

none - all inherited

MESSAGES

unstructured_grid_set: data_set_object Display an outline for the unstructured grid provided by the visage_data_set object data_set_object. Note that data_set_object is a pointer to the object, hence this message is only used internally.

structured_grid_set: data_set_object Display an outline for the structured grid provided by the visage_data_set object data_set_object. Note that data_set_object is a pointer to the object, hence this message is only used internally.

unstructured_point_set: data_set_object Display an outline for the unstructured point set provided by the visage_data_set object data_set_object. Note that data_set_object is a pointer to the object, hence this message is only used internally.

structured_point_set: data_set_object Display an outline for the structured point set provided by the visage_data_set object data_set_object. Note that data_set_object is a pointer to the object, hence this message is only used internally.

tagus: data_set_object Display an outline for the tagus geometry provided by the visage_data_set object data_set_object. Note that data_set_object is a pointer to the

object, hence this message is only used internally.

renderer_names? Get the name of the renderers used to draw the display. Used internally.

EXAMPLE

Using visage_outline is very easy.

visage_outline new: outline;

The difficulty comes in because a data set must be supplied. In the following complete example, an outline is created to contain some other displays.

/* * Create VISAGE data group hierarchy consisting of a single data * group, a single data set, and an outline, geometry, and iso-surfaec * display. */ visage_data_group new: data_group data_sets=data_set_1 ;

visage_data_set new: data_set_1 displays=(border,g1,iso) geometry= grid scalar_data= pressure vector_data= velocity ;

visage_outline new: border color=(1,0,0) ; visage_geometry new: g1 extent=(1,1,1,3,1,4) ; visage_iso_surface new: iso value=2.0 ;

/* * Create data for data set. Can also use various readers to read * the data. */ /* * Create structured grid geometry. Points are xyz ordered: i * varies fastest, then j, then k. */ structured_grid_set new: grid dimensions= (2,3,4); grid data=(0., 0., 0., 1., 0., 0., 0., 1., 0., 1., 1., 0., 0., 2., 0., 1., 2., 0.) data+(0., 0., 1., 1., 0., 1., 0., 1., 1., 1., 1., 1., 0., 2., 1., 1., 2., 1.)

data+(0., 0., 2., 1., 0., 2., 0., 1., 2., 1., 1., 2., 0., 2., 2., 1., 2., 2.) data+(0., 0., 3., 1., 0., 3., 0., 1., 3., 1., 1., 3., 0., 2., 3., 1., 2., 3.) ; /* * Vector data. Must correspond exactly to grid points. */ visage_vector new: velocity; velocity data= (0., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (1., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (2., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (2., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (2., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (3., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) ; /* * Scalar data */ visage_scalar new: pressure; pressure data=(0., 0., 0., 1., 0., 0., 0., 2., 0., 0., 0., 3.) data+ (1., 1., 1., 2., 1., 1., 3., 2., 1., 1., 1., 3.) ;

/* * Set up image */ actor new: rock modeller=data_group ;

collection new: data members=([visage_data instances?]) compute_properties! ; vector new: bbox dimension=6; bbox = ([grid bbox?]); camera new: acamera position= (1,1,1) focal_point= ([grid center?]) x_range=([bbox @1 ?],[bbox @2 ?]) y_range=([bbox @3 ?],[bbox @4 ?]) z_range=([bbox @5 ?],[bbox @6 ?]) default! zoom: 1.4 on! ; light new: alight position= ([acamera position?]) on! ; /* * Create renderer */

logic new: _test; environment new: _env variable="LYMB_RENDERER"; _test = [_env defined?] false: "#Environment variable LYMB_RENDERER must be set." false: "parser exit!;" ; string new: current_renderer = [_env value?];

object# current_renderer new: main_renderer actors=([actor instances?]) lights=alight cameras=acamera ; /* * Draw the picture */ main_renderer render!;

SEE ALSO

visage_computed_feature, display_geometry, visage_data_set


Please send comments and suggestions to
consult@rpi.edu