1 /* basics.c */
2
3 #include "../Coords.h"
4
5 #define MYDEBUG 0
6
7 /*--------------------------------------------------------------------*/
8 /*
9 -----------------------
10 simplest constructor
11
12 created -- 95dec17, cca
13 -----------------------
14 */
15 Coords *
Coords_new(void)16 Coords_new (
17 void
18 ) {
19 Coords *coords ;
20
21 ALLOCATE(coords, struct _Coords, 1) ;
22 Coords_setDefaultFields(coords) ;
23
24 return(coords) ; }
25
26 /*--------------------------------------------------------------------*/
27 /*
28 -----------------------
29 set the default fields
30
31 created -- 95dec17, cca
32 -----------------------
33 */
34 void
Coords_setDefaultFields(Coords * coords)35 Coords_setDefaultFields (
36 Coords *coords
37 ) {
38 if ( coords == NULL ) {
39 fprintf(stderr, "\n fatal error in Coords_setDefaultFields(%p)"
40 "\n bad input", coords) ;
41 exit(-1) ;
42 }
43 coords->type = COORDS_BY_TUPLE ;
44 coords->ndim = 0 ;
45 coords->ncoor = 0 ;
46 coords->coors = NULL ;
47
48 return ; }
49
50 /*--------------------------------------------------------------------*/
51 /*
52 --------------------------------------------------
53 clear the data fields, releasing allocated storage
54
55 created -- 95dec17, cca
56 --------------------------------------------------
57 */
58 void
Coords_clearData(Coords * coords)59 Coords_clearData (
60 Coords *coords
61 ) {
62 /*
63 ---------------
64 check the input
65 ---------------
66 */
67 if ( coords == NULL ) {
68 fprintf(stderr, "\n fatal error in Coords_clearData(%p)"
69 "\n bad input\n", coords) ;
70 exit(-1) ;
71 }
72 if ( coords->coors != NULL ) {
73 FVfree(coords->coors) ;
74 }
75 /*
76 ----------------------
77 set the default fields
78 ----------------------
79 */
80 Coords_setDefaultFields(coords) ;
81
82 return ; }
83
84 /*--------------------------------------------------------------------*/
85 /*
86 ------------------------------------------
87 destructor, free's the object and its data
88
89 created -- 95dec17, cca
90 ------------------------------------------
91 */
92 Coords *
Coords_free(Coords * coords)93 Coords_free (
94 Coords *coords
95 ) {
96 if ( coords == NULL ) {
97 fprintf(stderr, "\n fatal error in Coords_free(%p)"
98 "\n bad input\n", coords) ;
99 exit(-1) ;
100 }
101 Coords_clearData(coords) ;
102 FREE(coords) ;
103
104 return(NULL) ; }
105
106 /*--------------------------------------------------------------------*/
107