int cvxDataClear
(
int idData,    /* I: id of data container */
int idField    /* I: id of data field */
)
/*
DESCRIPTION:
Deletes data associated with the specified field (idField) of the 
specified data container (idData).  

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataDel
(
int idData,       /* I: id of data container */
int idField         /* I: id of data field */
)
/*
DESCRIPTION:
Delete the data associated with the specified field of the 
specified data container.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataFree
(
int idData     /* I: id of data container */
)
/*
DESCRIPTION:
Deletes a data container created by cvxCmdDataInit(),
freeing the memory associated with it.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGet
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
svxData *Data       /* O: first data item associated with "idField" */
)
/*
DESCRIPTION:
Gets the first item of data associated with the specified field of
the specified data container.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetEnt
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *idEntity,      /* O: id of entity associated with field (0 if undefined) */
int *idParent       /* O: id of entity parent (0 if undefined; NULL to ignore) */
)
/*
DESCRIPTION:
Gets the entity id associated with the specified field of the 
specified data container. Input NULL for "idParent" if you are
not interested in getting parent information.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetEnts
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *Count,         /* O: data item count */
int **idEnts      /* O: list of entity id's associated with field */
)
/*
DESCRIPTION:
Gets the list of entity id's associated with the specified field of
the specified data container.  The list referenced by "**idEnts" is 
allocated by this function and must be deallocated by the calling
procedure.  A NULL pointer is output if no data is found.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetList
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *Count,         /* O: data item count */
svxData **Data    /* O: list of data items associated with "idField" */
)
/*
DESCRIPTION:
Gets the list of data items associated with the specified field of
the specified data container.  The list referenced by "**Data" is 
allocated by this function and must be deallocated by the calling
procedure.  A NULL pointer is output if no data is found.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetNum
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
double *Number      /* O: double precision number associated with "idField" */
)
/*
DESCRIPTION:
Gets the double precision number associated with the specified field of
the specified data container.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetOpt
(
int idData,       /* I: id of data container */
int idField       /* I: id of data field */
)
/*
DESCRIPTION:
Returns the integer option number associated with the specified field.
*/
________________________________________________________________________________

int cvxDataGetPath
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *FirstEnt,    /* I: 1 for first entity; 0-subsequent entities */
svxEntPath *Ent     /* O: entity pick path */
)
/*
DESCRIPTION:
Get the entity pick-path associated with "idField" of "idData".

This function does not activate the pick-path.

If "*FirstEnt=1", the first pick is retrieved, "*FirstEnt" is set to
zero and static variables inside this function are set up to enable
retrieval of the next pick when this function is called again with
"*FirstEnt=0".  If a pick is successfully retrieved, this function
returns 0.  If no pick was retrieved, it returns -1.  If there was
a fatal error, it returns 1.

If "FirstEnt=NULL", the first entity is retrieved without setting
things up to get a "next" entity.

This function should not be called recursively, but no checking is
done to insure it.

Returns 0 if there is no error and an entity was retrieved successfully.
Returns -1 if there is no error, but no entity was retrieved.
Returns 1 if there is an error.
*/
________________________________________________________________________________

int cvxDataGetPnt
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
svxPoint *Pnt      /* O: point associated with field */
)
/*
DESCRIPTION:
Gets the point coordinates associated with the specified field 
of the specified data container. 

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetPnts
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *Count,         /* O: data item count */
svxPoint **Pnts   /* O: list of points associated with field */
)
/*
DESCRIPTION:
Gets the list of point coordinates associated with the specified 
field of the specified data container.  The list referenced by 
"**Pnts" is allocated by this function and must be deallocated 
by the calling procedure.  A NULL pointer is output if no data 
is found.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetPromote
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int *Promote      /* O: 1 to promote entity to parent, else 0 */
)
/*
DESCRIPTION:
Outputs "Promote=1", if the pick associated with the point-on-entity
stored in the specified input field should be promoted to pick the 
parent of the entity instead of the entity itself.  If not, "Promote=0"
is output.

A common case is the promotion of a curve pick to its parent sketch
or curve list.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataGetText
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int NumBytes,       /* I: number of bytes of memory referenced by "Text" */
char *Text        /* O: null-terminated ascii string */
)
/*
DESCRIPTION:
Gets the null-terminated ascii text string associated with the 
specified field of the specified data container.  

If necessary, the string copied to the memory referenced by 
"Text" is truncated based on the value of "NumBytes".

The calling procedure is responsible for allocating and 
deallocating the memory referenced by "Text".  

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataInit
(
vxName Template,   /* I: command template name */
int *idData         /* O: id of data container */
)
/*
DESCRIPTION:
Creates and initializes a data container for the specified command.
The calling procedure is responsible for deleting the container and
its contents using cvxDataFree().

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataSet
(
int idData,      /* I: id of data container */
int idField,   /* I: id of data field */
svxData *Data    /* I: data item */
)
/*
DESCRIPTION:
Assigns the specified item of data to the specified field of the
specified data container.  If "idField" is defined as a list in
the command template used to initialize "idData", the new item 
of data is appended to items already associated with the field.
If the field is not defined as a list, any existing item is 
replaced.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataSetPath
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
svxEntPath *Ent     /* I: entity pick path */
)
/*
DESCRIPTION:
Append the specified entity to the specified field of the specified
data container. 

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataSetPntOnFace
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int idComp,         /* I: id of component in active part (0 to ignore) */
int idFace         /* I: id of face in active part */
)
/*
DESCRIPTION:
Logs a "point on face" pick to the specified field of the specified
data container.  Uses a point on the specified face at the midpoint 
of the face's bounding box in UV parameter space.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

int cvxDataSetPromote
(
int idData,       /* I: id of data container */
int idField,      /* I: id of data field */
int Promote         /* I: 1 to promote entity pick to parent, else 0 */
)
/*
DESCRIPTION:
If "Promote" is input as a non-zero value, the point-on-entity pick 
stored in the specified input field is flagged to tell VX to
promote the pick to the parent of the entity instead of the entity
itself.  If "Promote" is input as zero, the point-on-entity pick
is flagged to tell VX not to promote the pick to its parent.

A common case is the promotion of a curve pick to its parent sketch
or curve list.

Returns 1 if function fails; 0 if it succeeds.
*/
________________________________________________________________________________

void cvxDataZero
(
svxData *Data   /* I: pointer to data structure */
)
/*
DESCRIPTION:
Set all bytes of the input "Data" structure to zero.
*/
________________________________________________________________________________