| Function Name | Description |
|---|---|
| XintView3DAddObjectToGroup | Adds an object to a group. |
| XintView3DAdjObjRotation | Adjusts an object's dynamic rotation. |
| XintView3DAdjObjScale | Adjusts an object's dynamic scale. |
| XintView3DAdjObjTranslation | Adjusts an object's dynamic translation. |
| XintView3DAssignTexture | Assigns a texture map to an object. |
| XintView3DChangeMaterial | Change properties of a material. |
| XintView3DChangeObject | Change properties of an object. |
| XintView3DChangeVolumeAlphaTable | This function changes the alpha lookup table for a volume object. |
| XintView3DChangeVolumeColorTable | This function changes the color lookup table or a volume object. |
| XintView3DCreateDEMSurface | Creates a mesh surface object from a USGS DEM file. |
| XintView3DCreateFacet | Creates a facet object. |
| XintView3DCreateGeometric | Creates a geometric object. |
| XintView3DCreateGOCADSurface | Creates a mesh surface object from a GOCAD file. |
| XintView3DCreateGroup | Creates a group object. |
| XintView3DCreateINTGridSurface | Creates a mesh surface object from a regular grid stored in an ASCII file. |
| XintView3DCreateLine | Creates a line object. |
| XintView3DCreateMarker | Creates a marker object. |
| XintView3DCreateMaterial | Creates an instance of a material. |
| XintView3DCreateMeshSurface | Creates a mesh surface object. |
| XintView3DCreateNormalsForMesh | Creates a line object containing the normals at each vertex for the specified mesh surface. |
| XintView3DCreatePoint | Creates a point or point cloud object. |
| XintView3DCreateRaster | Creates a raster image object. |
| XintView3DCreateTextureMap | Creates a texture map. |
| XintView3DCreateUniformGrid | Creates a mesh surface object from a regular grid. |
| XintView3DCreateVolume | Creates a volume object. |
| XintView3DGetAxisLimits | Returns the axis limits in the x, y, znd z directions. |
| XintView3DGetAxisScale | Returns the axis scale values in the x, y, znd z directions. |
| XintView3DGetGroupList | Returns the list of objects contained in a group. |
| XintView3DGetMeshTwoSided | Returns True if mesh has a different front and back material. |
| XintView3DGetObjectMaterial | Returns the material(s) used to display an object. |
| XintView3DGetObjectType | Returns the type of an object. |
| XintView3DOverlayObjOnPolygon | Will overlay lines or point objects on top of a mesh or facet object. |
| XintView3DQueryMaterial | Returns properties of a material. |
| XintView3DQueryObject | Returns properties of an object. |
| XintView3DRefMaterial | Increases the reference count of a material. |
| XintView3DRefObject | Increases the reference count of an object. |
| XintView3DRefTexture | Increases the reference count of a texture map. |
| XintView3DRemoveObjectFromGroup | Removes an object from a group. |
| XintView3DSetMaterial | Sets the values of a material. |
| XintView3DSetObjRotation | Sets an object's dynamic rotation. |
| XintView3DSetObjScale | Sets an object's dynamic scale. |
| XintView3DSetObjTranslation | Sets an object's dynamic translation. |
| XintView3DUnRefMaterial | Decreases the reference count of a material. |
| XintView3DUnRefObject | Decreases the reference count of an object. |
| XintView3DUnRefTexture | Decreases the reference count of a texture map. |
void XintView3DAddObjectToGroup (...)
| XintView3DObject * | group_object | ID of the group object. |
| XintView3DObject * | object | ID of the object to add to the group. |
void XintView3DAdjObjRotation (...)
| XintView3DObject * | object | ID of the object to adjust. |
| XintVector3 | rotation | Vector to rotate about. |
| double | angle | Angle in degrees to rotate. |
The object is rotated about the vector rotation by angle degrees. The effects of multiple calls to XintView3DAdjObj* are cumulative.
void XintView3DAdjObjScale (...)
| XintView3DObject * | object | ID of the object to adjust. |
| XintVector3 | scale | Amount to scale. |
The object is scaled by the vector scale, scale[0] = X, scale[1] = Y, scale[2] = Z. The effects of multiple calls to XintView3DAdjObj* are cumulative.
void XintView3DAdjObjTranslation (...)
| XintView3DObject * | object | ID of the object to adjust. |
| XintVector3 | translation | Amount to translate. |
The object is translated by the vector translation, translation[0] = X, translation[1] = Y, translation[2] = Z. The effects of multiple calls to XintView3DAdjObj* are cumulative.
void XintView3DAssignTexture (...)
| Widget | widget | ID of the View3D widget. |
| XintView3DObject * | object | Object to assign the texture to. |
| XintVector2f * | tcoords | Texture coordinates. |
| XintView3DTextureMap * | front_texture | Front texture map. |
| XintView3DTextureMap * | back_texture | Back texture map. Useful only for 2-sided surfaces. |
front_texture must be specified. For non-two-sided objects, back_texture is ignored. If automatic texture coordinate generation is not being used, then tcoords must be specified, otherwise it is ignored. tcoords is an array of texture coordinates. One texture coordinate must be specified for each vertex within the object to specify the mapping of the texture to the object. The coordinates of a texture map range from 0.0 through 1.0. If the texture coordinates fall outside of this range, the behavior is defined by the clamp_* arguments to XintView3DCreateTextureMap. See the User Guide for more information on choosing legitimate texture coordinates.
void XintView3DChangeMaterial (...)
| XintView3DMaterial * | material | Material to change. |
| unsigned long | flags | Flags defining properties to change. |
| XintView3DMaterialAttributes * | attributes | Material attributes. |
| XintView3DMaterialColor * | color | Material color. |
The material properties are changed according to the flags parameter.
| Property | Required Flag |
|---|---|
| attributes->light | XintMA_LIGHT |
| attributes->shade_model | XintMA_SHADE_MODEL |
| attributes->draw_mode | XintMA_DRAW_MODE |
| attributes->draw_grid | XintMA_DRAW_GRID |
| Property | Required Flag |
|---|---|
| color->single | XintMA_SINGLE_COLOR |
| Property | Required Flag |
|---|---|
| color->multi.colors | XintMA_MULTI_COLOR |
| Property | Required Flag |
|---|---|
| color->scale.orientation | XintMA_SCALE_ORIENTATION |
| color->scale.range | XintMA_SCALE_RANGE |
| color->scale.colors | XintMA_SCALE_COLORS |
| Property | Required Flag |
|---|---|
| color->range.min_color | XintMA_RANGE_MIN |
| color->range.max_color | XintMA_RANGE_MAX |
| color->range.range_direction | XintMA_RANGE_DIRECTION |
| color->range.interp_method | XintMA_RANGE_INTERP |
| color->range.across_object | XintMA_RANGE_ACROSS |
| color->range.color_model | XintMA_RANGE_MODEL |
| Property | Required Flag |
|---|---|
| color->index.table | XintMA_INDEX_TABLE |
| color->index.index | XintMA_INDEX |
void XintView3DChangeObject (...)
| XintView3DObject * | object | Object to change. |
| unsigned long | flags | Flags defining properties to change. |
| XintView3DObjectProperty * | prop | Object properties. |
The object properties are changed according to the flags parameter.
| Property | Required Flag |
|---|---|
| property->line.name | XintCO_LINE_NAME |
| property->line.vertices | XintCO_LINE_VERTICES |
| property->line.data_4d | XintCO_LINE_DATA4D |
| property->line.thickness | XintCO_LINE_THICKNESS |
| property->line.user_data | XintCO_LINE_USER_DATA |
| Property | Required Flag |
|---|---|
| property->mesh.name | XintCO_MESH_NAME |
| property->mesh.vertices | XintCO_MESH_VERTICES |
| property->mesh.fdata_4d | XintCO_MESH_F_DATA4D |
| property->mesh.bdata_4d | XintCO_MESH_B_DATA4D |
| property->mesh.user_data | XintCO_MESH_USER_DATA |
| Property | Required Flag |
|---|---|
| property->marker.name | XintCO_MARKER_NAME |
| property->marker.size | XintCO_MARKER_SIZE |
| property->marker.location | XintCO_MARKER_LOCATION |
| property->marker.label | XintCO_MARKER_LABEL |
| property->marker.label_loc | XintCO_MARKER_LABEL_LOC |
| property->marker.user_data | XintCO_MARKER_USER_DATA |
| Property | Required Flag |
|---|---|
| property->raster.name | XintCO_RASTER_NAME |
| property->raster.vertices | XintCO_RASTER_VERTICES |
| property->raster.data_4d | XintCO_RASTER_DATA4D |
| property->raster.lower_left | XintCO_RASTER_LOWER_LEFT |
| property->raster.lower_right | XintCO_RASTER_LOWER_RIGHT |
| property->raster.upper_right | XintCO_RASTER_UPPER_RIGHT |
| property->raster.upper_left | XintCO_RASTER_UPPER_LEFT |
| property->raster.user_data | XintCO_RASTER_USER_DATA |
| Property | Required Flag |
|---|---|
| property->facet.name | XintCO_FACET_NAME |
| property->facet.vertices | XintCO_FACET_VERTICES |
| property->facet.data_4d | XintCO_FACET_DATA4D |
| property->facet.user_data | XintCO_FACET_USER_DATA |
| Property | Required Flag |
|---|---|
| property->point.name | XintCO_POINT_NAME |
| property->point.vertices | XintCO_POINT_VERTICES |
| property->point.data_4d | XintCO_POINT_DATA4D |
| property->point.size | XintCO_POINT_SIZE |
| property->point.user_data | XintCO_POINT_USER_DATA |
| Property | Required Flag |
|---|---|
| property->geom.name | XintCO_GEOM_NAME |
| property->geom.data_4d | XintCO_GEOM_DATA4D |
| property->geom.dim | XintCO_GEOM_DIMENSION |
| property->geom.location | XintCO_GEOM_LOCATION |
| property->geom.user_data | XintCO_GEOM_USER_DATA |
| Property | Required Flag |
|---|---|
| property->volume.name | XintCO_VOLUME_NAME |
| property->volume.vertices | XintCO_VOLUME_VERTICES |
| property->volume.min_coord | XintCO_VOLUME_MIN_COORD |
| property->volume.max_coord | XintCO_VOLUME_MAX_COORD |
| property->volume.user_data | XintCO_VOLUME_USER_DATA |
void XintView3DChangeVolumeAlphaTable (...)
| XintView3DObject * | object | ID of the View3D Volume object. |
| float * | alpha_table | Volume alpha lookup table. |
| int | alpha_size | Size of the alpha lookup table. |
void XintView3DChangeVolumeColorTable (...)
| XintView3DObject * | object | ID of the View3D Volume object. |
| XintPointer | color_table | Volume color lookup table. |
| int | color_size | Size of the color lookup table. |
XintView3DObject *XintView3DCreateDEMSurface (...)
| char * | filename | Name of file to read. |
| int | x_step | Sampling interval along X axis. |
| int | y_step | Sampling interval along Y axis. |
| Boolean | use_triangles | Set to True to display the surface using triangles (2 per grid cell). Set to False to display the surface using rectangles. This flag should be set to True if the surface is going to be edited or if the grid is not smooth. |
| XtPointer | user_data | Pointer to user private data. |
For sample DEM data look at the U.S. Geological Survey's www site.
XintView3DObject *XintView3DCreateFacet (...)
| char * | filename | Name of file to read. |
| XintView3DObjectType | type | Type of facet. |
| int | num_verts | Number of vertices in object. |
| XintVector3 * | verts | List of vertices. |
| XintVector3 * | normal | Optional list of polygon normals. |
| int | num_facets | Number of facets (polygons). |
| int * | num_indices | Number of indices per polygon. |
| int ** | indices | List of indices per polygon. |
| Boolean | rhs | Specifies whether the coordinates system is right handed (z axis pointing up), or left handed (z axis pointing down). |
| XintReal * | data_4d | Specifies a data array, of size num_facets, that is used to assign the color for each facet if the material type is set to XintMATERIAL_COLOR_SCALE. |
| XtPointer | user_data | Pointer to user private data. |
The argument type must be set as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintOBJECT_FACET_TRIS | Surface is specified as a set of triangles. |
| XintOBJECT_FACET_QUADS | Surface is specified as a set of quadrilaterals. |
| XintOBJECT_FACET_POLYS | Surface is specified as a set of polygons. |
For a type of XintOBJECT_FACET_TRIS or XintOBJECT_FACET_QUADS, num_indices is ignored, and indices contains only one list of indices with every 3 or 4 indices representing a single facet on the surface.
If normal is set to NULL, then the surface normals will be calculated for each facet based upon the orientation of the polygons.
A facet data type differs from a mesh surface in several ways:
1. Surface normals are not interpolated across each polygon. This effect is similar to specifying a material with the shading set to XintFLAT.
2. Colors are assigned per facet, not per vertex. When multiple color materials are assigned to a facet, use the number of facets in the object instead of the number of vertices, when specifying the number of colors.
Sample data types and arguments:
XintOBJECT_FACET_TRIS:
XintView3DCreateFacet(num_verts = 5,
verts = (XintVector *)malloc(5 * sizeof(XintVector3)),
normal = NULL,
num_facets = 3,
num_indices = NULL,
num_lists = (int **)malloc(1 * sizeof(int *)),
num_lists[0] = (int *)malloc(num_facets * 3 * sizeof(int)),
rhs = True,
data_4d = NULL,
user_data = NULL);
XintOBJECT_FACET_QUADS:
XintView3DCreateFacet(num_verts = 6,
verts = (XintVector *)malloc(6 * sizeof(XintVector3)),
normal = NULL,
num_facets = 2,
num_indices = NULL,
num_lists = (int **)malloc(1 * sizeof(int *)),
num_lists[0] = (int *)malloc(num_facets * 4 * sizeof(int)),
rhs = True,
data_4d = NULL,
user_data = NULL);
XintOBJECT_FACET_POLYS:
XintView3DCreateFacet(num_verts = 9,
verts = (XintVector *)malloc(9 * sizeof(XintVector3)),
normal = NULL,
num_facets = 2,
num_indices = NULL,
num_lists = (int **)malloc(2 * sizeof(int *)),
num_lists[0] = (int *)malloc(num_facets * 5 * sizeof(int)),
num_lists[1] = (int *)malloc(num_facets * 6 * sizeof(int)),
rhs = True,
data_4d = NULL,
user_data = NULL);
XintView3DCreateGeometric
This function creates a geometric object: Sphere, Cube, Cone, or Cylinder.
XintView3DObject *XintView3DCreateGeometric (...)
| char * | name | Name of geometric object. |
| XintView3DObjectType | type | Type of object. |
| double * | dimension | Dimensions of the object. |
| XintVector3 | location | Location of the object. |
| int | detail | Detail level of the object. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis is pointing up) or left handed (z axis is pointing down). |
| XintReal * | data_4d | Specifies a data array, of size num_verts, that is used to assign the color of the object if the material type is set to XintMATERIAL_COLOR_SCALE. |
| XtPointer | user_data | Pointer to user private data. |
The argument type must be set to one of the following constants:
| Defined Constant | Description |
|---|---|
| XintOBJECT_GEOMETRIC_CYLINDER | Cylinder |
| XintOBJECT_GEOMETRIC_CONE | Cone |
| XintOBJECT_GEOMETRIC_CUBE | Cube (or Box) |
| XintOBJECT_GEOMETRIC_SPHERE | Sphere |
The detail of the object specifies the following:
| Object | Description |
|---|---|
| Cylinder | Number of vertical sections. |
| Cone | Number of vertical sections. |
| Cube | Ignored. |
| Sphere | Number of longitudinal and lateral divisions. |
A geometric object is a simple geometric shape. Since the object has only one specified vertex (location), it can only be assigned a single color, although any of the material types can be assigned to it. Texture mapping is the only exception.
Application of texture map:
| Object | Texture Map |
|---|---|
| Cylinder | Mapped around the cylinder with texture coordinates with the top row of the texture on the top of the cylinder, and the bottom row of the texture on the bottom of the cylinder. |
| Cone | Same as the cylinder. |
| Cube | A separate copy of the texture map on each face. |
| Sphere | Same as the cylinder. |
XintView3DObject *XintView3DCreateGOCADSurface (...)
| char * | file | Name of the GOCAD file. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XtPointer | user_data | Pointer to user private data. |
XintView3DObject *XintView3DCreateGroup (...)
| char * | name | Name of the group object to create. |
| XtPointer | user_data | Pointer to user private data. |
XintView3DObject *XintView3DCreateINTGridSurface (...)
| char * | filename | Name of the file containing the grid. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| Boolean | use_triangles | Set to True to display the surface using triangles (2 per grid cell). Set to False to display the surface using rectangles. This flag should be set to True if the surface is going to be edited or if the grid is not smooth. |
| XintReal * | null_value | Specifies a pointer to a value representing missing data. Set it to NULL if your grid has no missing values. Creation time of a grid will increase significantly if you specify a non NULL value. |
| XtPointer | user_data | Pointer to user private data. |
The function returns NULL if it could not open the file or if the file did not contain a valid regular grid description. The INT grid file is formatted as an ASCII file as shown below:
nx ny # size of the grid
startx endx # start and end in x direction (FP values)
starty endy # start and end in y direction (FP values)
data1 # first data element
data2 # second data element
...
dataN # last data element (N = nx * ny)
The data points are stored along the X direction (rowwise).
XintView3DObject *XintView3DCreateLine (...)
| char * | name | Name of the line object. |
| XintView3DObjectType | type | Type of the line to create. |
| double | thickness | Thickness of the line. |
| int | num_vertices | Number of vertices. |
| XintVector3 * | vertices | List of vertices for the line. |
| int | num_indices | Number of indices. |
| int * | indices | List of indices (Specify NULL in most cases to let the function automatically generate the list). |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XintReal * | data_4d | Specifies a data array, of size num_vertices, that is used to assign the color at each node if the material type is set to XintMATERIAL_COLOR_SCALE. |
| XtPointer | user_data | Pointer to user private data. |
Argument type may be set either to XintOBJECT_LINE_SEGMENT or XintOBJECT_LINE_POLYLINE. The following diagram shows the relationship between argument type and arguments vertices/indices:

Data type XintVector3 is used to store X, Y, and Z coordinates and is defined as follows:
typedef XintReal XintVector3[3];
In most cases argument indices should be set to NULL so that the list of indices is automatically generated by the function (set to 0,1,2... num_verts-1). Only under some special circumstances will you need to specify your own list of indices. An example would be the case where you need to draw a pattern requiring you to traverse some points multiple times. In this case it may be more efficient to specify an index list rather than having to duplicate the points in the list of vertices.
The example below illustrates how to specify the arguments vertices and indices to draw the pattern shown below.


XintView3DObject *XintView3DCreateMarker (...)
| char * | name | Name of the marker object. |
| XintView3DObjectType | type | Type of marker to create. |
| double | size | Specifies the marker size. Specifying a size of 1.0 corresponds to a symbol size equal to 5% of the width of the scaled display. |
| XintVector3 | location | Location of the Marker object. |
| char * | label | Marker label. |
| XintVector3 | label_location | Specifies the label location. If this location is different from the value specified in argument location then the label will be attached remotely. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XtPointer | user_data | Pointer to user private data. |
Argument type must be specified as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintOBJECT_MARKER_CROSS | The marker symbol is a 3D cross, the size of which is specified in argument size. |
| XintOBJECT_MARKER_BOX | The marker symbol is a 3D box, the size of which is specified in argument size. |
| XintOBJECT_MARKER_POINT | The marker symbol is a point, the size of which is specified in argument size. |
| XintOBJECT_MARKER_STAR | The marker symbol is a 3D star, the size of which is specified in argument size. |
Data type XintVector3 is used to store X, Y, and Z coordinates and is defined as
typedef XintReal XintVector3[3];
XintView3DMaterial *XintView3DCreateMaterial (...)
| char * | name | Name of material. |
| XintView3DMaterialType | type | Type of material. |
| XintView3DMaterialColor * | color | Color specification based on the type of material. |
| unsigned long | attr_mask | Specifies which members of attributes are set. attr_mask is made by combining any number of the mask symbols listed below. |
| XintView3DMaterialAttributes * | attributes | Specifies a pointer to the structure containing the material attributes to be set. |
The argument type must be specified as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintMATERIAL_SINGLE_COLOR | Material type used for objects requiring a single color. |
| XintMATERIAL_RANGE_COLOR | Material type used for objects which color at a vertex is assigned as the result of an interpolation between two colors. |
| XintMATERIAL_MULTI_COLOR | Material type used for objects requiring a color definition for each vertex. |
| XintMATERIAL_COLOR_SCALE | Material type used for objects which color at a vertex is assigned from an array of colors based on its data value. |
| XintMATERIAL_COLOR_INDEX | Material type used for objects requiring a color definition for each vertex and where the color is specified as an index into a color table. |
Argument color is a pointer to a structure which members are complex structures used to describe a specific color type. You must fill the member corresponding to the type of material selected.
typedef struc {
XintColor4 single;/* One color type */
XintView3DColorRange range; /* Range color type */
XintView3DColorScale scale; /* Colorscale information */
XintView3DColorIndex index; /* Color index information */
XintView3DColorMulti multi; /* Multi color data */
} XintView3DMaterialColor;
When argument type is set to XintMATERIAL_SINGLE_COLOR, a single color for the object must be specified using member single. Data type XintColor4 is used to store the RGB values and the transparency level as values between 0.0 and 1.0.
typedef float XintColor4[4];
When argument type is set to XintMATERIAL_RANGE_COLOR, a minimum and maximum color for the object must be specified using member range. The color assigned to each object point of the object is interpolated between the minimum and maximum colors. The type and orientation of the interpolation, as well as the color model used, need also be specified in structure XintView3DColorRange described below:
typedef struct {
unsigned int range_direction;
XintView3DInterpolationMethod interp_method;
Boolean across_object;
XintView3DColorModel color_model;
XintColor4 min_color;
XintColor4 max_color;
} XintView3DColorRange;
Member range_direction describes the direction of interpolation, it may be set to XintINTERPOLATE_X, XintINTERPOLATE_Y , XintINTERPOLATE_Z, or a combination of these (set it to XintINTERPOLATE_X+XintINTERPOLATE_Y to interpolate both in the X and Y directions for example). Member interp_method describes the interpolation method, you may specify XintINTERPOLATE_LINEAR, XintINTERPOLATE_EXPONENTIAL, XintINTERPOLATE_LOGARITHMIC, XintINTERPOLATE_RANDOM.
Member across_object specifies whether the interpolation is performed within the object range (True) or within the limits of the coordinate system (False). Argument color_model specifies in which color model space to perform the interpolation. You may specify XintCOLOR_MODEL_RGB (Red/Green/Blue) or XintCOLOR_MODEL_HSV (Hue/Saturation/Value). Finally, members min_color and max_color specify the two colors to interpolate between.
When argument type is set to XintMATERIAL_MULTI_COLOR, a color must be specified for each vertex of the object that this material is created for. The number of colors specified must be at least as large as the number of vertices in the associated object. Do not use this type of material in conjunction with a Marker object. The number of colors and the array of colors are specified in structure XintView3DColorMulti which is described below.
typedef struct {
int num_colors; /* Number of colors */
XintColor4 *colors; /* Colors in scale */
} XintView3DColorMulti;
When argument type is set to XintMATERIAL_COLOR_SCALE, the material color is specified as a list of colors. Each vertex is assigned a color from the list based on its data value (x, y, z or 4d component). The colors, orientation, list of intervals are specified in structure XintView3DColorScale, described below.
typedef struct {
XintView3DColorScaleOrientation orientation; /*Orientation*/
XintReal *range; /* Data intervals */
int num_colors; /* Number of colors */
XintColor4 *colors; /* Colors in scale */
} XintView3DColorScale;
Member orientation specifies which vertex component is used to assign the color. Specify XintCOLOR_SCALE_ORIENTATION_X to use the X coordinate, XintCOLOR_SCALE_ORIENTATION_Y for the Y coordinate, XintCOLOR_SCALE_ORIENTATION_Z for the Z coordinate and XintCOLOR_SCALE_ORIENTATION_4D to use the 4th component specified using arguments fdata_4d or bdata_4d. Member range is an array of size num_colors-1 and is used to specify the data intervals. For example, if member num_colors is 4 and range contains the values {10., 20., 30.}, then the first color will be assigned to vertices which data component is less than 10., the second color will be assigned to vertices which data component is between 10 and 30. etc.
When argument type is set to XintMATERIAL_COLOR_INDEX the colors for an object are specified as an index into a color table. A color table is a pointer to an opaque structure containing a list of colors. See the Color Function section to create a color table. The color table to use and the list of indices are specified using structure XintView3DColorIndex, described below.
typedef struct {
XintView3DColorTable *table; /* Color table */
int num_indices; /* Number of indices */
int *index; /* Index list */
} XintView3DColorIndex;
Material of type XintMATERIAL_COLOR_INDEX can be used to specify a single color material (num_indices = 1) or a color for each vertex ( num_indices = number of vertices).
Arguments attr_mask and attributes are used to set all the attributes of a material except the color. Argument attributes is a pointer to a structure of type XintView3DMaterialAttributes which is described below:
typedef struct {
Boolean light;
int shade_model;
int draw_mode;
Boolean draw_grid;
Boolean image_flag;
} XintView3DMaterialAttributes;
You need only to set the components that you want to change. The following table lists the structure members, the default values, and the corresponding mask.
| Member | Default | Mask |
| light | True | XintMA_LIGHT |
| shade_model | XintSMOOTH | XintMA_SHADE_MODEL |
| draw_mode | XintDRAW_FILL | XintMA_DRAW_MODE |
| draw_grid | False | XintMA_DRAW_GRID |
| image_flag | False | XintMA_IMAGE_FLAG |
Member light specifies whether lighting is enabled or disabled for the object. Member shade_model specifies the shade model used for the object. It may be set to XintSMOOTH or XintFLAT. Argument draw_mode specifies how to draw the object, it may be set to XintDRAW_FILL, XintDRAW_LINE or XintDRAW_POINT. Argument draw_grid, used for mesh surface objects only, specifies whether or not to draw the mesh grid lines. Finally, argument image_flag must be set to True if the material is to be used in conjunction with a Raster Image object.
XintView3DObject *XintView3DCreateMeshSurface (...)
| char * | name | Name of surface object. |
| XintView3DObjectType | type | Type of surface. |
| int | num_verts | Number of vertices (data points). |
| XintVector3 * | verts | Array of data points. |
| XintVector3 * | normals | Array of normals (normalized vector perpendicular to the surface at the corresponding vertex). A normal vector must be specified for each vertex. Specify NULL to have the normals calculated automatically. |
| int | num_lists | Number of lists of indices. |
| int * | num_indices | List of number of indices. |
| int ** | indices | Data indices stored in num_lists lists of num_indices[i] elements each. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XintReal * | fdata_4d | Specifies a data array, of size num_verts, that is used to assign the color at each node if the front material type is set to XintMATERIAL_COLOR_SCALE. |
| XintReal * | bdata_4d | Specifies a data array, of size num_verts, that is used to assign the color at each node if the back material type is set to XintMATERIAL_COLOR_SCALE. |
| XtPointer | user_data | Pointer to user private data. |
The argument type must be set as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintOBJECT_MESH_SURFACE_QUAD_STRIP | Surface may be specified as a set of strips made of quadrilaterals. |
| XintOBJECT_MESH_SURFACE_TRI_STRIP | Surface may be specified as a set of strips made of triangles. |
| XintOBJECT_MESH_SURFACE_POLYS | Surface is specified as a set of polygons. |
| XintOBJECT_MESH_SURFACE_QUADS | Surface is specified as a set of quadrilaterals. |
| XintOBJECT_MESH_SURFACE_TRIS | Surface is specified as a set of triangles. |
For surfaces specified as XintOBJECT_MESH_SURFACE_POLYS, XintOBJECT_MESH_SURFACE_QUADS or XintOBJECT_MESH_SURFACE_TRIS, argument num_lists represents the number of elements in the surface ( polygons, quadrilaterals or triangles). Argument num_indices is an array containing the size of each polygon for a surface of type XintOBJECT_MESH_SURFACE_POLYS. For surfaces of type XintOBJECT_MESH_SURFACE_QUADS or XintOBJECT_MESH_SURFACE_TRIS, array num_indices must contain the same value in each entry (4 and 3 respectively).
The following diagram illustrates the vertex numbering for each type of surface.
XintOBJECT_MESH_SURFACE_QUAD_STRIP

XintOBJECT_MESH_SURFACE_TRI_STRIP

XintOBJECT_MESH_SURFACE_POLYS

XintOBJECT_MESH_SURFACE_QUADS

XintOBJECT_MESH_SURFACE_TRIS

XintView3DObject * XintView3DCreateNormalsForMesh(...)
| XintView3DObject * | mesh | Pointer to a mesh surface object. |
| double | size | Specifies the size of the normal vectors. A size of 1.0 corresponds to 2% of the size of the longest axis. |
XintView3DObject *XintView3DCreatePoint (...)
| char * | name | Name of the point object. |
| double | size | Size of the point. |
| int | num_vertices | Number of vertices. |
| XintVector3 * | vertices | List of vertices for the point cloud. |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XintReal * | data_4d | Specifies a data array, of size num_vertices, that is used to assign the color at each point if the material type is set to XintMATERIAL_COLOR_SCALE. |
| XtPointer | user_data | Pointer to user private data. |
XintView3DObject *XintView3DCreateRaster (...)
| char * | name | Name of the raster object. |
| XintVector3 | upper_left | Upper left corner of the image. |
| XintVector3 | upper_right | Upper right corner of the image. |
| XintVector3 | lower_right | Lower right corner of the image. |
| XintVector3 | lower_left | Lower left corner of the image. |
| int | num_verts | Specifies the number of elements in array clip_vertices. |
| XintVector3 * | clip_vertices | Array of vertices describing a clipping plane for the object. All the vertices must be contained inside the four corners specified for the image. Specify NULL and set num_verts to 0 if you don't want to clip the image. |
| XintView3DRaster-Orientation | orientation | Specify XintORIENT_ROW if the image is stored as scan lines or XintORIENT_COLUMN otherwise. |
| Boolean | rhs | Specifes whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| int | width | Width of the image. |
| int | height | Height of the image. |
| XintReal * | image | Array containing the data if the material type is XintMATERIAL_COLOR_SCALE. This argument should be set to NULL for the other material types. The actual image data is already described in the color definition of the other valid material types (XintMATERIAL_MULTI_COLOR and XintMATERIAL_COLOR_INDEX) |
| XtPointer | user_data | Pointer to user private data. |
XintView3DTextureMap *XintView3DCreateTextureMap (...)
| char * | name | Optional name of the texture map. |
| int | type | Type of texture map. Must be XintTEXTURE_2D or XintTEXTURE_1D. |
| int | format | Format of texture map. |
| int | blend | Blending function. |
| int | width | Width of texture map. |
| int | height | Height of texture map. |
| float * | image | Image data for texture map (specified in rows). |
| float ** | mipmaps | Optional minification images. |
| Boolean | build_mipmaps | Specify True to build mipmap images for texturing. |
| int | mag_filter | Magnification filter. |
| int | min_filter | Minification filter. |
| Boolean | clamp_s | If the object is larger than the texture map, specifying True will clamp the texture map in the S direction (column), repeating the last bit. Specifying False will repeat the texture. |
| Boolean | clamp_t | If the object is larger than the texure map, specifying True will clamp the texture map in the T direction (row), repeating the last bit. Specifying False will repeat the texture. |
| XintView3DAutoTexture * | auto_data | Data structure for automatic texture coordinate generation. |
| Boolean | conserve_memory | If True, textures will be generated that conserve memory with the trade-off of a potential reduction in quality. False will preserve the quality of the image at the trade-off of using more memory. |
Textures are defined using the coordinates S and T. All texture coordinates range from 0.0 through 1.0. One dimensional textures only use S coordinates, whereas 2 dimensional textures use both. S is used as the width, and T the height.
type must be one of the following:
| Defined Constant | Description |
|---|---|
| XintTEXTURE_2D | 2D texture map. An S x T array of values. |
| XintTEXTURE_1D | 1D texture map. An S element array of values. |
format defines the format of the image data. format must be one of the following:
| Defined Constant | Description |
|---|---|
| XintTFORMAT_RED | Each element of image is 1 float. The texture adjusts only the Red component of the underlying color. |
| XintTFORMAT_GREEN | Each element of image is 1 float. The texture adjusts only the Green component of the underlying color. |
| XintTFORMAT_BLUE | Each element of image is 1 float. The texture adjusts only the Blue component of the underlying color. |
| XintTFORMAT_ALPHA | Each element of image is 1 float. The texture adjusts only the Transparency (Alpha) of the underlying color. |
| XintTFORMAT_LUMINANCE | Each element of image is 1 float. The texture adjusts only the Brightness of the underlying color. |
| XintTFORMAT_LUMINANCE_ALPHA | Each element of image is 2 floats(LA). The texture adjusts the Brightness and the Transparency of the underlying color. |
| XintTFORMAT_RGB | Each element of image is 3 floats(RGB). The texture adjusts the Red, Green, and Blue (color) of the underlying color. |
| XintTFORMAT_RGBA | Each element of image is 4 floats(RGBA). The texture adjusts the Red, Green, Blue, and Transparency of the underlying color. |
blend defines how the texture map affects the underlying color of the object. blend must be one of the following:
| Defined Constant | Description |
|---|---|
| XintTBLEND_DECAL | Replace the existing color with the texture. |
| XintTBLEND_MODULATE | Multiply the existing color with the texture. |
| XintTBLEND_BLEND | Blend the texture map with the existing color. (Most useful.) |
width and height define the dimensions of the texture map. All internal representations of texture maps must have a width and height that is a power of 2. If the specified dimensions are not a power of 2, the texture map will be converted. If conserve memory is True, then the image will be reduced in size to the closest power of 2. If conserve_memory is False, the image will be increased in size to the closest power of 2.
image is the actual image data used for texture mapping.
mapmaps is an optional array of images of reduced size used for minification purposes. When the visible area of the texture map is smaller than the actual image size, a mipmap can be used to generate a better quality final image. (Mip stands for the Latin multim im parvo, meaning "many things in a small place.") If you wish to use mipmapping, but do not want to generate the additional images, you can specify mipmap as NULL, and build_mipmaps as True. To generate mipmaps, you will need to supply sizes of the original image in powers of 2 between the original size and a 1 x 1 map.
Example:
/* Original Image Size: 64 x 32 */
mipmaps = (float **)malloc(5 * sizeof(float *));
mipmaps[0] = (float *)malloc(32 * 16 * sizof(float)); /* 32 x 16 */
mipmaps[1] = (float *)malloc(16 * 8 * sizof(float)); /* 16 x 8 */
mipmaps[2] = (float *)malloc(8 * 4 * sizof(float)); /* 8 x 4 */
mipmaps[3] = (float *)malloc(4 * 2 * sizof(float)); /* 4 x 2 */
mipmaps[4] = (float *)malloc(2 * 1 * sizof(float)); /* 2 x 1 */
mag_filter is a constant that defines how the texture map should be rendered when the size of the texture map is smaller than the resultant image size. mag_filter must be:
| Defined Constant | Description |
|---|---|
| XintTFILTER_NEAREST | Use the texel on the texture map that is closest to the result (Lowest Quality - Highest Performance). |
| XintTFILTER_LINEAR | Linear interpolate the resultant texel from the 4 closest texels on the texture map (Highest Quality - Lowest Performance). |
min_filter is a constant that defines how the texture map should be rendered when the size of the texture map is greater than the resultant image size. min_filter must be:
| Defined Constant | Description |
|---|---|
| XintTFILTER_NEAREST | Use the texel on the texture map that is closest to the result (Lowest Quality - Highest Performance). |
| XintTFILTER_LINEAR | Linear interpolate the resultant texel from the adjacent texels on the texture map. |
| XintTFILTER_NEAREST_MIPMAP_NEAREST | Select the output texel from the mipmap closest to the size of the resultant image and the closest texel on the mipmap. |
| XintTFILTER_LINEAR_MIPMAP_NEAREST | Select the output texel from the mipmap closest to the size of the resultant image and linear interpolate the texel from the adjacent texels. |
| XintTFILTER_NEAREST_MIPMAP_LINEAR | Linear interpolate between the two closest mipmaps and then select the output texel from the nearest point on the interpolated mipmap. |
| XintTFILTER_LINEAR_MIPMAP_LINEAR | Linear interpolate between the two closest mipmaps and within the mipmaps themselves. (Highest quality - Lowest Performance) |
clamp_s and clamp_t define the behavior of texturing when the texture coordinates do not fit within the space of the texture map. The coordinate range for a texture map is [0.0, 1.0]. If clamp_* is set to True, then the texture map will be clamped and pixel coordinates outside the range will be clamped to the boundary (resulting in a streaking effect). If clamp_* is set to False, then the texture map will be repeated across the object.
auto_data is a data structure that is used for the automatic generation of texture coordinates. This is an advanced topic. auto_data is of type XintView3DAutoTexture defined below:
typedef struct {
int mode[2],
float parameters[2][4];
} XintView3DAutoTexture;
Each element of this structure contains 2 elements. The first "[0]" is for 1D textures or the S coordinate of a 2D texture. The seconds element "[1]" is only used for 2D textures and represents the T coordinate. mode must be:
| Defined Constant | Description |
|---|---|
| XintTGEN_OBJECT_LINEAR | Linear mapping across the object. The texture map is fixed to the object. |
| XintTGEN_EYE_LINEAR | Mapping relative to eye coordinates. The texutre map is fixed relative to the eye. The object will move through the texture. |
| XintTGEN_SPHERE | Spherical mapping. Useful for environment mapping. |
If mode is set to XintT_GEN_OBJECT_LINEAR the parameters specifies a linear mapping using the function:
If mode is set to XintTGEN_EYE_LINEAR then parameters specifies a linear mapping in eye coordinates using the function:
Where M is the viewing transformation matrix.
If mode is set to XintTGEN_SPHERE, then parameters does not need to be defined.
See the Programming Guide for examples on texture mapping.
XintView3DObject *XintView3DCreateUniformGrid (...)
| char * | name | Name of surface object. |
| int | width | Width of the grid. |
| int | height | Height of the grid. |
| XintVector3 * | grid | Array of data points (size is width * height) |
| Boolean | rhs | Specifies whether the coordinate system is right handed (z axis pointing up) or left handed (z axis pointing down). |
| XintReal * | fdata_4d | Specifies a data array, of size width * height, that is used to assign the color at each node if the front material type is set to XintMATERIAL_COLOR_SCALE. |
| XintReal * | bdata_4d | Specifies a data array, of size width * height, that is used to assign the color at each node if the back material type is set to XintMATERIAL_COLOR_SCALE. |
| Boolean | use_triangles | Set to True to display the surface using triangles (2 per grid cell). Set to False to display the surface using rectangles. This flag should be set to True if the surface is going to be edited or if the grid is not smooth. |
| XintReal * | null_value | Specifies a pointer to a value representing missing data. Set it to NULL if your grid has no missing values. Creation time of a grid will increase significantly if you specify a non NULL value. |
| XtPointer | user_data | Pointer to user private data. |
XintView3DObject *XintView3DCreateVolume (...)
| char * | name | Name of object. |
| XintView3DVolumeFormat | format | Type of format for volume. |
| XintView3DVolumeDataType | data_type | Data type for volume. |
| XintView3DVolumeAlphaMap | alpha_map | Alpha map method to be used. |
| XtPointer | alpha_data | Alpha map array or function. |
| int | alpha_map_size | Size of alpha map array. |
| XintView3DVolumeColorMap | color_map | Color map method to be used. |
| XtPointer | color_data | Color map array or function. |
| int | color_map_size | Size of color map array. |
| XintVector3 | min_coord | Minimum coordinate of the volume object. |
| XintVector3 | max_coord | Maximum coordinate of the volume object. |
| double | min_value | Minimum value of the voxel data. |
| double | max_value | Maximum value of the voxel data. |
| unsigned int | num_x | Voxel data dimension in X. |
| unsigned int | num_y | Voxel data dimension in Y. |
| unsigned int | num_z | Voxel data dimension in Z. |
| XtPointer | data | Voxel data. |
| XintView3DVolumeRenderMethod | method | Volume render method used. |
| XtPointer | user_data | User defined data. |
Argument XintView3DVolumeRenderMethod must be specified as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintVRM_POINTS | Point based algorithm rendering method. |
| XintVRM_3D_TEXTURE | 3D texture extension method. This method needs OpenGL 3D texture extensions and requires texture map hardware. |
Argument XintView3DVolumeFormat must be specified as one of the following constants:
| Defined Constant | Description |
|---|---|
| XintVF_I | Each value of the volume data array represents a single color index. The RGBA values of the index are decided by the color and alpha map table. |
| XintVF_L | Each value of the volume data array represents an intensity value. This format needs the color map table and the alpha map table. |
| XintVF_LA | The volume data array is made up of pairs of luminance and alpha. The luminance component represents an intensity value. The alpha component represents a transparency value. This format needs the color map table. |
| XintVF_RGB | The volume data array is made up of triplets of Red, Green, and Blue components. This format needs an alpha map table. |
| XintVF_RGBA | The volume data array is made up of quadruplets of Red, Green, Blue and Alpha components. This format does not need either the color map table or the alpha map table. |
Argument XintView3DVolumeDataType must be specified as one of the followoing constants:
| Defined Constant | Description |
|---|---|
| XintVD_CHAR | Type character. |
| XintVD_UCHAR | Type unsigned character. |
| XintVD_SHORT | Type short. |
| XintVD_USHORT | Type unsigned short. |
| XintVD_INT | Type integer. |
| XintVD_UINT | Type unsigned integer. |
| XintVD_LONG | Type long. |
| XintVD_ULONG | Type unsigned long. |
| XintVD_FLOAT | Type floating point. |
| XintVD_DOUBLE | Type double. |
Argument XintView3DVolumeAlphaMap must be specified as one of the following constants. If the constant XintVAM_USER is supplied, then the function supplied returns the alpha value at the offset index into the voxel data which is given as its only argument.
float UserAlphaFunction(unsigned long offset);
| Defined Constant | Description |
|---|---|
| XintVAM_NONE | The alpha value of each voxel is 1. |
| XintVAM_LINEAR_INTENSITY | The alpha value of each voxel is its intensity value. |
| XintVAM_USER | The alpha data is a user defined function. |
Argument XintView3DVolumeColorMap must be specified as one of the following constants. If the constant XintVCM_USER is supplied, then the function supplied is a void function with two arguments, offset index into the voxel data and the voxel color at that offset. If the XintView3DVolumeAlphaMap has been used then voxel color need only be RGB values. If an alpha map is not defined then voxel color needs to be RGBA values.
float UserColorFunction(unsigned long offset,
XintColor4 voxel_color);
| Defined Constant | Description |
|---|---|
| XintVCM_SINGLE_COLOR | The colormap is a single color. |
| XintVCM_LINEAR_SINGLE | The colormap multiplies the single color with intensity. |
| XintVCM_USER | The colormap data is a user defined function. |
void XintView3DGetAxisLimits (...)
| Widget | widget | ID of the View3D widget. |
| XintRealLimits * | x_limits | Axis limits returned in the x direction. |
| XintRealLimits * | y_limits | Axis limits returned in the y direction. |
| XintRealLimits * | z_limits | Axis limits returned in the z direction. |
void XintView3DGetAxisScale (...)
| Widget | widget | ID of the View3D widget. |
| double * | x_scale | Scale value returned for the x direction. |
| double * | y_scale | Scale value returned for the y direction. |
| double * | z_scale | Scale value returned for the z direction. |
XintView3DObject **XintView3DGetGroupList (...)
| XintView3DObject * | object | Name of the group object. |
| int * | count | Returns the number of objects in the group. |
Boolean XintView3DGetMeshTwoSided (...)
| Widget | widget | ID of a View3D widget displaying the object. |
| XintView3DObject * | object | Mesh surface object. |
XintView3DMaterial *XintView3DGetObjectMaterial (...)
| Widget | widget | View3D widget. |
| XintView3DObject * | object | Object for which to return material. |
| XintView3DMaterial ** | front | Returns material used for object (front material if this is a mesh surface). |
| XintView3DMaterial ** | back | Returns back material if this is a mesh surface object using a different front and back material, or NULL otherwise. |
XintView3DObjectType XintView3DGetObjectType (...)
| XintView3DObject * | object | Object of interest. |
The following table lists all the possible return values for this function. The first column lists all the possible return types, the second column lists the result of a bitwise and operation between the object type and constant XintOBJECT_TYPE_MASK
| type | type & XintOBJECT_TYPE_MASK |
|---|---|
| XintOBJECT_LINE_SEGMENT | XintOBJECT_LINE_SEGMENT |
| XintOBJECT_LINE_POLYLINE | XintOBJECT_LINE_SEGMENT |
| XintOBJECT_MESH_SURFACE_QUAD_STRIP | XintOBJECT_MESH_SURFACE |
| XintOBJECT_MESH_SURFACE_TRI_STRIP | XintOBJECT_MESH_SURFACE |
| XintOBJECT_MESH_SURFACE_POLYS | XintOBJECT_MESH_SURFACE |
| XintOBJECT_MESH_SURFACE_TRIS | XintOBJECT_MESH_SURFACE |
| XintOBJECT_MESH_SURFACE_QUADS | XintOBJECT_MESH_SURFACE |
| XintOBJECT_MARKER_BOX | XintOBJECT_MARKER |
| XintOBJECT_MARKER_CROSS | XintOBJECT_MARKER |
| XintOBJECT_MARKER_STAR | XintOBJECT_MARKER |
| XintOBJECT_MARKER_POINT | XintOBJECT_MARKER |
| XintOBJECT_POINT | XintOBJECT_POINT |
| XintOBJECT_RASTER | XintOBJECT_RASTER |
void XintView3DOverlayObjOnPolygon (...)
| Widget | widget | ID of the View3D widget. |
| XintView3DObject * | polygon | The Mesh or Facet object for overlay. |
| XintView3DObject * | overlay | The Point or Line object overlay. |
void XintView3DQueryMaterial (...)
| XintView3DMaterial * | material | Material to query. |
| unsigned long | flags | Flags defining properties to query. |
| XintView3DMaterialAttributes * | attributes | Material attributes. |
| XintView3DMaterialColor * | color | Material color. |
The material properties are queried according to the flags parameter.
| Property | Required Flag | Memory Allocated |
|---|---|---|
| attributes->light | XintMA_LIGHT | No |
| attributes->shade_model | XintMA_SHADE_MODEL | No |
| attributes->draw_mode | XintMA_DRAW_MODE | No |
| attributes->draw_grid | XintMA_DRAW_GRID | No |
| Property | Required Flag | Memory Required |
|---|---|---|
| color->single | XintMA_SINGLE_COLOR | No |
| Property | Required Flag | Memory Required |
|---|---|---|
| color->multi.colors | XintMA_MULTI_COLOR | Yes |
| color->multi.num_colors | XintMA_MULTI_COLOR | No |
| Property | Required Flag | Memory Required |
|---|---|---|
| color->scale.orientation | XintMA_SCALE_ORIENTATION | No |
| color->scale.range | XintMA_SCALE_RANGE | Yes |
| color->scale.colors | XintMA_SCALE_COLORS | Yes |
| color->scale.num_colors | Any of the above. | No |
| Property | Required Flag | Memory Required |
|---|---|---|
| color->range.min_color | XintMA_RANGE_MIN | No |
| color->range.max_color | XintMA_RANGE_MAX | No |
| color->range.range_direction | XintMA_RANGE_DIRECTION | No |
| color->range.interp_method | XintMA_RANGE_INTERP | No |
| color->range.across_object | XintMA_RANGE_ACROSS | No |
| color->range.color_model | XintMA_RANGE_MODEL | No |
| Property | Required Flag | Memory Required |
|---|---|---|
| color->index.table | XintMA_INDEX_TABLE | No |
| color->index.index | XintMA_INDEX | Yes |
| color->index.num_indices | Any of the above. | No |
void XintView3DQueryObject (...)
| XintView3DObject * | object | Object to query. |
| unsigned long | flags | Flags defining properties to query. |
| XintView3DObjectProperty * | prop | Object properties. |
The object properties are queried according to the flags parameter. Memory will be allocated for queried arrays by default. If the global flag local_storage is disabled, memory will not be allocated. (See XintView3DSetGlobalFlags()).
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->line.name | XintCO_LINE_NAME | Yes |
| property->line.num_vertices | XintCO_LINE_NUMBER_VERTICES | No |
| property->line.vertices | XintCO_LINE_VERTICES | Maybe |
| property->line.data_4d | XintCO_LINE_DATA4D | Maybe |
| property->line.thickness | XintCO_LINE_THICKNESS | No |
| property->line.user_data | XintCO_LINE_USER_DATA | No |
| property->line.min | XintCO_LINE_RANGE | No |
| property->line.max | XintCO_LINE_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->mesh.name | XintCO_MESH_NAME | Yes |
| property->mesh.num_vertices | XintCO_MESH_NUMBER_VERTICES | No |
| property->mesh.vertices | XintCO_MESH_VERTICES | Maybe |
| property->mesh.fdata_4d | XintCO_MESH_F_DATA4D | Maybe |
| property->mesh.bdata_4d | XintCO_MESH_B_DATA4D | Maybe |
| property->mesh.user_data | XintCO_MESH_USER_DATA | No |
| property->mesh.min | XintCO_MESH_RANGE | No |
| property->mesh.max | XintCO_MESH_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->marker.name | XintCO_MARKER_NAME | Yes |
| property->marker.size | XintCO_MARKER_SIZE | No |
| property->marker.location | XintCO_MARKER_LOCATION | No |
| property->marker.label | XintCO_MARKER_LABEL | Yes |
| property->marker.label_loc | XintCO_MARKER_LABEL_LOC | No |
| property->marker.user_data | XintCO_MARKER_USER_DATA | No |
| property->marker.min | XintCO_MARKER_RANGE | No |
| property->marker.max | XintCO_MARKER_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->raster.name | XintCO_RASTER_NAME | Yes |
| property->raster.num_vertices | XintCO_RASTER_NUMBER_VERTICES | No |
| property->raster.vertices | XintCO_RASTER_VERTICES | Maybe |
| property->raster.data_4d | XintCO_RASTER_DATA4D | Maybe |
| property->raster.lower_left | XintCO_RASTER_LOWER_LEFT | No |
| property->raster.lower_right | XintCO_RASTER_LOWER_RIGHT | No |
| property->raster.upper_right | XintCO_RASTER_UPPER_RIGHT | No |
| property->raster.upper_left | XintCO_RASTER_UPPER_LEFT | No |
| property->raster.user_data | XintCO_RASTER_USER_DATA | No |
| property->raster.min | XintCO_RASTER_RANGE | No |
| property->raster.max | XintCO_RASTER_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->facet.name | XintCO_FACET_NAME | Yes |
| property->facet.num_vertices | XintCO_FACET_NUMBER_VERTICES | No |
| property->facet.vertices | XintCO_FACET_VERTICES | Maybe |
| property->facet.data_4d | XintCO_FACET_DATA4D | Maybe |
| property->facet.user_data | XintCO_FACET_USER_DATA | No |
| property->facet.min | XintCO_FACET_RANGE | No |
| property->facet.max | XintCO_FACET_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->point.name | XintCO_POINT_NAME | Yes |
| property->point.num_vertices | XintCO_POINT_NUMBER_VERTICES | No |
| property->point.vertices | XintCO_POINT_VERTICES | Maybe |
| property->point.data_4d | XintCO_POINT_DATA4D | Maybe |
| property->point.size | XintCO_POINT_SIZE | No |
| property->point.user_data | XintCO_POINT_USER_DATA | No |
| property->point.min | XintCO_POINT_RANGE | No |
| property->point.max | XintCO_POINT_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->geom.name | XintCO_GEOM_NAME | Yes |
| property->geom.data_4d | XintCO_GEOM_DATA4D | Maybe |
| property->geom.dim | XintCO_GEOM_DIMENSION | No |
| property->geom.location | XintCO_GEOM_LOCATION | No |
| property->geom.user_data | XintCO_GEOM_USER_DATA | No |
| property->geom.min | XintCO_GEOM_RANGE | No |
| property->geom.max | XintCO_GEOM_RANGE | No |
| Property | Required Flag | Memory Allocated |
|---|---|---|
| property->volume.name | XintCO_VOLUME_NAME | Yes |
| property->volume.vertices | XintCO_VOLUME_VERTICES | Maybe |
| property->volume.min_coord | XintCO_VOLUME_MIN_COORD | Yes |
| property->volume.max_coord | XintCO_VOLUME_MAX_COORD | Yes |
| property->volume.user_data | XintCO_VOLUME_USER_DATA | No |
void XintView3DRefMaterial (...)
| XintView3DMaterial * | material | Material to be referenced. |
void XintView3DRefObject(...)
| XintView3DObject * | object | Object to be referenced. |
void XintView3DRefTexture(...)
| XintView3DTextureMap * | texture | Texture to be referenced. |
void XintView3DRemoveObjectFromGroup (...)
| XintView3DObject * | group | Group object. |
| XintView3DObject * | object | Object to be removed from group. |
void XintView3DSetMaterial (...)
| Widget | widget | ID of the View3D widget. |
| XintView3DObject * | object | Object to have material assigned. |
| XintView3DMaterial * | front_material | Front material. |
| XintView3DMaterial * | back_material | Back material. |
This call is very similar to XintView3DAdjObjRotation, except that this call initializes the rotation. Any previous rotations applied to the object are lost. This call does not affect previous calls to scale or translate the object.
void XintView3DSetObjRotation (...)
| XintView3DObject * | object | ID of the object to set. |
| XintVector3 | rotation | Vector to rotate about. |
| double | angle | Angle in degrees to rotate. |
This call is very similar to XintView3DAdjObjRotation, except that this call initializes the rotation. Any previous rotations applied to the object are lost. This call does not affect previous calls to scale or translate the object.
void XintView3DSetObjScale (...)
| XintView3DObject * | object | ID of the object to set. |
| XintVector3 | scale | Amount to scale. |
This call is very similar to XintView3DAdjObjScale, except that this call initializes the scaling. Any previous scaling applied to the object are lost. This call does not affect previous calls to rotate or translate the object.
void XintView3DSetObjTranslation (...)
| XintView3DObject * | object | ID of the object to set location. |
| XintVector3 | translation | Amount to translate. |
This call is very similar to XintView3DAdjObjTranslation, except that this call initializes the translation. Any previous translations applied to the object are lost. This call does not affect previous calls to rotate or scale the object.
void XintView3DUnRefMaterial (...)
| XintView3DMaterial * | material | Material to be unreferenced. |
void XintView3DUnRefObject (...)
| XintView3DObject * | object | Object to be unreferenced. |
void XintView3DUnRefTexture (...)
| XintView3DTextureMap * | texture | Texture to be unreferenced. |