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
263 lines
9.1 KiB
C
3 weeks ago
|
/*=========================================================================
|
||
|
|
||
|
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
|