User's Reference - Inquire

### Inquire

Category

Structuring

Function

Returns information about an object.

Syntax

    output = Inquire(input, inquiry, value);

Inputs

Name | Type | Default | Description
--- | --- | --- | ---
`input` | object | none | the subject of the inquiry
`inquiry` | string | "is null" | a request for particular information
`value` | string | none | additional qualifiers

Outputs

Name | Type | Description
--- | --- | ---
`output` | integer or object | Examples include 1 and 0 (for yes/no inquiries), arrays, fields, groups, and vectors.

Functional Details

`input` | specifies the subject of the module's inquiry.
`inquiry` | specifies the query (see Notes). Some queries require an additional parameter (see value).
`value` | specifies an item of information needed for identifying the appropriate subject of the query. For example, the "attribute" inquiry requires the name of the attribute.

Notes:

1. Table 3 through Table 6 list the "inquiries" that can be made, the type(s) of object appropriate to each, an explanatory version of each, and the answer or type of answer returned.
2. Inquiries that start with "is" are true/false queries, returning 1 (one) for "yes" and 0 (zero) for "no." Such queries can be reversed, however, by inserting "not" after the initial "is": An "is not" query also returns 1 (one) for "yes" and 0 (zero) for "no." For example, if the subject of the inquiry is a scalar field, "is scalar" returns 1 (one) and "is not scalar" returns 0 (zero).
3. Any "is" query about a group whose members contain different types of objects will return 0 (zero) unless all members have the characteristic specified in the query. For example, if a group is composed of two fields, one scalar and one vector, the answer to the question "is scalar" will be 0 (zero).
4. Any inquiry that returns a scalar integer value can be made to return a value that is "1" higher or lower than that value. For example, "is array + 1" will return 2 (instead of 1) or 1 (instead of 0).
5. Capitalization of an inquiry is optional and its words may be separated or run together.
6. Scale transformations can generate unwanted distortions in objects such as Tube or Ribbon. The inquiry `"apply transform"` can be used to prevent these distortions.

Table 3. Inquiries about objects

`Inquiry` | `Input operated on` | `Question` | `Answer`
--- | --- | --- | ---
"is array" | Any object | Is the input an array? | 1 or 0
"is byte" | Any object | Is the data component unsigned byte? | 1 or 0
"is camera" | Any object | Is the input a camera object? | 1 or 0
"is clipped" | Any object | Is the input a clipped object? | 1 or 0
"is composite field" | Any object | Is the input a composite field? | 1 or 0
"is constant array" | Any object | Is the input a constant array? | 1 or 0
"is data string" | Any object | Is the data component string? | 1 or 0
"is double" | Any object | Is the data component double-precision floating point? | 1 or 0
"is empty" | Any object | Is the input an empty field, an empty group, or an array with no items? | 1 or 0
"is field" | Any object | Is the input a field? | 1 or 0
"is float" | Any object | Is the data component floating point? | 1 or 0
"is generic array" | Any object | Is the input a generic array? | 1 or 0
"is generic group" | Any object | Is the input a generic group? | 1 or 0
"is group" | Any object | Is the input a group of any kind? | 1 or 0
"is image" | Any object | Is the object an image? | 1 or 0
"is int" | Any object | Is the data component integral? | 1 or 0
"is integer" | Any object | Is the data component integral? | 1 or 0
"is irregular array" | Any object | Is the input an irregular array? | 1 or 0
"is light" | Any object | Is the input a light object? | 1 or 0
"is line" | Any object | Is the connections component 1-dimensional (i.e., a line)? | 1 or 0
"is matrix" | Any object | Is the data component a matrix? | 1 or 0
"is mesh array" | Any object | Is the input a mesh array? | 1 or 0
"is multigrid" | Any object | Is the input a multigrid? | 1 or 0
"is null" | Any object | Is the input null? | 1 or 0
"is object" | Any object | Is the input an object? | 1 or 0
"is path array" | Any object | Is the input a path array? | 1 or 0
"is private" | Any object | Is the input a private object? | 1 or 0
"is product array" | Any object | Is the input a product array? | 1 or 0
"is regular array" | Any object | Is the input a regular array? | 1 or 0
"is scalar" | Any object | Is the data component scalar? | 1 or 0
"is screen" | Any object | Is the input a screen object? | 1 or 0
"is series" | Any object | Is the input a series? | 1 or 0
"is short" | Any object | Is the data component short integral? | 1 or 0
"is string" | Any object | Is the input a string? | 1 or 0
"is surface" | Any object | Are the connections 2-dimensional? | 1 or 0
"is transform" | Any object | Is the input a transform object? | 1 or 0
"is xform" | Any object | Is the input a generic array? | 1 or 0
"is vector" | Any object | Is the data component vectorial? | 1 or 0
"is volume" | Any object | Are the connections 3-dimensional? | 1 or 0
"is 2vector" | Any object | Is the data component 2-vectorial? | 1 or 0
"is 3vector" | Any object | Is the data component 3-vectorial? | 1 or 0
"is 1D connections" | Any object | Does the object have 1-dimensional connections? | 1 or 0
"is 2D connections" | Any object | Does the object have 2-dimensional connections? | 1 or 0
"is 3D connections" | Any object | Does the object have 3-dimensional connections? | 1 or 0
"is 1D positions" | Any object | Does the object have 1-dimensional positions? | 1 or 0
"is 2D positions" | Any object | Does the object have 2-dimensional positions? | 1 or 0
"is 3D positions" | Any object | Does the object have 3-dimensional positions? | 1 or 0
"is 4D positions" | Any object | Does the object have 4-dimensional positions? | 1 or 0
"is 1D grid connections" | Any object | Does the object have 1-dimensional regular connections? | 1 or 0
"is 2D grid connections" | Any object | Does the object have 2-dimensional regular connections? | 1 or 0
"is 3D grid connections" | Any object | Does the object have 3-dimensional regular connections? | 1 or 0
"is 1D grid positions" | Any object | Does the object have 1-dimensional regular positions? | 1 or 0
"is 2D grid positions" | Any object | Does the object have 2-dimensional regular positions? | 1 or 0
"is 3D grid positions" | Any object | Does the object have 3-dimensional regular positions? | 1 or 0
"is 4D grid positions" | Any object | Does the object have 4-dimensional regular positions? | 1 or 0
"primitives" | Any object | How many of each type of primitive does the object contain? | string list
"object tag" | Any object | Returns the unique object identifying tag | integer

Table 4. Inquiries about particular types of objects

`Inquiry` | `Input operated on` | `Question` | `Answer`
--- | --- | --- | ---
"category" | Array or list | What category does the input belong to? | string (see 1)
"connection counts" | array or list | How many connections are there? | integer
"connection type" | Field | What is the element type? | string
"count" | Array or list | How many items does the input contain? | integer
"data counts" | Array or list | How many data items are there? | integer
"deltas" | Array or list | What are the deltas in each dimension? | vector list
"grid counts" | Array or list | What are the counts in each dimension? | integer
"is empty array" | Array or list | Is the input an array with no items? | 1 or 0
"items" | Array or list | How many items does the input contain? | integer
"origin" | Array or list | What is the origin of the input? | vector
"position counts" | Array or list | How many positions are there? | integer
"rank" | Array or list | What is the rank of the input? | integer
"shape" | Array or list | What is the shape of the input? | vector
"type" | Array or list | What is the type of the input? | string (see 2)
"camera angle" | Camera | What is the camera angle? | scalar
"camera aspect" | Camera | What is the aspect ratio of the input camera? | scalar
"camera background" | Camera | What is the background color of the input camera? | 3-vector
"camera fieldofview" | Camera | What is the field of view of the input camera? | scalar
"camera from" | Camera | What is the "from" point of the input camera? | vector
"camera matrix" | Camera | What is the matrix of the input camera? | matrix
"camera perspective" | Camera | What is the value of the perspective option? | 0 or 1
"camera resolution" | Camera | What is the resolution of the input camera? | integer
"camera to" | Camera | What is the "to" point of the input camera? | vector
"camera transform" | Camera | What is the matrix of the input camera? | matrix
"camera up" | Camera | What is the up direction of the input camera? | vector
"camera width" | Camera | What is the width of the input camera? | scalar
"is camera orthographic" | Camera | Is the input camera orthographic? | 1 or 0
"is camera perspective" | Camera | Is the input camera perspective? | 1 or 0
"clipped object" | Clipped | What is the clipped object? | object
"clipping object" | Clipped | What is the clipping object? | object
"component count" | Field | How many components does the field contain? | integer
"component names" | Field | What are the names of the field components? | string list
"connection gridcounts" | Field | What are the connection counts in each dimension? | integer vector
"is empty field" | Field | Is the input an empty field (i.e., with no components, "positions" component, or position items)? | 1 or 0
"is regular" | Field | Does the field have regular positions and connections? | 1 or 0
"is regular connections" | Field | Does the field have regular connections? | 1 or 0
"is regular positions" | Field | Does the field have regular positions? | 1 or 0
"is empty group " | Group | Is the input a group with no members? | 1 or 0
"member count" | Group | How many members belong to the group? | integer
"member names" | Group | What are the names of the group members? | string list
"position gridcounts" | Field | What are the position counts in each dimension? | integer vector
"product terms" | Product Array | What are the individual product terms? | Group of Arrays
"mesh terms" | Mesh Array | What are the individual mesh terms? | Group of Arrays
"screen depth" | Screen | What is the screen depth? | integer
"screen object" | Screen | What is the screen object? | object
"screen position" | Screen | What is the screen position? | integer
"member positions" | Series | What are the series positions? | scalar list
"series positions" | Series | What are the series positions? | scalar list
"transform matrix" | Transform | What is the transform matrix? | matrix
"transform object" | Transform | What is the object to be transformed? | object
"valid count" | Any object | How many valid data items are there? | integer
"invalid count" | Any object | How many invalid data items are there? | integer
"apply transform" | Any object | Not a question, but applies a transformation matrix to the positions components of an object then removes the Transform. See notes in Ribbon and Tube. | object
Notes: Possible categories: "real," "complex." Possible types: "signed byte," "unsigned byte," "short," "unsigned short," "integer," "unsigned integer," "float," "double," and "string."

Table 5. Inquiries that take a value parameter

`Inquiry` | `Input operated on` | `Value` | `Question` | `Answer`
--- | --- | --- | --- | ---
"attribute" | Any object | attribute name | What is the value of the specified attribute? | string
"counts" | Field | component name | How many items does the specified component contain? | integer
"grid counts" | Field | component name | What are the counts in each dimension of the specified component? | integer vector
"has attribute" | Any object | attribute name | Does the object have the specified attribute? | 1 or 0
"has component" | Field | component name | Is the specified component present? | 1 or 0
"has member" | Group | member name | Is the specified member present? | 1 or 0
"is connection" | Field | element type | Are the connections of the specified type? | 1 or 0
"is data dependent" | Any object | component name | Is the data dependent on the specified component? | 0 or 1
"is regular" | Field | component name | Is the specified component regular? | 1 or 0
"items" | Field | component name | How many items in the specified component? | integer
"member attribute" | Group | attribute name | What is the value of the specified attribute? | string, list
"member attributes" | Group | attribute name | What is the value of the specified attribute? | string, list
"string match" | String | character string | Does the output match the specified string? | 1 or 0

Table 6. Miscellaneous Inquiries

`Inquiry` | `Question` | `Answer`
--- | --- | ---
"processors" | How many processors is Data Explorer Using? | integer

Example Visual Programs

    MultipleDataSets.net
    PlotTwoLines.net
    UsingAttributes.net
    UsingTextandTextGlyphs.net
    WindVorticity.net

[ OpenDX Home at IBM | OpenDX.org ]