Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] View of /trunk/gadget/livesonareas.cc
[mareframe] / trunk / gadget / livesonareas.cc Repository:
ViewVC logotype

View of /trunk/gadget/livesonareas.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Mon Feb 10 17:09:07 2014 UTC (10 years, 4 months ago) by agomez
File size: 1763 byte(s)
Initial version based on Gadget 2.2.00
#include "livesonareas.h"
#include "errorhandler.h"
#include "gadget.h"
#include "global.h"

LivesOnAreas::LivesOnAreas(const IntVector& Areas) : areas(Areas) {
  int i, j, maxim = 0;
  if (areas.Size() == 0)
    handle.logMessage(LOGFAIL, "Error in input files - found no areas");

  for (i = 0; i < areas.Size(); i++)
    if (areas[i] > maxim)
      maxim = areas[i];

  for (i = 0; i < areas.Size(); i++)
    for (j = 0; j < areas.Size(); j++)
      if ((areas[i] == areas[j]) && (i != j))
        handle.logMessage(LOGFAIL, "Error in input files - repeated area", i);

  areaConvert.Reset();
  areaConvert.resize(maxim + 1, -1);
  for (i = 0; i < areas.Size(); i++)
    if ((areas[i] >= 0) && (areas[i] <= maxim))
      areaConvert[areas[i]] = i;
}

int LivesOnAreas::isInArea(int area) const {
  if (0 <= area && area < areaConvert.Size())
    return (areaConvert[area] >= 0);
  return 0;
}

int LivesOnAreas::areaNum(int area) const {
  if (0 <= area && area < areaConvert.Size())
    return areaConvert[area];
  return -1;
}

void LivesOnAreas::storeAreas(const IntVector& Areas) {
  int i, j, maxim = 0;
  if (Areas.Size() == 0)
    handle.logMessage(LOGFAIL, "Error in input files - found no areas");

  areas.Reset();
  areas.resize(Areas.Size(), -1);
  for (i = 0; i < areas.Size(); i++) {
    areas[i] = Areas[i];
    if (areas[i] > maxim)
      maxim = areas[i];
  }

  for (i = 0; i < areas.Size(); i++)
    for (j = 0; j < areas.Size(); j++)
      if ((areas[i] == areas[j]) && (i != j))
        handle.logMessage(LOGFAIL, "Error in input files - repeated area", i);

  areaConvert.Reset();
  areaConvert.resize(maxim + 1, -1);
  for (i = 0; i < areas.Size(); i++)
    if ((areas[i] >= 0) && (areas[i] <= maxim))
      areaConvert[areas[i]] = i;
}

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge