Synopsis
define the Graphics Display Kit modes
GDmodes_templ
group GDmodes_templ
{
int mode[5];
enum normals { choices = {"Inherit", "None", "Vertex"}; };
int colors;
ptr+nonotify local_ptr;
};
GDmodes
GDmodes_templ+OPort GDmodes
{
local_ptr+write;
method+notify_inst+notify_val upd_func = "GDmodes_update";
method+notify_deinst del_func = "GDmodes_delete";
};
DefaultModes
GDmodes DefaultModes
{
mode[5] = {GD_POINTS_INHERIT, GD_LINES_INHERIT,
GD_SURF_INHERIT, GD_VOLUME_INHERIT,
GD_BOUNDS_INHERIT};
normals = GD_NORMALS_INHERIT;
colors = GD_COLORS_INHERIT;
};
Description
These templates define the Graphics Display Kit modes. GDmodes_templ defines the elements that cause the mode's methods to execute. GDmodes defines an instanceable version without default values. DefaultModes defines an instanceable version with default values.
Parameters
mode
An array of rendering modes, specifying how to render points, lines, surfaces, volumes, and bounds.
The following table specifies the meaning of each array element. Symbolic constants are available for the indices (for example, mode[GD_MODE_POINTS] is equivalent to mode[0]).
Array element... |
specifies the mode for.... |
Symbolic constant |
mode[0] |
Points |
GD_MODE_POINTS |
mode[1] |
Lines |
GD_MODE_LINES |
mode[2] |
Surface |
D_MODE_SURF |
mode[3] |
Volume |
GD_MODE_VOL |
mode[4] |
Bounds |
GD_MODE_BOUNDS |
The following tables show the valid values for each mode.
Points:
Value |
Meaning |
Symbolic constant |
0 |
Inherit the parent object's mode |
GD_POINTS_INHERIT |
1 |
Do not render points |
GD_NO_POINTS |
2 |
Render points |
GD_POINTS |
3 |
Render lines in direction of the normal vector |
GD_POINTS_DIRECTED |
Lines:
Value |
Meaning |
Symbolic constant |
0 |
Inherit the parent object's mode |
GD_LINES_INHERIT |
1 |
Do not render lines |
GD_NO_LINES |
2 |
Render lines |
GD_LINES |
Surfaces:
Volumes:
Meaning |
Symbolic constant | |
0 |
Inherit the parent object's mode |
GD_VOLUME_INHERIT |
1 |
Do not render volumes |
GD_NO_VOLUME |
2 |
Render using the back-to-front method |
GD_VOLUME_BTF |
3 |
Render using a ray tracing method |
GD_VOLUME_RAY |
Bounds:
Value |
Meaning |
Symbolic constant |
0 |
Inherit the parent object's mode |
GD_BOUNDS_INHERIT |
1 |
Do not render bounds |
GD_NO_BOUNDS |
2 |
Render bounds |
GD_BOUNDS |
normals
Controls the generation and usage of vertex normals in Data Visualization Kit modules. Valid values and corresponding module behavior are:
Value |
Meaning |
Symbolic constant |
0 |
Inherit the parent's vertex normals mode. |
GD_NORMALS_INHERIT |
1 |
Do not generate vertex normals. |
GD_NORMALS_NONE |
2 |
Generate vertex normals. |
GD_NORMALS_VERTEX |
GD_NORMALS_VERTEX is the default for most modules and vertex normals are therefore generated for those modules. Setting the value of the normals subobject to GD_NORMALS_INHERIT has the following effects on the rendering of triangle and quad cell sets.
If the surface mode is Gouraud and there are no vertex normals, facet normals are calculated from the vertices and used as vertex normals for the primitive being rendered. The effect is to have Gouraud with facet normals (the AVS5 UCD look, in which the facets are evident). This mode of usage corrects the rendering artifacts.
If the surface mode is flat and there are no vertex normals, facet normals are calculated from the vertices and used as vertex normals for the primitive being rendered. This is different from the case in which vertex normals are present and are averaged to make the facet normals. The rendering may or may not be different in this case.
If the surface mode is no lighting, there is no effect on the rendering of the data. However, since normals are not used in the no-lighting case, not generating them saves both time and memory.
colors
The parameter controls the usage of colors. Unsupported at the current time.
Example
Libraries.Graphics_Display.Objects.DataObject
File
v/gdif.v