/*  basics.c  */

#include "../Coords.h"

#define   MYDEBUG 0

/*--------------------------------------------------------------------*/
/*
   -----------------------
   simplest constructor

   created -- 95dec17, cca
   -----------------------
*/
Coords *
Coords_new ( 
   void 
) {
Coords   *coords ;

ALLOCATE(coords, struct _Coords, 1) ;
Coords_setDefaultFields(coords) ;

return(coords) ; }

/*--------------------------------------------------------------------*/
/*
   -----------------------
   set the default fields

   created -- 95dec17, cca
   -----------------------
*/
void
Coords_setDefaultFields (
   Coords   *coords
) {
if ( coords == NULL ) {
   fprintf(stderr, "\n fatal error in Coords_setDefaultFields(%p)"
           "\n bad input", coords) ;
   exit(-1) ;
}
coords->type   = COORDS_BY_TUPLE ;
coords->ndim   =   0  ;
coords->ncoor  =   0  ;
coords->coors  = NULL ;

return ; }

/*--------------------------------------------------------------------*/
/*
   --------------------------------------------------
   clear the data fields, releasing allocated storage

   created -- 95dec17, cca
   --------------------------------------------------
*/
void
Coords_clearData ( 
   Coords   *coords 
) {
/*
   ---------------
   check the input
   ---------------
*/
if ( coords == NULL ) {
   fprintf(stderr, "\n fatal error in Coords_clearData(%p)"
           "\n bad input\n", coords) ;
   exit(-1) ;
}
if ( coords->coors != NULL ) {
   FVfree(coords->coors) ;
}
/*
   ----------------------
   set the default fields
   ----------------------
*/
Coords_setDefaultFields(coords) ;

return ; }

/*--------------------------------------------------------------------*/
/*
   ------------------------------------------
   destructor, free's the object and its data

   created -- 95dec17, cca
   ------------------------------------------
*/
Coords *
Coords_free ( 
   Coords   *coords 
) {
if ( coords == NULL ) {
   fprintf(stderr, "\n fatal error in Coords_free(%p)"
           "\n bad input\n", coords) ;
   exit(-1) ;
}
Coords_clearData(coords) ;
FREE(coords) ;

return(NULL) ; }

/*--------------------------------------------------------------------*/


syntax highlighted by Code2HTML, v. 0.9.1