00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if defined(__cplusplus)
00025 # error "This should be included only by a .c file."
00026 #endif
00027
00028
00029 #include "vtkXMLWriterC.h"
00030
00031 #include <stdio.h>
00032 #include <stdlib.h>
00033 #include <string.h>
00034
00035
00036
00037 #define VTK_XMLWRITERF_MAX 256
00038 static vtkXMLWriterC* vtkXMLWriterF_Table[VTK_XMLWRITERF_MAX+1];
00039
00040
00041
00042
00043
00044
00045
00046 #if !defined(VTK_FORTRAN_NAME)
00047 # define VTK_FORTRAN_NAME(name, NAME) name##__
00048 #endif
00049 #if !defined(VTK_FORTRAN_ARG_STRING_POINTER)
00050 # define VTK_FORTRAN_ARG_STRING_POINTER(name) const char* name##_ptr_arg
00051 #endif
00052 #if !defined(VTK_FORTRAN_ARG_STRING_LENGTH)
00053 # define VTK_FORTRAN_ARG_STRING_LENGTH(name) , const long int name##_len_arg
00054 #endif
00055 #if !defined(VTK_FORTRAN_REF_STRING_POINTER)
00056 # define VTK_FORTRAN_REF_STRING_POINTER(name) name##_ptr_arg
00057 #endif
00058 #if !defined(VTK_FORTRAN_REF_STRING_LENGTH)
00059 # define VTK_FORTRAN_REF_STRING_LENGTH(name) ((int)name##_len_arg)
00060 #endif
00061
00062
00063
00064 void VTK_FORTRAN_NAME(vtkxmlwriterf_new, VTKXMLWRITERF_NEW)(
00065 int* self
00066 )
00067 {
00068 int i;
00069
00070
00071 *self = 0;
00072
00073
00074 for(i=1;i <= VTK_XMLWRITERF_MAX; ++i)
00075 {
00076 if(!vtkXMLWriterF_Table[i])
00077 {
00078 vtkXMLWriterF_Table[i] = vtkXMLWriterC_New();
00079 if(vtkXMLWriterF_Table[i])
00080 {
00081 *self = i;
00082 }
00083 return;
00084 }
00085 }
00086 }
00087
00088
00089
00090 void VTK_FORTRAN_NAME(vtkxmlwriterf_delete, VTKXMLWRITERF_DELETE)(
00091 int* self
00092 )
00093 {
00094
00095 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00096 {
00097
00098 vtkXMLWriterC_Delete(vtkXMLWriterF_Table[*self]);
00099
00100
00101 vtkXMLWriterF_Table[*self] = 0;
00102 }
00103 else
00104 {
00105 fprintf(stderr,
00106 "vtkXMLWriterF_Delete called with invalid id %d.\n",
00107 *self);
00108 }
00109
00110
00111 *self = 0;
00112 }
00113
00114
00115
00116 void VTK_FORTRAN_NAME(vtkxmlwriterf_setdataobjecttype, VTKXMLWRITERF_SETDATAOBJECTTYPE)(
00117 const int* self, const int* objType
00118 )
00119 {
00120 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00121 {
00122 vtkXMLWriterC_SetDataObjectType(vtkXMLWriterF_Table[*self], *objType);
00123 }
00124 else
00125 {
00126 fprintf(stderr,
00127 "vtkXMLWriterF_SetDataObjectType called with invalid id %d.\n",
00128 *self);
00129 }
00130 }
00131
00132
00133
00134 void VTK_FORTRAN_NAME(vtkxmlwriterf_setextent, VTKXMLWRITERF_SETEXTENT)(
00135 const int* self, int extent[6]
00136 )
00137 {
00138 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00139 {
00140 vtkXMLWriterC_SetExtent(vtkXMLWriterF_Table[*self], extent);
00141 }
00142 else
00143 {
00144 fprintf(stderr,
00145 "vtkXMLWriterF_SetExtent called with invalid id %d.\n",
00146 *self);
00147 }
00148 }
00149
00150
00151
00152 void VTK_FORTRAN_NAME(vtkxmlwriterf_setpoints, VTKXMLWRITERF_SETPOINTS)(
00153 const int* self, const int* dataType,
00154 void* data, const vtkIdType* numPoints
00155 )
00156 {
00157 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00158 {
00159 vtkXMLWriterC_SetPoints(vtkXMLWriterF_Table[*self], *dataType,
00160 data, *numPoints);
00161 }
00162 else
00163 {
00164 fprintf(stderr,
00165 "vtkXMLWriterF_SetPoints called with invalid id %d.\n",
00166 *self);
00167 }
00168 }
00169
00170
00171
00172 void VTK_FORTRAN_NAME(vtkxmlwriterf_setorigin, VTKXMLWRITERF_SETORIGIN)(
00173 const int* self, double origin[3]
00174 )
00175 {
00176 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00177 {
00178 vtkXMLWriterC_SetOrigin(vtkXMLWriterF_Table[*self], origin);
00179 }
00180 else
00181 {
00182 fprintf(stderr,
00183 "vtkXMLWriterF_SetOrigin called with invalid id %d.\n",
00184 *self);
00185 }
00186 }
00187
00188
00189
00190 void VTK_FORTRAN_NAME(vtkxmlwriterf_setspacing, VTKXMLWRITERF_SETSPACING)(
00191 const int* self, double spacing[3]
00192 )
00193 {
00194 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00195 {
00196 vtkXMLWriterC_SetSpacing(vtkXMLWriterF_Table[*self], spacing);
00197 }
00198 else
00199 {
00200 fprintf(stderr,
00201 "vtkXMLWriterF_SetSpacing called with invalid id %d.\n",
00202 *self);
00203 }
00204 }
00205
00206
00207
00208 void VTK_FORTRAN_NAME(vtkxmlwriterf_setcoordinates, VTKXMLWRITERF_SETCOORDINATES)(
00209 const int* self, const int* axis, const int* dataType, void* data,
00210 const vtkIdType* numCoordinates
00211 )
00212 {
00213 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00214 {
00215 vtkXMLWriterC_SetCoordinates(vtkXMLWriterF_Table[*self], *axis,
00216 *dataType, data, *numCoordinates);
00217 }
00218 else
00219 {
00220 fprintf(stderr,
00221 "vtkXMLWriterF_SetCoordinates called with invalid id %d.\n",
00222 *self);
00223 }
00224 }
00225
00226
00227
00228 void VTK_FORTRAN_NAME(vtkxmlwriterf_setcellswithtype, VTKXMLWRITERF_SETCELLSWITHTYPE)(
00229 const int* self, const int* cellType, const vtkIdType* ncells,
00230 vtkIdType* cells, const vtkIdType* cellsSize
00231 )
00232 {
00233 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00234 {
00235 vtkXMLWriterC_SetCellsWithType(vtkXMLWriterF_Table[*self], *cellType,
00236 *ncells, cells, *cellsSize);
00237 }
00238 else
00239 {
00240 fprintf(stderr,
00241 "vtkXMLWriterF_SetCellsWithType called with invalid id %d.\n",
00242 *self);
00243 }
00244 }
00245
00246
00247
00248 void VTK_FORTRAN_NAME(vtkxmlwriterf_setcellswithtypes, VTKXMLWRITERF_SETCELLSWITHTYPES)(
00249 const int* self, int* cellTypes, const vtkIdType* ncells,
00250 vtkIdType* cells, const vtkIdType* cellsSize
00251 )
00252 {
00253 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00254 {
00255 vtkXMLWriterC_SetCellsWithTypes(vtkXMLWriterF_Table[*self], cellTypes,
00256 *ncells, cells, *cellsSize);
00257 }
00258 else
00259 {
00260 fprintf(stderr,
00261 "vtkXMLWriterF_SetCellsWithTypes called with invalid id %d.\n",
00262 *self);
00263 }
00264 }
00265
00266
00267
00268 void VTK_FORTRAN_NAME(vtkxmlwriterf_setpointdata, VTKXMLWRITERF_SETPOINTDATA)(
00269 const int* self, VTK_FORTRAN_ARG_STRING_POINTER(name),
00270 const int* dataType, void* data, const vtkIdType* numTuples,
00271 const int* numComponents, VTK_FORTRAN_ARG_STRING_POINTER(role)
00272 VTK_FORTRAN_ARG_STRING_LENGTH(name)
00273 VTK_FORTRAN_ARG_STRING_LENGTH(role)
00274 )
00275 {
00276 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00277 {
00278
00279 const char* name_ptr = VTK_FORTRAN_REF_STRING_POINTER(name);
00280 int name_length = VTK_FORTRAN_REF_STRING_LENGTH(name);
00281 char* name_buffer = malloc(name_length+1);
00282 const char* role_ptr = VTK_FORTRAN_REF_STRING_POINTER(role);
00283 int role_length = VTK_FORTRAN_REF_STRING_LENGTH(role);
00284 char* role_buffer = malloc(role_length+1);
00285 if(!name_buffer || !role_buffer)
00286 {
00287 fprintf(stderr,
00288 "vtkXMLWriterF_SetPointData failed to allocate name or role.\n");
00289 if(name_buffer) { free(name_buffer); }
00290 if(role_buffer) { free(role_buffer); }
00291 return;
00292 }
00293 memcpy(name_buffer, name_ptr, name_length);
00294 name_buffer[name_length] = 0;
00295 memcpy(role_buffer, role_ptr, role_length);
00296 role_buffer[role_length] = 0;
00297
00298
00299 vtkXMLWriterC_SetPointData(vtkXMLWriterF_Table[*self], name_buffer,
00300 *dataType, data, *numTuples, *numComponents,
00301 role_buffer);
00302
00303
00304 free(name_buffer);
00305 free(role_buffer);
00306 }
00307 else
00308 {
00309 fprintf(stderr,
00310 "vtkXMLWriterF_SetPointData called with invalid id %d.\n",
00311 *self);
00312 }
00313 }
00314
00315
00316
00317 void VTK_FORTRAN_NAME(vtkxmlwriterf_setcelldata, VTKXMLWRITERF_SETCELLDATA)(
00318 const int* self, VTK_FORTRAN_ARG_STRING_POINTER(name),
00319 const int* dataType, void* data, const vtkIdType* numTuples,
00320 const int* numComponents, VTK_FORTRAN_ARG_STRING_POINTER(role)
00321 VTK_FORTRAN_ARG_STRING_LENGTH(name)
00322 VTK_FORTRAN_ARG_STRING_LENGTH(role)
00323 )
00324 {
00325 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00326 {
00327
00328 const char* name_ptr = VTK_FORTRAN_REF_STRING_POINTER(name);
00329 int name_length = VTK_FORTRAN_REF_STRING_LENGTH(name);
00330 char* name_buffer = malloc(name_length+1);
00331 const char* role_ptr = VTK_FORTRAN_REF_STRING_POINTER(role);
00332 int role_length = VTK_FORTRAN_REF_STRING_LENGTH(role);
00333 char* role_buffer = malloc(role_length+1);
00334 if(!name_buffer || !role_buffer)
00335 {
00336 fprintf(stderr,
00337 "vtkXMLWriterF_SetCellData failed to allocate name or role.\n");
00338 if(name_buffer) { free(name_buffer); }
00339 if(role_buffer) { free(role_buffer); }
00340 return;
00341 }
00342 memcpy(name_buffer, name_ptr, name_length);
00343 name_buffer[name_length] = 0;
00344 memcpy(role_buffer, role_ptr, role_length);
00345 role_buffer[role_length] = 0;
00346
00347
00348 vtkXMLWriterC_SetCellData(vtkXMLWriterF_Table[*self], name_buffer,
00349 *dataType, data, *numTuples, *numComponents,
00350 role_buffer);
00351
00352
00353 free(name_buffer);
00354 free(role_buffer);
00355 }
00356 else
00357 {
00358 fprintf(stderr,
00359 "vtkXMLWriterF_SetCellData called with invalid id %d.\n",
00360 *self);
00361 }
00362 }
00363
00364
00365
00366 void VTK_FORTRAN_NAME(vtkxmlwriterf_setfilename, VTKXMLWRITERF_SETFILENAME)(
00367 const int* self, VTK_FORTRAN_ARG_STRING_POINTER(name)
00368 VTK_FORTRAN_ARG_STRING_LENGTH(name)
00369 )
00370 {
00371 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00372 {
00373
00374 const char* name_ptr = VTK_FORTRAN_REF_STRING_POINTER(name);
00375 int name_length = VTK_FORTRAN_REF_STRING_LENGTH(name);
00376 char* name_buffer = malloc(name_length+1);
00377 if(!name_buffer)
00378 {
00379 fprintf(stderr,
00380 "vtkXMLWriterF_SetFileName failed to allocate name.\n");
00381 return;
00382 }
00383 memcpy(name_buffer, name_ptr, name_length);
00384 name_buffer[name_length] = 0;
00385
00386
00387 vtkXMLWriterC_SetFileName(vtkXMLWriterF_Table[*self], name_buffer);
00388
00389
00390 free(name_buffer);
00391 }
00392 else
00393 {
00394 fprintf(stderr,
00395 "vtkXMLWriterF_SetFileName called with invalid id %d.\n",
00396 *self);
00397 }
00398 }
00399
00400
00401
00402 void VTK_FORTRAN_NAME(vtkxmlwriterf_write, VTKXMLWRITERF_WRITE)(
00403 const int* self, int* success
00404 )
00405 {
00406 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00407 {
00408 *success = vtkXMLWriterC_Write(vtkXMLWriterF_Table[*self]);
00409 }
00410 else
00411 {
00412 fprintf(stderr,
00413 "vtkXMLWriterF_Write called with invalid id %d.\n",
00414 *self);
00415 }
00416 }
00417
00418
00419
00420 void VTK_FORTRAN_NAME(vtkxmlwriterf_setnumberoftimesteps, VTKXMLWRITERF_SETNUMBEROFTIMESTEPS)(
00421 const int* self, const int* numTimeSteps
00422 )
00423 {
00424 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00425 {
00426 vtkXMLWriterC_SetNumberOfTimeSteps(vtkXMLWriterF_Table[*self],
00427 *numTimeSteps);
00428 }
00429 else
00430 {
00431 fprintf(stderr,
00432 "vtkXMLWriterF_SetNumberOfTimeSteps called with invalid id %d.\n",
00433 *self);
00434 }
00435 }
00436
00437
00438
00439 void VTK_FORTRAN_NAME(vtkxmlwriterf_start, VTKXMLWRITERF_START)(
00440 const int* self
00441 )
00442 {
00443 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00444 {
00445 vtkXMLWriterC_Start(vtkXMLWriterF_Table[*self]);
00446 }
00447 else
00448 {
00449 fprintf(stderr,
00450 "vtkXMLWriterF_Start called with invalid id %d.\n",
00451 *self);
00452 }
00453 }
00454
00455
00456
00457 void VTK_FORTRAN_NAME(vtkxmlwriterf_writenexttimestep, VTKXMLWRITERF_WRITENEXTTIMESTEP)(
00458 const int* self, const double* timeValue
00459 )
00460 {
00461 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00462 {
00463 vtkXMLWriterC_WriteNextTimeStep(vtkXMLWriterF_Table[*self], *timeValue);
00464 }
00465 else
00466 {
00467 fprintf(stderr,
00468 "vtkXMLWriterF_WriteNextTimeStep called with invalid id %d.\n",
00469 *self);
00470 }
00471 }
00472
00473
00474
00475 void VTK_FORTRAN_NAME(vtkxmlwriterf_stop, VTKXMLWRITERF_STOP)(
00476 const int* self
00477 )
00478 {
00479 if(*self > 0 && *self <= VTK_XMLWRITERF_MAX && vtkXMLWriterF_Table[*self])
00480 {
00481 vtkXMLWriterC_Stop(vtkXMLWriterF_Table[*self]);
00482 }
00483 else
00484 {
00485 fprintf(stderr,
00486 "vtkXMLWriterF_Stop called with invalid id %d.\n",
00487 *self);
00488 }
00489 }