Ice Sheet System Model  4.18
Code documentation
Data Structures | Functions
Contours.h File Reference
#include "../datastructures/datastructures.h"
#include "./Contour.h"

Go to the source code of this file.

Data Structures

class  Contours
 Declaration of Contours class. More...
 

Functions

int ExpWrite (Contours *contours, char *domainname)
 
template<class doubletype >
ContoursExpRead (char *domainname)
 

Function Documentation

◆ ExpWrite()

int ExpWrite ( Contours contours,
char *  domainname 
)

Definition at line 32 of file Contours.cpp.

32  {/*{{{*/
33 
34  /*I/O: */
35  FILE* fid=NULL;
36  Contour<double>* contour = NULL;
37 
38  /*open domain outline file for writing: */
39  if((fid=fopen(domainname,"w"))==NULL) _error_("could not open domain file " << domainname);
40 
41  for(int counter=0;counter<contours->Size();counter++){
42  contour=(Contour<double>*)contours->GetObjectByOffset(counter);
43 
44  /*Write header: */
45  fprintf(fid,"## Name:%s\n",domainname);
46  fprintf(fid,"## Icon:0\n");
47  fprintf(fid,"# Points Count Value\n");
48  fprintf(fid,"%u %s\n",contour->nods ,"1.");
49  fprintf(fid,"# X pos Y pos\n");
50 
51  /*Write vertices: */
52  for(int i=0;i<contour->nods;i++){
53  fprintf(fid,"%lf\t%lf\n",contour->x[i],contour->y[i]);
54  }
55 
56  /*Write blank line: */
57  if(counter<contours->Size()-1) fprintf(fid,"\n");
58  }
59 
60  /*close Exp file: */
61  fclose(fid);
62 
63  return 1;
64 }/*}}}*/

◆ ExpRead()

template<class doubletype >
Contours* ExpRead ( char *  domainname)

Definition at line 21 of file Contours.h.

21  { /*{{{*/
22 
23  /*intermediary: */
24  int nprof;
25  int *profnvertices = NULL;
26  doubletype **pprofx = NULL;
27  doubletype **pprofy = NULL;
28 
29  /*If domainname is an empty string, return empty dataset*/
30  if (strcmp(domainname,"")==0){
31  nprof=0;
32  }
33  else{
34  ExpRead<doubletype>(&nprof,&profnvertices,&pprofx, &pprofy, NULL,domainname);
35  }
36 
37  /*now create dataset of contours: */
38  Contours *domain=new Contours();
39 
40  for(int i=0;i<nprof;i++){
41  domain->AddObject(new Contour<doubletype>(i,profnvertices[i],pprofx[i],pprofy[i],1));
42  }
43  return domain;
44 } /*}}}*/
DataSet::Size
int Size()
Definition: DataSet.cpp:399
DataSet::AddObject
int AddObject(Object *object)
Definition: DataSet.cpp:252
Contours
Declaration of Contours class.
Definition: Contours.h:10
Contour
Definition: Contour.h:15
Contour::nods
int nods
Definition: Contour.h:20
Contour::y
doubletype * y
Definition: Contour.h:22
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
Contour::x
doubletype * x
Definition: Contour.h:21