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