extern void XintView3DQueryObject( XintView3DObject *object, unsigned long flags, XintView3DObjectProperty *props ); extern void XintView3DChangeObject( XintView3DObject *object, unsigned long flags, XintView3DObjectProperty *prop );
Both calls take as arguments, the object to query/change, a structure of type XintView3DObjectProperty and a series of flags which specify the component(s) of the object you want to query/change. Except for a Raster Object, you cannot currently change the number of vertices (or indices) of an object.
typedef union _XintView3DObjectProperty {
XintView3DLineAttribute line;
XintView3DMeshAttribute mesh;
XintView3DMarkerAttribute marker;
XintView3DRasterAttribute raster;
XintView3DFacetAttribute facet;
XintView3DPointAttribute point;
XintView3DGeomAttribute geom;
} XintView3DObjectProperty;
typedef struct _XintView3DLineAttribute{
char *name;
int num_vertices;
XintVector3 *vertices;
XintReal *data_4d;
double thickness;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DLineAttribute;
typedef struct _XintView3DMeshAttribute{
char *name;
int num_vertices;
XintVector3 *vertices;
XintReal *fdata_4d;
XintReal *bdata_4d;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DMeshAttribute;
typedef struct _XintView3DMarkerAttribute{
char *name;
float size;
XintVector3 location;
char *label;
XintVector3 label_loc;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DMarkerAttribute;
typedef struct _XintView3DRasterAttribute{
char *name;
int num_vertices;
XintVector3 *vertices;
XintReal *data_4d;
XintVector3 lower_left;
XintVector3 lower_right;
XintVector3 upper_right;
XintVector3 upper_left;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DRasterAttribute;
typedef struct _XintView3DFacetAttribute{
char *name;
int num_vertices;
XintVector3 *vertices;
XintReal *data_4d;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DFacetAttribute;
typedef struct _XintView3DPointAttribute{
char *name;
int num_vertices;
XintVector3 *vertices;
XintReal *data_4d;
float size;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DPointAttribute;
typedef struct _XintView3DGeomAttribute{
char *name;
XintReal *data_4d;
double *dim;
XintVector3 location;
XtPointer user_data;
XintVector3 min;
XintVector3 max;
} XintView3DGeomAttribute;
typedef struct _XintView3DVolumeAttribute{
char *name;
XtPointer *voxel;
XintVector3 min_coord;
XintVector3 max_coord;
XtPointer user_data;
} XintView3DGeomAttribute;
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->line.name | XintCO_LINE_NAME | QC | Yes |
| property->line.num_vertices | XintCO_LINE_NUMBER_VERTICES | Q | No |
| property->line.vertices | XintCO_LINE_VERTICES | QC | Maybe |
| property->line.data_4d | XintCO_LINE_DATA4D | QC | Maybe |
| property->line.thickness | XintCO_LINE_THICKNESS | QC | No |
| property->line.user_data | XintCO_LINE_USER_DATA | QC | No |
| property->line.min | XintCO_LINE_RANGE | Q | No |
| property->line.max | XintCO_LINE_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->mesh.name | XintCO_MESH_NAME | QC | Yes |
| property->mesh.num_vertices | XintCO_MESH_NUMBER_VERTICES | Q | No |
| property->mesh.vertices | XintCO_MESH_VERTICES | QC | Maybe |
| property->mesh.fdata_4d | XintCO_MESH_F_DATA4D | QC | Maybe |
| property->mesh.bdata_4d | XintCO_MESH_B_DATA4D | QC | Maybe |
| property->mesh.user_data | XintCO_MESH_USER_DATA | QC | No |
| property->mesh.min | XintCO_MESH_RANGE | Q | No |
| property->mesh.max | XintCO_MESH_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->marker.name | XintCO_MARKER_NAME | QC | Yes |
| property->marker.size | XintCO_MARKER_SIZE | QC | No |
| property->marker.location | XintCO_MARKER_LOCATION | QC | No |
| property->marker.label | XintCO_MARKER_LABEL | QC | Yes |
| property->marker.label_loc | XintCO_MARKER_LABEL_LOC | QC | No |
| property->marker.user_data | XintCO_MARKER_USER_DATA | QC | No |
| property->marker.min | XintCO_MARKER_RANGE | Q | No |
| property->marker.max | XintCO_MARKER_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->raster.name | XintCO_RASTER_NAME | QC | Yes |
| property->raster.num_vertices | XintCO_RASTER_NUMBER_VERTICES | Q | No |
| property->raster.vertices | XintCO_RASTER_VERTICES | QC | Maybe |
| property->raster.data_4d | XintCO_RASTER_DATA4D | QC | Maybe |
| property->raster.lower_left | XintCO_RASTER_LOWER_LEFT | QC | No |
| property->raster.lower_right | XintCO_RASTER_LOWER_RIGHT | QC | No |
| property->raster.upper_right | XintCO_RASTER_UPPER_RIGHT | QC | No |
| property->raster.upper_left | XintCO_RASTER_UPPER_LEFT | QC | No |
| property->raster.user_data | XintCO_RASTER_USER_DATA | QC | No |
| property->raster.min | XintCO_RASTER_RANGE | Q | No |
| property->raster.max | XintCO_RASTER_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->facet.name | XintCO_FACET_NAME | QC | Yes |
| property->facet.num_vertices | XintCO_FACET_NUMBER_VERTICES | Q | No |
| property->facet.vertices | XintCO_FACET_VERTICES | QC | Maybe |
| property->facet.data_4d | XintCO_FACET_DATA4D | QC | Maybe |
| property->facet.user_data | XintCO_FACET_USER_DATA | QC | No |
| property->facet.min | XintCO_FACET_RANGE | Q | No |
| property->facet.max | XintCO_FACET_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->point.name | XintCO_POINT_NAME | QC | Yes |
| property->point.num_vertices | XintCO_POINT_NUMBER_VERTICES | Q | No |
| property->point.vertices | XintCO_POINT_VERTICES | QC | Maybe |
| property->point.data_4d | XintCO_POINT_DATA4D | QC | Maybe |
| property->point.size | XintCO_POINT_SIZE | QC | No |
| property->point.user_data | XintCO_POINT_USER_DATA | QC | No |
| property->point.min | XintCO_POINT_RANGE | Q | No |
| property->point.max | XintCO_POINT_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->geom.name | XintCO_GEOM_NAME | QC | Yes |
| property->geom.data_4d | XintCO_GEOM_DATA4D | QC | Maybe |
| property->geom.dim | XintCO_GEOM_DIMENSION | QC | No |
| property->geom.location | XintCO_GEOM_LOCATION | QC | No |
| property->geom.user_data | XintCO_GEOM_USER_DATA | QC | No |
| property->geom.min | XintCO_GEOM_RANGE | Q | No |
| property->geom.max | XintCO_GEOM_RANGE | Q | No |
| Property | Required Flag | Q/C | Memory Allocated |
|---|---|---|---|
| property->volume.name | XintCO_VOLUME_NAME | QC | Yes |
| property->volume.vertices | XintCO_VOLUME_VERTICES | QC | Maybe |
| property->volume.min_coord | XintCO_VOLUME_MIN_COORD | QC | Yes |
| property->volume.max_coord | XintCO_VOLUME_MAX_CO RD | QC | Yes |
| property->volume.user_data | XintCO_VOLUME_USER_D TA | QC | No |
Note: Memory Allocated "Maybe": By default, memory for object parameters will be allocated. If the global flag "local_storage" is disabled then no memory will be allocated, and a pointer to the data will be returned instead. (See XintView3DSetGlobalFlags),