#include "zoom_domain.hpp" #include "type.hpp" namespace xios { /// ////////////////////// Définitions ////////////////////// /// CZoomDomain::CZoomDomain(void) : CObjectTemplate(), CZoomDomainAttributes(), CTransformation() { /* Ne rien faire de plus */ } CZoomDomain::CZoomDomain(const StdString & id) : CObjectTemplate(id), CZoomDomainAttributes(), CTransformation() { /* Ne rien faire de plus */ } CZoomDomain::~CZoomDomain(void) {} //---------------------------------------------------------------- StdString CZoomDomain::GetName(void) { return StdString("zoom_domain"); } StdString CZoomDomain::GetDefName(void) { return StdString("zoom_domain"); } ENodeType CZoomDomain::GetType(void) { return eZoomDomain; } void CZoomDomain::checkValid(CDomain* domainSrc) { int ni_glo = domainSrc->ni_glo.getValue(); int nj_glo = domainSrc->nj_glo.getValue(); // Résolution et vérification des données globales de zoom. if (!this->zoom_ni.isEmpty() || !this->zoom_nj.isEmpty() || !this->zoom_ibegin.isEmpty() || !this->zoom_jbegin.isEmpty()) { if (this->zoom_ni.isEmpty() || this->zoom_nj.isEmpty() || this->zoom_ibegin.isEmpty() || this->zoom_jbegin.isEmpty()) { ERROR("CZoomDomain::checkValid(void)", <<"if one of zoom attributes is defined then all zoom attributes must be defined") ; } else { int zoom_iend = zoom_ibegin + zoom_ni - 1; int zoom_jend = zoom_jbegin + zoom_nj - 1; if (zoom_ibegin < 0 || zoom_jbegin < 0 || zoom_iend > (ni_glo-1) || zoom_jend > (nj_glo-1)) ERROR("CZoomDomain::checkValid(void)", << "Zoom is wrongly defined," << " Check the values : zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin") ; } } else { zoom_ni = ni_glo; zoom_nj = nj_glo; zoom_ibegin = 0; zoom_jbegin = 0; } } }