#include <stdlib.h>
#include <malloc.h>
#include "image.h"
#include "visu.h"

InfoCarte CreeInfoCarte(Coord coord,ReelL eMin, ReelL eMax, Echelle echelle)
/**************************************************************************/

{
InfoCarte info;

if ( (info=(InfoCarte)malloc(sizeof(*info)))==NULL) return(NULL);
info->eMin=eMin;
info->eMax=eMax;
info->echelle=echelle;
info->coord=coord;

return(info);
}


void LibereInfoCarte(InfoCarte info)
/**********************************/

{
free(info);
}


void LitInfoCarte(InfoCarte info, Coord *coord, ReelL *eMin, ReelL *eMax, Echelle *echelle)
/*****************************************************************************************/

{
*eMin=info->eMin;
*eMax=info->eMax;
*echelle=info->echelle;
*coord=info->coord;

}


void EcritInfoCarte(InfoCarte info, Coord coord, ReelL eMin, ReelL eMax, Echelle echelle)
/***************************************************************************************/

{
if (info!=NULL)
   {
   info->eMin=eMin;
   info->eMax=eMax;
   info->echelle=echelle;
   info->coord=coord;
   }
}


InfoCourbe CreeInfoCourbe(Coord coord,ReelL eMin, ReelL eMax, Echelle echelle, Style style)
/*****************************************************************************************/

{
InfoCourbe info;

if ( (info=(InfoCourbe)malloc(sizeof(*info)))==NULL) return(NULL);
info->eMin=eMin;
info->eMax=eMax;
info->echelle=echelle;
info->coord=coord;
info->style=style;

return(info);
}


void LibereInfoCourbe(InfoCourbe info)
/************************************/

{
free(info);
}


InfoHisto CreeInfoHisto(Coord coord,ReelL eMin, ReelL eMax, Echelle echelle, ReelL min, ReelL max, EntierL n)
/***********************************************************************************************************/

{
InfoHisto info;

if ( (info=(InfoHisto)malloc(sizeof(*info)))==NULL) return(NULL);
info->eMin=eMin;
info->eMax=eMax;
info->echelle=echelle;
info->coord=coord;
info->min=min;
info->max=max;
info->n=n;

return(info);
}


void LibereInfoHisto(InfoHisto info)
/**********************************/

{
free(info);
}

InfoSequence CreeInfoSequence(int index)
/**************************************/

{
InfoSequence info;

if ( (info=(InfoSequence)malloc(sizeof(*info)))==NULL) return(NULL);
info->index=index;
return(info);
}


void LibereInfoSequence(InfoSequence info)
/****************************************/

{
free(info);
}


InfoVecteur2D CreeInfoVecteur2D(int tx,int ty,float zOrg,float zVect,int iLut,int fleche)
/***************************************************************************************/

{
InfoVecteur2D info;

if ( (info=(InfoVecteur2D)malloc(sizeof(*info)))==NULL) return(NULL);
info->tailleImg.x=tx;
info->tailleImg.y=ty;
info->zoomOrg=zOrg;
info->zoomVect=zVect;
info->indiceLut=iLut;
info->fleche=fleche;
return(info);
}

int LitTailleImgInfoVect2D(void *info,int *tx,int *ty)
/*****************************************************/
{
if (info!=NULL)
  {
  *tx=((InfoVecteur2D)info)->tailleImg.x;
  *ty=((InfoVecteur2D)info)->tailleImg.y;
  return(0);
  }
return(1);
}

int EcritTailleImgInfoVect2D(void *info,int tx,int ty)
/*****************************************************/
{
if (info!=NULL)
  {
  ((InfoVecteur2D)info)->tailleImg.x=tx;
  ((InfoVecteur2D)info)->tailleImg.y=ty;
  return(0);
  }
return(1);
}

void LibereInfoVecteur2D(InfoVecteur2D info)
/****************************************/
{
free(info);
}

