The following routines enable the specification of 2D regions as a group of nodes or faces, or a 3D region as a group of elements. In the case of nodes and faces, only those that define faces of valid imported elements will be imported; others are ignored by CFX.
int cfxImportBegReg (regname, regtype) char *regname; int regtype;
Initialize for the specification of a region. If a region is
currently being defined, cfxImportEndReg
will
be called.
The name of the region is given by regname
. If the region name is NULL
, the name Unnamed Region 2D
or Unnamed Region 3D
, with a sequential integer appended, will be used. If a region named regname
has already been defined, then additional objects
will be added to the previous region.
The type of region is given by regtype, which should be one
of cfxImpREG_NODES
, cfxImpREG_FACES
or cfxImpREG_ELEMS
depending on whether
the region is to be defined by nodes, faces or elements, respectively.
It is not currently possible to mix types in a region; doing so will
cause the import API to terminate with an error message.
Returns the number of objects (node, faces or elements) currently in the region.
int cfxImportAddReg (numobjs, objlist) int numobjs, *objlist;
Add IDs of objects being defined to the current region.
A region must be currently defined or reactivated by cfxImportBegReg
or an error will occur, and the API will
terminate.
The number of objects to add is given by numobjs
and the IDs of the objects are supplied in objlist
.
The objects are interpreted as node IDs, face IDs, or element
IDs, depending on the type of the region indicated when cfxImportBegReg
was called.
On calling cfxImportDone
, any node IDs
, face IDs or element IDs specified in the object list must have been
defined by the appropriate routine or they will be removed from the
region.
Returns the total number of objects in the current region after the object IDs have been added.
int cfxImportEndReg ()
End the specification of the current region.
Returns the number of objects (nodes, faces or elements) in the region.
int cfxImportRegion (regname, regtype, numobjs, objlist) char *regname; int regtype, numobjs, *objlist;
Import a region named regname
of type regtype
. The number of objects to add to the region is
given by numobjs
, and the list of object IDs
by objlist
. This routine combines calls to cfxImportBegReg
, cfxImportAddReg
and cfxImportEndReg
.
Returns the total number of objects in the region on termination of the routine.
char ** cfxImportRegionList ()
Return a NULL terminated list of currently defined region names.
The memory for the array and each character string in the array
returned is allocated using malloc
by the routine,
consequently each array member and the array itself should be destroyed
when no longer required by calling free
.
int * cfxImportGetRegion (regname) char *regname;
Returns a list of objects in the region named regname
, or NULL
if the region does not exist. The
first entry in the returned list is the region type and the second
entry is the number of object IDs.
The memory for the array is allocated using malloc
by the routine, consequently the array itself should be destroyed
when no longer required by calling free
.