// This may look like C code, but it is really -*- C++ -*-
// Module PI : Peida Interactive     PIGrCoord
// Classe de gestion de coordonnees grpahique   R. Ansari  97
// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA

#include "sopnamsp.h"
#include "pigrcoord.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>


//++
// Class	PIGrCoord
// Lib		PI
// include	pigrcoord.h
//
//   	Classe utilisé pour la spécifiaction de coordonnées graphique.
//	Des constructeurs et des méthodes de conversion à partir 
//	et vers des "int", "float" et "double" sont définis.
//	La valeur entiere d'un objet PIGrCoord construite à partir 
//	d'une valeur flottante (ou suite à une affectation) correpond
//	à l'entier le plus proche.
// 
//|	PIGrCoord gco = 3.14;
//|	int ic = gco;     // ic -> 3
//|	float fc = gco;   // fc -> 3.14
//|	gco = 1.1;        // (int)gco -> 1
//|	gco = 1.6;        // (int)gco -> 2
//|	gco = -0.4;       // (int)gco -> 0
//|	gco = -0.7;       // (int)gco -> -1
//--
//++
// Links	Voir aussi
// PIGraphic
// PIGraphicAtt
//--

PIGrCoord::PIGrCoord(const char * sv)
{
  double a = atof(sv);
  iv = (a>=0.)?(int)(a+0.5):(int)(a-0.5); dv = a;
}

//++
// Titre	Constructeurs
//--
//++
// 
// PIGrCoord() 
//	Constructeur par défaut ("intVal=floatVal=0")
// PIGrCoord(int a)
//	Constructeur à partir de l'entier "a"
// PIGrCoord(float a) 
//	Constructeur à partir de la valeur flottante "a"
// PIGrCoord(double a) 
//	Constructeur à partir de la valeur flottante double précision "a"
// PIGrCoord(const char * sv) 
//	Constructeur à partir d'une chaine de caracteres "sv".
//--
//++
// Titre	Opérateurs de conversion
//--
//++
// operator int() 
//	Conversion en entier "int"
// operator short() 
//	Conversion en entier "short"
// operator unsigned int() 
//	Conversion en entier non signé "unsigned int"
// operator unsigned short() 
//	Conversion en entier non signé "unsigned short"
// operator float() 
//	Conversion en réél "float"
// operator double() 
//	Conversion en réél "double"
//--
//++
// Titre	Opérateurs d'affectation
//--
//++
// PIGrCoord& operator= (int a) 
//	Affectation à partir de valeur entière "int"
// PIGrCoord& operator= (float a) 
//	Affectation à partir de valeur réélle "float"
// PIGrCoord& operator= (double a) 
//	Affectation à partir de valeur réélle double précision "double"
//--

