OpenCMISS-Zinc C++ API Documentation
|
Container/manager of fields and domains within a region. More...
#include <fieldmodule.hpp>
Container/manager of fields and domains within a region.
Container/manager of fields and domains within a region.
Note that fieldmodule create field methods documented as supporting 'automatic scalar broadcast' for their source field arguments work as follows: if given a mix of scalar and vector source fields, the scalar value is applied to each component of the vector, e.g. the result of ADD(CONSTANT([1 2 3 4], CONSTANT([10]) is [11 12 13 14]. Internally it works by substituing the scalar operand with a concatenate field with the same number of components as the vector operand, but filled with the scalar value.
|
inline |
Begin caching or increment cache level for this field module. Call this function before making multiple changes to fields, nodes, elements etc. from this field module to minimise number of change messages sent to clients. Must call matching fieldmodule end change method after making changes. Note that field module changes are always cached when the region changes are being cached. Can be nested.
Creates a field where the field components are the absolute value of each component in the source field.
sourceField | The input field |
Creates a field where the components are the arccosine value (using radians) of the components of the source_field.
sourceField | Input field |
|
inline |
Creates a field where the which adds the components of source_field_one and source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a zinc field which is an alias for another field, possibly from another region. This is the main mechanism for reusing field definitions from other regions.
sourceField | The field which the new field will be an alias for. Can be from a different region. |
|
inline |
Creates a field whose component values are 1 if that component of source_field_one AND source_field_two is non-zero, 0 otherwise. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
Creates a field where the components are the arcsine value (using radians) of the components of the source_field.
sourceField | Input field (components in radians) |
Creates a field where the components are the arctangent value (using radians) of the components of the source_field.
sourceField | Input field |
|
inline |
Creates a field where the components are calculated using the atan2 c function, so that the angle returned (in radians) is the angle between a positive x axis in a plane and the vector (x,y) where x is the source_field_one component and y is the source_field_two component.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a field cache for storing a known location and field values and derivatives at that location. Required to evaluate and assign field values.
|
inline |
Creates a field returning the component of the source field with the given component_index, starting at 1.
sourceField | The field the component value is copied from. |
componentIndex | The component index from 1 to number of components. |
|
inline |
Creates a field which concatenates the components of all source fields, in order, into a single vector.
fieldsCount | The number of source fields in the array. |
sourceFields | The array of fields to be concatenating together. |
|
inline |
Creates a field with the components specified in the array values. Internally this a composite field.
valuesInCount | The number of values in the array. |
valuesIn | The array of constant values |
|
inline |
Creates a field which performs a coordinate transformation from the source field values in their coordinate system type into the coordinate system type of this field. Returned field has 3 components.
sourceField | Source field with values in its own coordinate system. Must have 1 to 3 components. |
Creates a field where the components are the cosine value (using radians) of the components of the source_field.
sourceField | Input field (components in radians) |
|
inline |
Creates a vector field which is the cross product of the source_fields. The number of source fields determines the number of components i.e. dimension of the source_fields and the result. Allowable numbers: 1 : single 2-D vector source field. Returns orthogonal vector in 2-D plane given by 90 degree rotation anticlockwise. 2 : two 3-D vector source fields. Returns familiar 3-D cross product vector orthogonal to both source vectors in a right hand sense, whose magnitude is the area of the parallelogram formed by the source vectors on 2 sides. 3 : cross product of three 4-D vector source fields.
fieldsCount | The size of the source_fields array, one less than the dimension i.e. number of components of each source_field and the result. Only 1, 2 and 3 fields i.e. 2-D, 3-D and 4-D are supported. |
sourceFields | Array of fields with number of components equal to the dimension i.e. one more than the number_of_source_fields. |
|
inline |
Creates a vector field which is the cross product of the source_fields. The number of source fields determines the number of components i.e. dimension of the source_fields and the result. Allowable numbers: 1 : single 2-D vector source field. Returns orthogonal vector in 2-D plane given by 90 degree rotation anticlockwise. 2 : two 3-D vector source fields. Returns familiar 3-D cross product vector orthogonal to both source vectors in a right hand sense, whose magnitude is the area of the parallelogram formed by the source vectors on 2 sides. 3 : cross product of three 4-D vector source fields.
sourceField1 | The size of the source_fields array, one less than the dimension i.e. number of components of each source_field and the result. Only 1, 2 and 3 fields i.e. 2-D, 3-D and 4-D are supported. |
sourceField2 | Array of fields with number of components equal to the dimension i.e. one more than the number_of_source_fields. |
|
inline |
Creates a field returning the curl of vector_field at location given by coordinate_field. All fields including return field have 3 components.
vectorField | Vector field from which curl is evaluated. Must have rectangular cartesian coordinate system. |
coordinateField | Field supplying location. |
|
inline |
Creates a field returning the derivative of the field with respect to element xi_index as its primary value. Returned field has same number of components as source field.
sourceField | Source field to get derivative number. |
xi_index | Element coordinate system index for derivative, from 1 to element dimension. |
|
inline |
Creates a field returning the scalar real determinant of a square matrix source field. Only supports up to 3x3 matrix.
sourceField | Field supplying square matrix up to 3x3. May only have 1, 4 or 9 components. |
|
inline |
Creates a scalar field returning the divergence of vector field within coordinate field. The number of components of <vector_field> and <coordinate_field> must be the same and less than or equal to 3.
vectorField | Vector field from which divergence is evaluated. Must have rectangular cartesian coordinate system. |
coordinateField | Field supplying location. |
|
inline |
Creates a field where the which divides the components of source_field_one by source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a scalar field whose value is the dot product of the two supplied source fields, which must have equal numbers of components.
sourceField1 | First source field. |
sourceField2 | Second source field. |
|
inline |
Creates a field returning the N eigenvalues of symmetric N*N component source field.
sourceField | N*N component square symmetric matrix field. |
|
inline |
Creates a field returning the N, N-dimensional eigenvectors computed with the source eigenvalues field. Sets the number of components equal to N*N, where N is the number of components in the <eigenvalues_field>.
eigenValuesField | Eigenvalues type field. |
|
inline |
Creates an element group field which defines a mesh group i.e. a subset of elements from a master mesh. As a field it evaluates to 1 for elements in the mesh group and 0 elsewhere, i.e. it is the predicate for the sub-domain, and this Boolean value can be combined in logical operations with other fields.
mesh | Handle to a finite element mesh the element group is to be compatible with. If it is not a master mesh, the master is obtained from it. Mesh must be from the same region as field_module. |
|
inline |
Creates a field returning a value of a source field at an embedded location. The new field has the same value type as the source field.
sourceField | Field to evaluate at the embedded location. Currently restricted to having numerical values. |
embeddedLocationField | Field returning an embedded location, i.e. find_mesh_location or stored mesh location fields. |
|
inline |
Creates a field whose component values are 1 if that component of source_field_one EQUALS that component of source_field_two, 0 otherwise. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
Creates a field where the field components are the natural exponent of each component in the source field.
sourceField | The input field |
|
inline |
Creates a "fibre axes" field type which returns a 9-component (3 x 3 vector) field representing an orthonormal coordinate system which is rotated by 3 Euler angles supplied by a fibre field. Three resulting 3 axes are: fibre = fibre direction sheet = fibre normal in the plane of the sheet normal = normal to the fibre sheet Both the fibre and coordinate fields must have no more than 3 components. The fibre field is expected to have a FIBRE coordinate_system, although this is not enforced. Note that this initial orientation of the coordinate system (i.e. for all Euler angles zero) is right handed coordinate system: fibre axis = aligned with d(coordinates)/dxi1 sheet axis = in plane of fibre axis and d(coordinates)/dxi2 but corrected to be closest vector to d(coordinates)/dxi2 which is normal to fibre axes. normal axis = cross product fibre (x) sheet
fibreField | The (numerical) fibre field with at most 3 components |
coordinateField | The (numerical) coordinate system with at most 3 components |
|
inline |
Creates a field returning the location in a mesh at which the calculated source_field value equals the mesh_field value. Type-specific functions allow the search to find the nearest value and set a conditional field.
sourceField | Source field whose value is to be searched for. Must have the same number of numerical components as the mesh_field, and at least as many as mesh dimension. |
meshField | Field defined over the mesh which is to be matched with source_field. Must have the same number of numerical components as the source_field, and at least as many as mesh dimension. |
mesh | The mesh to find locations in. |
|
inline |
Creates a real-valued finite_element field which can be interpolated over a finite element mesh with parameters indexed by nodes.
numberOfComponents | The number of components for the new field. |
|
inline |
Creates a field returning the curl of vector_field at location given by coordinate_field. All fields including return field have 3 components. Converts a field returning the gradient of a source field with respect to a given coordinate field. Calculation will only succeed in any element with xi-dimension equal to the number of components in the <coordinate_field>. Sets the number of components in return field to the product of the number of components in the <source_field> and <coordinate_field>. Note the <source_field> does not have to be a scalar. If it has more than 1 component, all the derivatives of its first component w.r.t. the components of <coordinate_field> will be returned first, followed by those of the second component, etc. Hence, this function can return the standard gradient of a scalar source_field, and the deformation gradient if a deformed coordinate field is passed as the source_field.
|
inline |
Creates a field whose component values are 1 if that component of source_field_one is greater than the component value in source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a group field which can contain an arbitrary set of subregions or region subobjects, and works as a boolean-valued field returning 1 on domains in the group, 0 otherwise.
|
inline |
Creates a field with the single source field. This field is useful as a placeholder candidate for replacement with more complicated operations later on. Internally this a composite field.
sourceField | The field the values are copied from. |
|
inline |
Creates a conditional field with the same number of components as each of the source_fields. For each component, if the value of source_field_one is TRUE (non-zero) then the result will be the value of source_field_two, otherwise the component result will be taken from source_field_three.
sourceField1 | Conditional field. |
sourceField2 | TRUE = non-zero conditional component results. |
sourceField3 | FALSE = zero conditional component results. |
|
inline |
Creates a new image field. The new field has no image data; this must be set by calling image field specific methods, e.g. read(). The new field is given a default domain field which one can get (or set) with image field functions. To evaluate the image field you will need to set values of the domain field to texture coordinate locations.
|
inline |
Creates a field performing ITK binary dilate image filter on scalar source field image. Sets number of components to same number as <source_field>. The <radius> and <dilate_value> specify the radius of pixels to use for dilation and what pixel value to use for dilation
|
inline |
Creates a field performing ITK binary erode image filter on scalar source field image. Sets number of components to same number as <source_field>. The <radius> and <erode_value> specify the radius of pixels to use for dilation and what pixel value to use for dilation
|
inline |
Creates a field which applies an ITK binary threshold image filter on source. The newly created field consists of binary values (either 0 or 1) which are determined by applying the threshold range to the source field. Input values with an intensity range between lower_threshold and the upper_threshold are set to 1, the rest are set to 0.
sourceField | The field to be filtered |
|
inline |
Creates a field returning result of ITK canny edge detection filter on the source field image. Sets number of components to same number as source field.
|
inline |
Creates a field performing ITK connected threshold image filter on scalar source field image. Sets number of components to same number as source field.
|
inline |
Creates a field performing ITK curvature anisotropic diffusion image filter on scalar source field image. Sets number of components to same number as <source_field>.
sourceField | The field to be filtered |
timeStep | The time step |
conductance | The conductance |
numIterations | The number of iterations to be performed |
|
inline |
Creates a field applying the ITK discrete gaussian image filter to the source field. This means that each pixel value in the new field is based on a weighted average of the pixel and the surrounding pixel values from the source field. Pixels further away are given a lower weighting. Increasing the variance increases the width of the gaussian distribution used and hence the number of pixels used to calculate the weighted average. This smooths the image more. A limit is set on the max_kernel_width used to approximate the guassian to ensure the calculation completes.
sourceField | The field to be filtered |
|
inline |
Creates a field performing ITK gradient magnitude recursive gaussian image filter on scalar source field image. Sets number of components to same number as <source_field>.
|
inline |
Creates a field performing ITK histogram image filter on source field image. If neither histogramMinimum or histogramMaximum are specified then the minimums and maximums are calculated based on the minimum and maximum values in the input image.
sourceField | The field to generate the histogram for. |
|
inline |
Creates a field performing ITK mean image filter on source_field image. The <radius_sizes> is a vector of integers of dimension specified by the <source_field> dimension. Sets number of components to same number as <source_field>.
|
inline |
Creates a field performing ITK rescale intensity image filter on scalar source field image. Sets number of components to same number as source field.
|
inline |
Creates a field performing ITK sigmoid image filter on scalar source field image. Sets number of components to same number as <source_field>.
|
inline |
Creates a field applying the ITK threshold image filter to the source field. The newly created field replaces certain values with a specified outside value, based on which threshold mode and the threshold values.
sourceField | The field to be filtered |
|
inline |
Creates a new image field whose image data is sampled from the source field. The source field is typically an image or image-processing field, and its dimension, native resolution and domain field are used as defaults for the new field, or may be changed via image field functions. Texture format will depend on the number of components of the source field: 1 component field creates a LUMINANCE image 2 component field creates a LUMINANCE_ALPHA image 3 component field creates an RGB image 4 component field creates an RGBA image
sourceField | Source field providing image pixel values. Must be image-based with up to 4 components. |
|
inline |
Create a field iterator object for iterating through the fields in the field module, in alphabetical order of name. The iterator initially points at the position before the first field, so the first call to the field iterator next() method returns the first field and advances the iterator. Iterator becomes invalid if fields are added, removed or renamed while in use.
iterated over.
|
inline |
Creates a field whose component values are 1 if that component of source_field_one is less than the component value in source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
Creates a field where the field components are the natural logarithm of each component in the source field.
sourceField | The input field |
|
inline |
Creates a scalar field returning the magnitude of the vector source field.
sourceField | Source field to normalise. |
|
inline |
Creates a field returning the inverse of N*N symmetric matrix valued source field.
sourceField | N*N component square symmetric matrix field. |
|
inline |
Creates a field returning the values resulting from matrix multiplication <source_field1> x <source_field2>, with <number_of_rows> rows in both <source_field1> and the result. From the <number_of_rows> the columns in <source_field1>, rows in <source_field2> and then columns in <source_field2> are implied and checked.
numberOfRows | Number of rows N in source_field1 and result. |
sourceField1 | N rows * M columns component matrix field 1. |
sourceField2 | M rows * P columns component matrix field 2. |
|
inline |
Create a notifier for getting callbacks for changes to the fields and related objects in the field module.
|
inline |
Creates a field where the which multiplies the components of source_field_one and source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a node group field which defines a nodeset group i.e. a subset of nodes from a master nodeset. As a field it evaluates to 1 for nodes in the nodeset group and 0 elsewhere, i.e. it is the predicate for the sub- domain, and this Boolean value can be combined in logical operations with other fields.
nodeset | Handle to a nodeset the node group is to be compatible with. If it is not a master nodeset, the master is obtained from it. Nodeset must be from the same region as field_module. |
|
inline |
Creates a field which computes the maximum of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field.
sourceField | Field to obtain maximum values for. |
nodeset | The set of nodes to obtain maximum over. |
|
inline |
Creates a field which computes the mean of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field.
sourceField | Field to obtain mean component values for. |
nodeset | The set of nodes to obtain mean over. |
|
inline |
Creates a field which computes the mean of the squares of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field. This field type supports least-squares optimisation by giving individual terms being squared and summed, each divided by the square root of the number of terms.
sourceField | Field to obtain mean squared component values for. |
nodeset | The set of nodes to obtain mean over. |
|
inline |
Creates a field which computes the minimum of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field.
sourceField | Field to obtain minimum values for. |
nodeset | The set of nodes to obtain minimum over. |
|
inline |
Creates a field which computes the sum of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field.
sourceField | Field to sum. |
nodeset | The set of nodes to sum field over. |
|
inline |
Creates a field which computes the sum of the squares of each source field component over all nodes in the nodeset for which it is defined. Returned field has same number of components as the source field. This field type supports least-squares optimisation by giving individual terms being squared and summed.
sourceField | Field to sum squared component values of. |
nodeset | The set of nodes to sum field over. |
|
inline |
Creates a field which represents and returns node values/derivatives.
sourceField | The field for which the nodal values are stored, this must be a finite element field. |
nodeValueLabel | The label of the node value/derivative to return. |
versionNumber | The version number of the value or derivative to return, starting from 1. |
|
inline |
Creates a field returning the values of source vector field normalised to unit length.
sourceField | Source field to normalise. |
Creates a field whose component values are 1 if that component of the source_field is zero, 0 otherwise; effectively a component-wise logical not operator. Returned field has same number of components as source field.
sourceField | The source field. |
|
inline |
Creates a field whose component values are 1 if that component of source_field_one OR source_field_two is non-zero, 0 otherwise. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a field where the which calculates the components of source_field_one raised to the power of the components in source_field_two. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a projection field returning the result of a matrix multiplication with perspective division on the source field vector. The source_field vector is expanded to a homogeneous coordinate by appending a component of value 1, which is multiplied by the projection_matrix_field, and the extra calculated value resulting from the unit component is used to divide through each of the other components to give a perspective projection in the resulting field. The projection_matrix_field must have have a multiple of (source_field->number_of_components + 1) components forming a matrix with that many columns and the resulting (number_of_components + 1) rows. The first values in the projection_matrix are across the first row, followed by the next row and so on. Hence a 4x4 matrix transforms a 3-component vector to a 3-component vector: [x'] = [m1 m2 m3 m4 ][x] [y'] = [m5 m6 m7 m8 ][y] [z'] = [m9 m10 m11 m12][z] [h'] = [m13 m14 m15 m16][1] The resulting field returns 3 components [x'/h', y'/h', z'/h']
sourceField | Source vector field to project. |
projectionMatrixField | Field supplying projection matrix. |
|
inline |
Creates a field whose values are the 4x4 transformation matrix mapping coordinates between two scene coordinate systems for a scene viewer. The matrix maps homogeneous coordinates (x,y,z,1) to (x',y',z',h') suitable for passing to a projection field. The values are continuously updated with changes to the scene viewer and become invalid if the scene viewer is destroyed. Note CMZN_SCENECOORDINATESYSTEM_LOCAL gives the local coordinate system of the scene for the owning region of field, which is transformed from world coordinates by the cumulative transformation matrices of all scenes down from the root region of the scene viewer's scene.
sceneviewer | Handle to sceneviewer object. |
fromCoordinateSystem | The input coordinate system for the transformation. |
toCoordinateSystem | The output coordinate system for the transformation. |
Creates a field where the components are the sine value (using radians) of the components of the source_field.
sourceField | Input field |
Creates a field where the field components are the square root of each component in the source field.
sourceField | The input field |
|
inline |
Creates a field which stores and returns mesh location values at nodes.
mesh | The mesh for which locations are stored. |
|
inline |
Creates a field which stores and returns string values at nodes.
|
inline |
Creates a string constant field with the supplied string value in <string_constant>.
stringConstant | The constant char string. |
|
inline |
Creates a field which gives the result of subtracting source_field_two from source_field_one. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Creates a field which has one component equal to the sum of all components of the source field. Also called the L1, taxicab or manhattan norm. For weighted sum of components use a dot_product with a constant weights field.
sourceField | The field whose components are to be summed. |
Creates a field where the components are the trigonometric tangent value (using radians) of the components of the source_field.
sourceField | Input field (components in radians) |
|
inline |
Creates a field whose value equals the source_field evaluated at the time given by time_field, overriding any time prescribed for field evaluation.
|
inline |
Creates a field which returns the current time from the supplied time keeper.
timeKeeper | cmzn_timekeeper object. |
|
inline |
Creates a field returning the transpose of N*M matrix source_field. The source_number_of_rows is specified; source_number_of_columns is computed as source_field->number_of_components / <source_number_of_rows>; this division must have no remainder.
sourceNumberOfRows | Number of rows N in source_field. |
sourceField | N rows * M columns component matrix field. |
|
inline |
Creates a field which performs a coordinate transformation of vectors from their original coordinate system and coordinate positions, to the coordinate system of this field. Sets the number of components in returned field to 3 times the number of vectors expected from the source vector_field.
vectorField | Vector field to be transformed. Can be a single vector (1,2 or 3 components), two vectors (4 or 6 components) or three vectors (9 components). |
coordinateField | Field giving location where vector value is from. |
|
inline |
Creates a field whose component values are 1 if that component of source_field_one OR source_field_two is non-zero (but not both), 0 otherwise. Automatic scalar broadcast will apply, see field.h.
sourceField1 | First input field |
sourceField2 | Second input field |
|
inline |
Create an optimisation object for optimising values and parameters of fields from a field module.
|
inline |
Defines, for all elements of all meshes in field module, face elements of dimension one lower in the associated face mesh, and all their faces recursively down to 1 dimensional lines.
faces for.
|
inline |
Decrement cache level or end caching of changes for this field module. Call matching fieldmodule begin change method before making multiple changes and call this afterwards. When change level is restored to zero, cached change messages are sent out to clients.
|
inline |
Returns the field of the specified name from the field module.
fieldName | The name of the field to find. |
|
inline |
Get a handle to the default mesh of a given dimension. Cmgui is currently limited to 1 mesh of each dimension from 1 to 3. These meshes have default names of "mesh_Nd", where "N" is the dimension.
dimension | The dimension of the mesh from 1 to 3. |
|
inline |
Get a handle to a finite element mesh from its name. A mesh is the container of elements of a fixed dimension. Valid names may be any element_group field, or any of the following special names: "mesh3d" = 3-D elements. "mesh2d" = 2-D elements including faces of 3-D elements. "mesh1d" = 1-D elements including faces (lines) of 2-D elements. Note that the default names for element group fields created from a group is GROUP_NAME.MESH_NAME, with mesh names as above.
meshName | The name of the finite element mesh. |
|
inline |
Get a handle to a nodeset from its name in the field module. A nodeset is the container of nodes - i.e. cmzn_node objects. Valid names may be any node_group field, or the following special names: "nodes" = the primary set of nodes for a region, able to be indexed by cmzn_elements for storing or mapping to finite element field parameters. "datapoints" = an additional set of nodes generally used to represent data points, not for finite element field parameters. Note that the default names for node group fields created from a group is GROUP_NAME.NODESET_NAME, with nodeset names as above.
nodeset_name | The name of the nodeset. |
|
inline |
Return the C handle of the Fieldmodule object.
|
inline |
Finds or creates a time sequence in the field module which matches the sequence of times provided.
timesInCount | The size of the times array. |
timesIn | Array of times. Note later times must not be less than earlier times. |
|
inline |
Gets the region this field module can create fields for.
|
inline |
Check if this is a valid Fieldmodule object.