Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
xDataTOM.cc
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# <<END-copyright>>
4*/
5
6#include <stdlib.h>
7#include <string.h>
8#include <ctype.h>
9#include <sys/types.h>
10#include <sys/stat.h>
11#include <fcntl.h>
12#include <errno.h>
13
14#if defined(WIN32) || defined(__MINGW32__)
15#include <windows.h>
16#define realpath( a, b ) GetFullPathName( a, PATH_MAX, b, NULL )
17#define strtoll _strtoi64
18#else
19#include <unistd.h>
20#endif
21
23#include "xDataTOM_private.h"
24
25#if defined __cplusplus
26namespace GIDI {
27using namespace GIDI;
28#endif
29
30#ifndef PATH_MAX
31#define PATH_MAX 4096
32#endif
33
35
36static int xDataTOME_initializeElement( statusMessageReporting *smr, xDataTOM_element *element, xDataTOM_element *parent, int ordinal, int index,
37 char const *name );
38static void xDataTOME_displayTree( statusMessageReporting *smr, xDataTOM_element *element, int printAttributes, int level );
39
40static int xDataTOM_initialize_xData( statusMessageReporting *smr, xDataTOM_xDataInfo *xDataInfo );
41/*
42************************************************************
43*/
45/*
46* Returns NULL is an error occurred.
47*/
48
49 return( xDataXML_importFile( smr, fileName ) );
50}
51/*
52************************************************************
53*/
55/*
56* Returns NULL is an error occurred.
57*/
58 xDataTOM_TOM *TOM;
59
60 if( ( TOM = (xDataTOM_TOM *) smr_malloc2( smr, sizeof( xDataTOM_TOM ), 1, "xDataTOM_TOM" ) ) != NULL ) {
61 if( xDataTOM_initializeTOM( smr, TOM ) ) smr_freeMemory( (void **) &TOM );
62 }
63 return( TOM );
64}
65/*
66************************************************************
67*/
69
70 TOM->fileName = NULL;
71 TOM->realFileName = NULL;
72 xDataTOME_initializeElement( smr, &(TOM->root), NULL, 0, 0, "" );
73 return( !smr_isOk( smr ) );
74}
75/*
76************************************************************
77*/
79
80 xDataTOM_TOM *TOMp;
81
82 if( TOM == NULL ) return( NULL );
83 TOMp = *TOM;
84 if( TOMp == NULL ) return( NULL );
85 xDataTOM_releaseElement( &(TOMp->root) );
86 smr_freeMemory( (void **) &(TOMp->fileName) );
87 smr_freeMemory( (void **) &(TOMp->realFileName) );
88 smr_freeMemory( (void **) TOM );
89 return( NULL );
90}
91/*
92************************************************************
93*/
94int xDataTOM_setFileNameTOM( statusMessageReporting *smr, xDataTOM_TOM *TOM, const char *fileName ) {
95/*
96* Returns not zero value if error occurred.
97*/
98
99 char realPath[PATH_MAX+1];
100
101 smr_freeMemory( (void **) &(TOM->fileName) );
102 smr_freeMemory( (void **) &(TOM->realFileName) );
103 if( fileName != NULL ) {
104 if( ( TOM->fileName = smr_allocateCopyString2( smr, fileName, "fileName" ) ) == NULL ) return( 1 );
105 if( realpath( fileName, realPath ) != NULL ) {
106 if( ( TOM->realFileName = smr_allocateCopyString2( smr, realPath, "realFileName" ) ) == NULL ) return( 1 );
107 }
108 }
109 return( 0 );
110}
111/*
112************************************************************
113*/
114void xDataTOM_displayTree( statusMessageReporting *smr, xDataTOM_TOM *TOM, int printAttributes ) {
115
116 if( TOM->root.children != NULL ) xDataTOME_displayTree( smr, TOM->root.children, printAttributes, 0 );
117}
118
119/****************************************
120* Element functions.
121****************************************/
122/*
123************************************************************
124*/
125xDataTOM_element *xDataTOM_mallocElement( statusMessageReporting *smr, xDataTOM_element *parent, int ordinal, int index, char const *name ) {
126/*
127* Returns NULL is an error occurred.
128*/
129 xDataTOM_element *element;
130
131 if( ( element = (xDataTOM_element *) smr_malloc2( smr, sizeof( xDataTOM_element ), 1, "xDataTOM_elelument" ) ) != NULL ) {
132 if( xDataTOME_initializeElement( smr, element, parent, ordinal, index, name ) ) smr_freeMemory( (void **) &element );
133 }
134 return( element );
135}
136/*
137************************************************************
138*/
140
141 if( element == NULL ) return;
142 xDataTOM_releaseElement( *element );
143 smr_freeMemory( (void **) element );
144}
145/*
146************************************************************
147*/
149
150 xDataTOM_element *child, *nextChild;
151
152 if( element == NULL ) return;
153 xDataTOMAL_release( &(element->attributes) );
154 for( child = element->children; child != NULL; child = nextChild ) {
155 nextChild = child->next;
156 xDataTOM_freeElement( &child );
157 }
158 if( element->xDataInfo.ID != NULL ) {
159 xDataTOM_axes_release( &(element->xDataInfo.axes) );
160 if( strcmp( element->xDataInfo.ID, xDataTOM_XYs_ID ) == 0 ) {
161 xDataTOM_XYs_free( &(element->xDataInfo ) ); }
162 else if( strcmp( element->xDataInfo.ID, xDataTOM_regionsXYs_ID ) == 0 ) {
163 xDataTOM_regionsXYs_free( &(element->xDataInfo ) ); }
164 else if( strcmp( element->xDataInfo.ID, xDataTOM_W_XYs_ID ) == 0 ) {
166 else if( strcmp( element->xDataInfo.ID, xDataTOM_V_W_XYs_ID ) == 0 ) {
167 xDataTOM_V_W_XYs_free( &(element->xDataInfo ) ); }
168 else if( strcmp( element->xDataInfo.ID, xDataTOM_W_XYs_LegendreSeries_ID ) == 0 ) {
170 else if( strcmp( element->xDataInfo.ID, xDataTOM_regionsW_XYs_LegendreSeries_ID ) == 0 ) {
172 else if( strcmp( element->xDataInfo.ID, xDataTOM_V_W_XYs_LegendreSeries_ID ) == 0 ) {
174 else if( strcmp( element->xDataInfo.ID, xDataTOM_KalbachMann_ID ) == 0 ) {
175 xDataTOM_KalbachMann_free( &(element->xDataInfo ) ); }
176 else if( strcmp( element->xDataInfo.ID, xDataTOM_polynomial_ID ) == 0 ) {
177 xDataTOM_polynomial_free( &(element->xDataInfo ) ); }
178 else {
179 printf( "not freed for %s\n", element->xDataInfo.ID );
180 }
181 }
182 element->parent = NULL;
183 smr_freeMemory( (void **) &(element->name) );
184}
185/*
186************************************************************
187*/
189
190 xDataTOM_element *element;
191
192 if( ( element = xDataTOM_mallocElement( smr, parent, parent->numberOfChildren, index, name ) ) == NULL ) return( NULL );
193 if( parent->children == NULL ) {
194 parent->children = element; }
195 else {
196 xDataTOM_element *last;
197
198 for( last = parent->children; last->next != NULL; last = last->next ) ;
199 last->next = element;
200 }
201 (parent->numberOfChildren)++;
202 return( element );
203}
204/*
205************************************************************
206*/
207static int xDataTOME_initializeElement( statusMessageReporting *smr, xDataTOM_element *element, xDataTOM_element *parent, int ordinal, int index,
208 char const *name ) {
209
210 element->ordinal = ordinal;
211 element->index = index;
212 element->parent = parent;
213 element->next = NULL;
214 element->name = smr_allocateCopyString2( smr, name, "element->name" );
215 xDataTOMAL_initial( smr, &(element->attributes) );
216 element->numberOfChildren = 0;
217 element->children = NULL;
218 return( ( xDataTOM_initialize_xData( smr, &(element->xDataInfo) ) || ( element->name == NULL ) ) ? 1 : 0 );
219}
220/*
221************************************************************
222*/
224
225 return( TOM->root.children );
226}
227/*
228************************************************************
229*/
231
232 if( element != NULL ) element = element->children;
233 return( element );
234}
235/*
236************************************************************
237*/
239
240 if( element != NULL ) element = element->next;
241 return( element );
242}
243/*
244************************************************************
245*/
247
248 int n = 0;
249 xDataTOM_element *child, *desired = NULL;
250
251 for( child = xDataTOME_getFirstElement( element ); child != NULL; child = xDataTOME_getNextElement( child ) ) {
252 if( strcmp( child->name, name ) == 0 ) {
253 if( n == 0 ) desired = child;
254 n++;
255 }
256 }
257 if( n == 0 ) {
258 if( required ) smr_setReportError2( smr, smr_unknownID, 1, "elements '%s' not found in element '%s'", name, element->name ); }
259 else if( n > 1 ) {
260 smr_setReportError2( smr, smr_unknownID, 1, "multiple (= %d) elements '%s' found in element '%s'", name, element->name );
261 desired = NULL;
262 }
263 return( desired );
264}
265/*
266************************************************************
267*/
268int xDataTOM_numberOfElementsByName( statusMessageReporting * /*smr*/, xDataTOM_element *element, char const *name ) {
269
270 int n = 0;
271 xDataTOM_element *child;
272
273 for( child = xDataTOME_getFirstElement( element ); child != NULL; child = xDataTOME_getNextElement( child ) ) if( !strcmp( child->name, name ) ) n++;
274 return( n );
275}
276/*
277************************************************************
278*/
279int xDataTOME_addAttribute( statusMessageReporting *smr, xDataTOM_element *element, char const *name, char const *value ) {
280
281 return( xDataTOMAL_addAttribute( smr, &(element->attributes), name, value ) );
282}
283/*
284************************************************************
285*/
286char const *xDataTOM_getAttributesValueInElement( xDataTOM_element *element, char const *name ) {
287
288 return( xDataTOMAL_getAttributesValue( &(element->attributes), name ) );
289}
290/*
291************************************************************
292*/
294
295 return( xDataTOMAL_copyAttributionList( smr, desc, &(element->attributes) ) );
296}
297/*
298************************************************************
299*/
300int xDataTOME_convertAttributeToInteger( statusMessageReporting *smr, xDataTOM_element *element, char const *name, int *n ) {
301
302 return( xDataTOMAL_convertAttributeToInteger( smr, &(element->attributes), name, n ) );
303}
304/*
305************************************************************
306*/
307int xDataTOME_convertAttributeToDouble( statusMessageReporting *smr, xDataTOM_element *element, char const *name, double *d ) {
308
309 return( xDataTOMAL_convertAttributeToDouble( smr, &(element->attributes), name, d ) );
310}
311/*
312************************************************************
313*/
315 enum xDataTOM_interpolationFlag *dependent, enum xDataTOM_interpolationQualifier *qualifier ) {
316
317 xDataTOM_xDataInfo *xDI = &(element->xDataInfo);
318
319 if( xDI->ID == NULL ) return( 1 );
320
321 return( xDataTOM_axes_getInterpolation( smr, &(xDI->axes), index, independent, dependent, qualifier ) );
322}
323/*
324************************************************************
325*/
326static void xDataTOME_displayTree( statusMessageReporting *smr, xDataTOM_element *element, int printAttributes, int level ) {
327
328 int i;
329 xDataTOM_element *child;
330
331 for( i = 0; i < level; i++ ) printf( " " );
332 printf( "/%s", element->name );
333 if( element->index >= 0 ) printf( " (%d)", element->index );
334 if( printAttributes ) {
335 xDataTOM_attribute *attribute;
336
337 for( attribute = element->attributes.attributes; attribute != NULL; attribute = attribute->next ) {
338 printf( " (%s, \"%s\")", attribute->name, attribute->value );
339 }
340 }
341 printf( "\n" );
342 for( child = xDataTOME_getFirstElement( element ); child != NULL; child = xDataTOME_getNextElement( child ) ) {
343 xDataTOME_displayTree( smr, child, printAttributes, level + 1 );
344 }
345}
346
347/****************************************
348* Attribute functions.
349****************************************/
350/*
351************************************************************
352*/
354
355 attributes->number = 0;
356 attributes->attributes = NULL;
357}
358/*
359************************************************************
360*/
362
363 xDataTOM_attribute *attribute, *next;
364
365 for( attribute = attributes->attributes; attribute != NULL; attribute = next ) {
366 next = attribute->next;
367 smr_freeMemory( (void **) &(attribute->name) );
368 smr_freeMemory( (void **) &(attribute->value) );
369 smr_freeMemory( (void **) &(attribute) );
370 }
371 xDataTOMAL_initial( NULL, attributes );
372}
373/*
374************************************************************
375*/
376int xDataTOMAL_addAttribute( statusMessageReporting *smr, xDataTOM_attributionList *attributes, char const *name, char const *value ) {
377
378 xDataTOM_attribute *attribute;
379
380 if( ( attribute = (xDataTOM_attribute *) smr_malloc2( smr, sizeof( xDataTOM_attribute ), 1, "xDataTOM_attribute" ) ) == NULL ) return( 1 );
381 if( ( attribute->name = smr_allocateCopyString2( smr, name, "name" ) ) == NULL ) goto err;
382 if( ( attribute->value = smr_allocateCopyString2( smr, value, "value" ) ) == NULL ) goto err;
383 if( attributes->attributes == NULL ) {
384 attributes->attributes = attribute; }
385 else {
386 xDataTOM_attribute *last;
387
388 for( last = attributes->attributes; last->next != NULL; last = last->next ) ;
389 last->next = attribute;
390 }
391 attributes->number++;
392 return( 0 );
393
394err:
395 smr_freeMemory( (void **) &(attribute->name) );
396 smr_freeMemory( (void **) &(attribute->value) );
397 smr_freeMemory( (void **) &(attribute) );
398 return( 1 );
399}
400/*
401************************************************************
402*/
403char const *xDataTOMAL_getAttributesValue( xDataTOM_attributionList *attributes, char const *name ) {
404
405 xDataTOM_attribute *attribute;
406
407 for( attribute = attributes->attributes; attribute != NULL; attribute = attribute->next ) {
408 if( !strcmp( attribute->name, name ) ) return( attribute->value );
409 }
410 return( NULL );
411}
412/*
413************************************************************
414*/
416
417 xDataTOM_attribute *attribute;
418
419 xDataTOMAL_initial( smr, desc );
420 for( attribute = src->attributes; attribute != NULL; attribute = attribute->next ) {
421 if( xDataTOMAL_addAttribute( smr, desc, attribute->name, attribute->value ) != 0 ) goto err;
422
423 }
424 return( 0 );
425
426err:
427 xDataTOMAL_release( desc );
428 return( 1 );
429}
430/*
431************************************************************
432*/
434
435 char const *value = xDataTOMAL_getAttributesValue( attributes, name );
436 char *e;
437
438 if( value != NULL ) {
439 *n = (int) strtoll( value, &e, 10 );
440 if( *e == 0 ) return( 0 );
441 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "could not convert attribute %s's value = '%s' to an integer", name, value ); }
442 else {
443 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "no attribute named '%s'", name );
444 }
445 return( 1 );
446}
447/*
448************************************************************
449*/
450int xDataTOMAL_convertAttributeToDouble( statusMessageReporting *smr, xDataTOM_attributionList *attributes, char const *name, double *d ) {
451
452 char const *value = xDataTOMAL_getAttributesValue( attributes, name );
453 char *e;
454
455 if( value != NULL ) {
456 *d = strtod( value, &e );
457 if( *e == 0 ) return( 0 );
458 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "could not convert attribute %s's values = '%s' to a double", name, value ); }
459 else {
460 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "no attribute named '%s'", name );
461 }
462 return( 1 );
463}
464
465
466/****************************************
467* xData functions.
468****************************************/
469/*
470************************************************************
471*/
472static int xDataTOM_initialize_xData( statusMessageReporting * /*smr*/, xDataTOM_xDataInfo * /*xDataInfo*/ ) {
473
474 return( 0 );
475}
476/*
477************************************************************
478*/
479void *xData_initializeData( statusMessageReporting *smr, xDataTOM_element *TE, char const *ID, size_t size ) {
480
481 xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
482
483 xDI->data = NULL;
484 xDI->ID = ID;
485 xDI->element = TE;
486 return( xDI->data = (void *) smr_malloc2( smr, size, 1, "xDI->data" ) );
487}
488/*
489************************************************************
490*/
491int xDataTOM_isXDataID( xDataTOM_element *TE, char const *ID ) {
492
493 xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
494
495 if( xDI->ID != NULL ) {
496 return( !strcmp( xDI->ID, ID ) );
497 }
498
499 return( 0 );
500}
501/*
502************************************************************
503*/
505
506 if( TE->xDataInfo.ID == NULL ) return( NULL );
507 return( &(TE->xDataInfo) );
508}
509/*
510************************************************************
511*/
513
515
516 if( xDI == NULL ) {
517 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "element '%s' does not have xData", TE->name );
518 return( NULL );
519 }
520 if( strcmp( ID, xDI->ID ) ) {
521 smr_setReportError2( smr, xDataTOM_smrLibraryID, 1, "xData has ID = '%s' not '%s' for element %s", xDI->ID, ID, TE->name );
522 return( NULL );
523 }
524 return( xDI->data );
525
526}
527
528#if defined __cplusplus
529}
530#endif
#define PATH_MAX
Definition: MCGIDI_map.cc:12
#define smr_setReportError2(smr, libraryID, code, fmt,...)
#define smr_allocateCopyString2(smr, s, forItem)
void * smr_freeMemory(void **p)
int smr_isOk(statusMessageReporting *smr)
#define smr_malloc2(smr, size, zero, forItem)
#define smr_unknownID
char * fileName
Definition: xDataTOM.h:191
xDataTOM_element root
Definition: xDataTOM.h:193
char * realFileName
Definition: xDataTOM.h:192
xDataTOM_attribute * next
Definition: xDataTOM.h:158
xDataTOM_attribute * attributes
Definition: xDataTOM.h:165
xDataTOM_element * children
Definition: xDataTOM.h:186
xDataTOM_xDataInfo xDataInfo
Definition: xDataTOM.h:187
xDataTOM_element * next
Definition: xDataTOM.h:182
xDataTOM_attributionList attributes
Definition: xDataTOM.h:184
xDataTOM_element * parent
Definition: xDataTOM.h:181
const char * ID
Definition: xDataTOM.h:151
xDataTOM_element * element
Definition: xDataTOM.h:152
xDataTOM_axes axes
Definition: xDataTOM.h:153
int xDataTOM_numberOfElementsByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name)
Definition: xDataTOM.cc:268
int xDataTOM_V_W_XYs_LegendreSeries_free(xDataTOM_xDataInfo *xDI)
int xDataTOM_regionsXYs_free(xDataTOM_xDataInfo *xDI)
int xDataTOM_regionsW_XYs_LegendreSeries_free(xDataTOM_xDataInfo *xDI)
xDataTOM_element * xDataTOME_getOneElementByName(statusMessageReporting *smr, xDataTOM_element *element, char const *name, int required)
Definition: xDataTOM.cc:246
int xDataTOMAL_addAttribute(statusMessageReporting *smr, xDataTOM_attributionList *attributes, char const *name, char const *value)
Definition: xDataTOM.cc:376
xDataTOM_TOM * xDataTOM_importFile(statusMessageReporting *smr, const char *fileName)
Definition: xDataTOM.cc:44
xDataTOM_TOM * xDataTOM_mallocTOM(statusMessageReporting *smr)
Definition: xDataTOM.cc:54
int xDataTOMAL_convertAttributeToDouble(statusMessageReporting *smr, xDataTOM_attributionList *attributes, char const *name, double *d)
Definition: xDataTOM.cc:450
xDataTOM_element * xDataTOM_mallocElement(statusMessageReporting *smr, xDataTOM_element *parent, int ordinal, int index, char const *name)
Definition: xDataTOM.cc:125
int xDataTOME_addAttribute(statusMessageReporting *smr, xDataTOM_element *element, char const *name, char const *value)
Definition: xDataTOM.cc:279
int xDataTOME_copyAttributionList(statusMessageReporting *smr, xDataTOM_attributionList *desc, xDataTOM_element *element)
Definition: xDataTOM.cc:293
int xDataTOM_V_W_XYs_free(xDataTOM_xDataInfo *xDI)
void xDataTOMAL_initial(statusMessageReporting *smr, xDataTOM_attributionList *attributes)
Definition: xDataTOM.cc:353
xDataTOM_element * xDataTOM_addElementInElement(statusMessageReporting *smr, xDataTOM_element *parent, int index, char const *name)
Definition: xDataTOM.cc:188
int xDataTOM_setFileNameTOM(statusMessageReporting *smr, xDataTOM_TOM *doc, const char *fileName)
Definition: xDataTOM.cc:94
int xDataTOMAL_convertAttributeToInteger(statusMessageReporting *smr, xDataTOM_attributionList *attributes, char const *name, int *n)
Definition: xDataTOM.cc:433
int xDataTOM_initializeTOM(statusMessageReporting *smr, xDataTOM_TOM *doc)
Definition: xDataTOM.cc:68
void * xData_initializeData(statusMessageReporting *smr, xDataTOM_element *TE, char const *ID, size_t size)
Definition: xDataTOM.cc:479
int xDataTOM_XYs_free(xDataTOM_xDataInfo *xDI)
Definition: xDataTOM_XYs.cc:19
void * xDataTOM_freeTOM(statusMessageReporting *smr, xDataTOM_TOM **TOM)
Definition: xDataTOM.cc:78
xDataTOM_interpolationFlag
Definition: xDataTOM.h:19
void xDataTOM_freeElement(xDataTOM_element **element)
Definition: xDataTOM.cc:139
int xDataTOM_axes_getInterpolation(statusMessageReporting *smr, xDataTOM_axes *axes, int index, enum xDataTOM_interpolationFlag *independent, enum xDataTOM_interpolationFlag *dependent, enum xDataTOM_interpolationQualifier *qualifier)
int xDataTOM_isXDataID(xDataTOM_element *TE, char const *ID)
Definition: xDataTOM.cc:491
xDataTOM_element * xDataTOME_getNextElement(xDataTOM_element *element)
Definition: xDataTOM.cc:238
char const * xDataTOMAL_getAttributesValue(xDataTOM_attributionList *attributes, char const *name)
Definition: xDataTOM.cc:403
int xDataTOME_getInterpolation(statusMessageReporting *smr, xDataTOM_element *element, int index, enum xDataTOM_interpolationFlag *independent, enum xDataTOM_interpolationFlag *dependent, enum xDataTOM_interpolationQualifier *qualifier)
Definition: xDataTOM.cc:314
char const * xDataTOM_getAttributesValueInElement(xDataTOM_element *element, char const *name)
Definition: xDataTOM.cc:286
int xDataTOME_convertAttributeToInteger(statusMessageReporting *smr, xDataTOM_element *element, char const *name, int *n)
Definition: xDataTOM.cc:300
xDataTOM_element * xDataTOM_getDocumentsElement(xDataTOM_TOM *TOM)
Definition: xDataTOM.cc:223
void xDataTOM_releaseElement(xDataTOM_element *element)
Definition: xDataTOM.cc:148
xDataTOM_element * xDataTOME_getFirstElement(xDataTOM_element *element)
Definition: xDataTOM.cc:230
int xDataTOME_convertAttributeToDouble(statusMessageReporting *smr, xDataTOM_element *element, char const *name, double *d)
Definition: xDataTOM.cc:307
int xDataTOMAL_copyAttributionList(statusMessageReporting *smr, xDataTOM_attributionList *desc, xDataTOM_attributionList *src)
Definition: xDataTOM.cc:415
xDataTOM_interpolationQualifier
Definition: xDataTOM.h:21
void xDataTOM_displayTree(statusMessageReporting *smr, xDataTOM_TOM *TOM, int printAttributes)
Definition: xDataTOM.cc:114
int xDataTOM_W_XYs_freeFrom_xDataInfo(xDataTOM_xDataInfo *xDI)
int xDataTOM_KalbachMann_free(xDataTOM_xDataInfo *xDI)
void * xDataTOME_getXDataIfID(statusMessageReporting *smr, xDataTOM_element *TE, char const *ID)
Definition: xDataTOM.cc:512
xDataTOM_xDataInfo * xDataTOME_getXData(xDataTOM_element *TE)
Definition: xDataTOM.cc:504
int xDataTOM_W_XYs_LegendreSeries_free(xDataTOM_xDataInfo *xDI)
void xDataTOMAL_release(xDataTOM_attributionList *attributes)
Definition: xDataTOM.cc:361
int xDataTOM_axes_release(xDataTOM_axes *axes)
int xDataTOM_polynomial_free(xDataTOM_xDataInfo *xDI)
xDataTOM_TOM * xDataXML_importFile(statusMessageReporting *smr, char const *fileName)
char const * xDataTOM_KalbachMann_ID
char const * xDataTOM_V_W_XYs_ID
char const * xDataTOM_regionsW_XYs_LegendreSeries_ID
char const * xDataTOM_polynomial_ID
char const * xDataTOM_W_XYs_ID
char const * xDataTOM_regionsXYs_ID
char const * xDataTOM_W_XYs_LegendreSeries_ID
char const * xDataTOM_XYs_ID
Definition: xDataTOM_XYs.cc:14
char const * xDataTOM_V_W_XYs_LegendreSeries_ID
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34