Ejemplo n.º 1
0
void Scene::deleteSprite(Sprite **sprite) {
    removeCollisionSprite(*sprite);
    removeSurface((*sprite)->getSurface());
    removeEntity(*sprite);
    delete *sprite;
    *sprite = NULL;
}
Ejemplo n.º 2
0
void Scene1608::upUpperFloor() {
	Scene::update();
	if (_carStatus == 1) {
		removeSurface(_klaymen->getSurface());
		removeEntity(_klaymen);
		addSprite(_asCar);
		_klaymenInCar = true;
		clearRectList();
		SetUpdateHandler(&Scene1608::upCarAtHome);
		SetMessageHandler(&Scene1608::hmCarAtHome);
		_asIdleCarLower->setVisible(false);
		_asIdleCarFull->setVisible(false);
		_asCar->setVisible(true);
		sendMessage(_asCar, 0x2009, 0);
		_asCar->handleUpdate();
		_klaymen = NULL;
		_carStatus = 0;
	}
	updateKlaymenCliprect();
}
Ejemplo n.º 3
0
void Scene1608::upGettingOutOfCar() {
	Scene::update();
	if (_carStatus == 2) {
		_klaymen = _kmScene1608;
		removeSurface(_asCar->getSurface());
		removeEntity(_asCar);
		addSprite(_klaymen);
		_klaymenInCar = false;
		SetMessageHandler(&Scene1608::hmUpperFloor);
		SetUpdateHandler(&Scene1608::upUpperFloor);
		setRectList(0x004B4810);
		_asIdleCarLower->setVisible(true);
		_asIdleCarFull->setVisible(true);
		_asCar->setVisible(false);
		setMessageList(0x004B4748);
		processMessageList();
		_klaymen->handleUpdate();
		_carStatus = 0;
	}
	updateKlaymenCliprect();
}
Ejemplo n.º 4
0
void Scene::setSurfacePriority(BaseSurface *surface, int priority) {
    surface->setPriority(priority);
    if (removeSurface(surface))
        addSurface(surface);
}
Ejemplo n.º 5
0
void Scene::removeSprite(Sprite *sprite) {
    removeSurface(sprite->getSurface());
    removeEntity(sprite);
}
Ejemplo n.º 6
0
SurfacesConfigDialog::SurfacesConfigDialog(const QVector<struct wsPCD> &collectionPoints,
																		 const QVector<std::string> &collectionAttributes,
																		 const QVector<struct wsWeatherDataPcdSurface> &collectionSurfaces,
																		 const wsProjectionParams &projection,
																		 QWidget *parent, Qt::WFlags f) : QDialog(parent, f), _parent(parent),

  _collectionPoints(collectionPoints),
  _collectionAttributes(collectionAttributes),
  _collectionSurfaces(collectionSurfaces),
  _projection(projection),
  _attributeListIsLoaded(false),
  _baseBox(0, 0, 0, 0)

{
  setupUi(this);

  // métodos de interpolação
  interpCmb->addItem(tr("Vizinho mais próximo"));
  interpCmb->addItem(tr("K-vizinhos mais próximos"));
  interpCmb->addItem(tr("K-vizinhos mais próximos ponderados"));
#ifndef _WIN64  
  interpCmb->addItem(tr("Superfície de tendência"));
#endif

  // Menus associados a botões
  QMenu* menuMask = new QMenu(tr("Máscaras"), _parent);
  menuMask->addAction(tr("%a - ano com dois digitos"));
  menuMask->addAction(tr("%A - ano com quatro digitos"));
  menuMask->addAction(tr("%d - dia com dois digitos"));
  menuMask->addAction(tr("%M - mes com dois digitos"));
  menuMask->addAction(tr("%h - hora com dois digitos"));
  menuMask->addAction(tr("%m - minuto com dois digitos"));
  menuMask->addAction(tr("%s - segundo com dois digitos"));

  fileAnaGridMaskBtn->setMenu(menuMask);
  fileAnaGridMaskBtn->setPopupMode(QToolButton::InstantPopup);

  // Coneta os sinais
  connect(menuMask, SIGNAL(triggered(QAction*)), SLOT(menuMaskClick(QAction*)));

  connect(surfaceList,    SIGNAL(currentRowChanged(int)),   SLOT(showSurfaceDetails(int)));
  connect(interpCmb,      SIGNAL(currentIndexChanged(int)), SLOT(interpolationChanged(int)));
  connect(resDegreeRadio, SIGNAL(toggled(bool)),            SLOT(resDegreeRadioToggled(bool)));

  connect(outputGridEdit,  SIGNAL(textEdited(const QString&)), SLOT(updateCurrentSurface()));
  connect(attributeCmb,    SIGNAL(activated(int)),             SLOT(updateCurrentSurface()));
  connect(interpCmb,       SIGNAL(activated(int)),             SLOT(updateCurrentSurface()));
  connect(neighborNumEdit, SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(powValueEdit,    SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(degreeCmb,       SIGNAL(activated(int)),             SLOT(updateCurrentSurface()));
  connect(x1Edit,          SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(y1Edit,          SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(x2Edit,          SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(y2Edit,          SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(resXEdit,        SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(resYEdit,        SIGNAL(editingFinished()),          SLOT(updateCurrentSurface()));
  connect(resDegreeRadio,  SIGNAL(clicked(bool)),              SLOT(updateCurrentSurface()));
  connect(resMeterRadio,   SIGNAL(clicked(bool)),              SLOT(updateCurrentSurface()));

  connect(outputGridEdit,  SIGNAL(textEdited(const QString&)), SLOT(updateSurfaceList()));
  connect(outputGridEdit,  SIGNAL(editingFinished()),          SLOT(trimGridOutputName()));

  connect(addAttributeBtn,    SIGNAL(clicked()), SLOT(addSurface()));
  connect(removeAttributeBtn, SIGNAL(clicked()), SLOT(removeSurface()));
  connect(okBtn,              SIGNAL(clicked()), SLOT(checkAndAccept()));
  connect(cancelBtn,          SIGNAL(clicked()), SLOT(checkAndReject()));

  neighborNumEdit->setValidator(new QIntValidator(0, 9999, neighborNumEdit));
  powValueEdit->setValidator(new QIntValidator(0, 9999, powValueEdit));

  x1Edit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, x1Edit));
  y1Edit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, y1Edit));
  x2Edit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, x2Edit));
  y2Edit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, y2Edit));

  resXEdit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, resXEdit));
  resYEdit->setValidator(new QDoubleValidator(-TeMAXFLOAT, TeMAXFLOAT, 20, resYEdit));

  // Carrega as superfícies já cadastradas
  if(!collectionSurfaces.isEmpty())
  {
    loadAttributeList();
    updateSurfaceList(0);
  }
  else // Nenhuma cadastrada, desabilita a parte direita da interface
    clearSurfaceDetails();

  // Calcula o box padrão
  {
    TePointSet pointSet;
    for(int i = 0; i < _collectionPoints.size(); i++)
    {
      if(_collectionPoints.at(i).isActive)
      {
        TeCoord2D aux = TeCoord2D(_collectionPoints.at(i).longitude, _collectionPoints.at(i).latitude);
        TePoint p(aux);
        pointSet.add(p);
      }
    }

    if(pointSet.size() > 0)
    {
      std::auto_ptr<TeProjection> projection(TeProjectionFactory::make(wsUtils::ProjectionParams::teFromWs(_projection)));

      for(unsigned int i = 0; i < pointSet.size(); ++i)
      {
        if(pointSet[i].srid() == -1)
          pointSet[i].srid(projection->epsgCode());
      }

      // Atualiza o box padrão
      _baseBox = pointSet.box();
    }
  }

  // Grava configuração inicial
  _startConfig = _collectionSurfaces;
}
Ejemplo n.º 7
0
    void SearchStructure::removeHiddenSurfaces(
            int threshold,
            size_t& removedZones,
            size_t& removedSurfaces)
    {
        removedZones = 0;
        removedSurfaces = 0;

        bool invertRemoval = (threshold < 0);
        threshold = glm::abs(threshold);


        std::vector<bool> removeSurface(_searchSurfaces.size());
        for(int i=0; i < _searchSurfaces.size(); ++i)
        {
            bool remove = _searchSurfaces[i].hitCount
                .load(std::memory_order_relaxed) < threshold;

            if(invertRemoval)
                remove = !remove;

            if(remove)
                ++removedSurfaces;

            removeSurface[i] = remove;
        }


        std::vector<bool> removeZone(_searchZones.size());
        for(int i=_searchZones.size()-1; i >= 0; --i)
        {
            SearchZone& zone = _searchZones[i];

            bool remove = true;
            for(size_t z=i+1; z < zone.endZone; ++z)
                remove = remove && removeZone[z];
            for(size_t s=zone.begSurf; s < zone.endSurf; ++s)
                remove = remove && removeSurface[s];

            if(remove)++removedZones;
            removeZone[i] = remove;
        }

        std::vector<SearchZone> newZones;
        std::vector<SearchSurface> newSurfs;

        size_t cumZoneRemove = 0;
        size_t cumSurfRemove = 0;

        for(int i=0; i < _searchZones.size(); ++i)
        {
            SearchZone zone = _searchZones[i];

            if(removeZone[i])
            {
                ++cumZoneRemove;
                cumSurfRemove += zone.endSurf - zone.begSurf;
            }
            else
            {
                size_t preCumSurfRemove = cumSurfRemove;
                for(size_t s=zone.begSurf; s < zone.endSurf; ++s)
                {
                    if(removeSurface[s])
                        ++cumSurfRemove;
                    else
                        newSurfs.push_back(_searchSurfaces[s]);
                }
                zone.begSurf -= preCumSurfRemove;
                zone.endSurf -= cumSurfRemove;


                size_t remZoneCount = 0;
                for(size_t z=i+1; z < zone.endZone; ++z)
                {
                    if(removeZone[z])
                        ++remZoneCount;
                }
                zone.endZone -= (cumZoneRemove + remZoneCount);

                newZones.push_back(zone);
            }
        }

        std::swap(_searchZones, newZones);
        std::swap(_searchSurfaces, newSurfs);
        _isOptimized = true;
    }