You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

263 lines
9.1 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkXMLWriterC.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef vtkXMLWriterC_h
#define vtkXMLWriterC_h
#include "vtkIOXMLModule.h" // For export macro
#include "vtkType.h" /* For scalar and vtkDataObject type enumerations. */
#ifdef __cplusplus
extern "C"
{
#endif /*cplusplus*/
/**
* vtkXMLWriterC is an opaque structure holding the state of an
* individual writer object. It can be used to write VTK XML files.
*/
typedef struct vtkXMLWriterC_s vtkXMLWriterC;
/**
* Create a new instance of vtkXMLWriterC. Returns the object or nullptr
* on failure.
*/
VTKIOXML_EXPORT
vtkXMLWriterC* vtkXMLWriterC_New(void);
/**
* Delete the writer object.
*
* This should not be called between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_Delete(vtkXMLWriterC* self);
/**
* Set the VTK data object type that will be written. This
* initializes an empty data object of the given type.
*
* This must be set before setting geometry or data information can
* can be set only once per writer object.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetDataObjectType(vtkXMLWriterC* self, int objType);
/**
* Set the VTK writer data mode to either:
* - Ascii
* - Binary
* - Appended (default)
*
* This may be used only after SetDataObjectType has been called.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetDataModeType(vtkXMLWriterC* self, int datamodetype);
/**
* Set the extent of a structured data set.
*
* This may be used only after SetDataObjectType has been called with
* a structured data object type.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetExtent(vtkXMLWriterC* self, int extent[6]);
/**
* Set the points of a point data set. For structured data, the
* number of points must match number of points indicated by the
* extent.
*
* Use dataType to specify the scalar type used in the given array.
* The data array must have numPoints*3 entries specifying 3-D points.
*
* This may not be used for data objects with implicit points. It may
* not be called before SetDataObjectType or between Start and Stop
* calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetPoints(vtkXMLWriterC* self, int dataType, void* data, vtkIdType numPoints);
/**
* Set the origin of an image data set.
*
* This may only be used for image data. It may not be called before
* SetDataObjectType or between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetOrigin(vtkXMLWriterC* self, double origin[3]);
/**
* Set the spacing of an image data set.
*
* This may only be used for image data. It may not be called before
* SetDataObjectType or between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetSpacing(vtkXMLWriterC* self, double spacing[3]);
/**
* Set the coordinates along one axis of a rectilinear grid data set.
*
* Specify axis 0 for X, 1 for Y, and 2 for Z. Use dataType to
* specify the scalar type used in the given data array. Use
* numCoordinates to specify the number of such values in the array.
* The number of values must match that specified by the extent for
* the given axis.
*
* This may only be used for rectilinear grids. It may not be called
* before SetDataObjectType or between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetCoordinates(
vtkXMLWriterC* self, int axis, int dataType, void* data, vtkIdType numCoordinates);
/**
* Set a cell array on the data object to be written. All cells must
* have the same type.
*
* For unstructured grid data objects, the cellType can be any type.
* For polygonal data objects, the cellType must be VTK_VERTEX,
* VTK_POLY_VERTEX, VTK_LINE, VTK_POLY_LINE, VTK_TRIANGLE,
* VTK_TRIANGLE_STRIP, or cyclically connected simple cell type such
* as VTK_POLYGON.
*
* The cells array must have cellsSize entries. Each cell uses N+1
* entries where N is the number of points in the cell. The layout of
* the array for each cell is "[N,id1,id2,...,idN]". The total number
* of cells must be ncells.
*
* This may only be used for unstructured grid and polygonal data
* types. It may not be called before SetDataObjectType or between
* Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetCellsWithType(
vtkXMLWriterC* self, int cellType, vtkIdType ncells, vtkIdType* cells, vtkIdType cellsSize);
/**
* Set a cell array on the data object to be written. Each cell can
* have its own type.
*
* The cellTypes array specifies the type of each cell, and has ncells
* entries. The cells array must have cellsSize entries. Each cell
* uses N+1 entries where N is the number of points in the cell. The
* layout of the array for each cell is "[N,id1,id2,...,idN]". The
* total number of cells must be ncells.
*
* This may only be used for unstructured grid data objects. It may
* not be called before SetDataObjectType or between Start and Stop
* calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetCellsWithTypes(
vtkXMLWriterC* self, int* cellTypes, vtkIdType ncells, vtkIdType* cells, vtkIdType cellsSize);
/**
* Set a point or cell data array by name.
*
* The name of the array is required and should describe the purpose
* of the data. Use dataType to specify the scalar type used in the
* given data array. Use numTuples to specify the number of tuples
* and numComponents to specify the number of scalar components in
* each tuple.
*
* The data array must have exactly numTuples*numComponents entries.
* For SetPointData, numTuples must be equal to the number of points
* indicated by SetExtent and/or SetPoints. For SetCellData,
* numTuples must be equal to the total number of cells set by
* SetCells.
*
* The role can be one of "SCALARS", "VECTORS", "NORMALS", "TENSORS",
* or "TCOORDS" and specifies that the array should be designated as
* the active array for the named role. Other values for role are
* ignored.
*
* This may be used for all data types. It may not be called before
* SetDataObjectType but may be called between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetPointData(vtkXMLWriterC* self, const char* name, int dataType, void* data,
vtkIdType numTuples, int numComponents, const char* role);
VTKIOXML_EXPORT
void vtkXMLWriterC_SetCellData(vtkXMLWriterC* self, const char* name, int dataType, void* data,
vtkIdType numTuples, int numComponents, const char* role);
/**
* Set the name of the file into which the data are to be written.
*
* This may be used for all data types. It may not be called before
* SetDataObjectType or between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetFileName(vtkXMLWriterC* self, const char* fileName);
/**
* Write the data to a file immediately. This is not used when
* writing time-series data. Returns 1 for success and 0 for failure.
*
* This may only be called after SetFileName and SetDataObjectType.
*/
VTKIOXML_EXPORT
int vtkXMLWriterC_Write(vtkXMLWriterC* self);
/**
* Set the number of time steps that will be written between upcoming
* Start and Stop calls. This is used when writing time-series data.
*
* This may be used for all data types. It may not be called before
* SetDataObjectType or between Start and Stop calls.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_SetNumberOfTimeSteps(vtkXMLWriterC* self, int numTimeSteps);
/**
* Start writing a time-series to the output file.
*
* This may only be called after SetFileName, SetDataObjectType, and
* SetNumberOfTimeSteps. It may not be called a second time until
* after an intervening call to Stop.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_Start(vtkXMLWriterC* self);
/**
* Write one time step of a time-series to the output file. The
* current data set by SetPointData and SetCellData will be written.
*
* Use timeValue to specify the time associated with the time step
* being written.
*
* This may only be called after Start has been called. It should be
* called NumberOfTimeSteps times before calling Stop.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_WriteNextTimeStep(vtkXMLWriterC* self, double timeValue);
/**
* Stop writing a time-series to the output file.
*
* This may only be called after Start and NumberOfTimeSteps calls to
* WriteNextTimeStep.
*/
VTKIOXML_EXPORT
void vtkXMLWriterC_Stop(vtkXMLWriterC* self);
#ifdef __cplusplus
} /* extern "C" */
#endif /*cplusplus*/
#endif
// VTK-HeaderTest-Exclude: vtkXMLWriterC.h