void NavMesh::logNavMesh() const { std::stringstream logStream; logStream.precision(std::numeric_limits<float>::max_digits10); logStream<<"Mav mesh:"<<std::endl; for(unsigned int i=0; i<getPolygons().size(); ++i) { const std::shared_ptr<NavPolygon> &polygon = getPolygons()[i]; logStream<<" - Polygon "<<i<<": "<<polygon->getName()<<std::endl; for(unsigned int j=0; j<polygon->getTriangles().size(); ++j) { const std::shared_ptr<NavTriangle> &triangle = polygon->getTriangle(j); logStream<<" - Triangle "<<j<<": " <<"{"<<triangle->getIndex(0)<<": "<<polygon->getPoint(triangle->getIndex(0)) <<"}, {"<<triangle->getIndex(1)<<": "<<polygon->getPoint(triangle->getIndex(1)) <<"}, {"<<triangle->getIndex(2)<<": "<<polygon->getPoint(triangle->getIndex(2))<<"}" <<" {"<<triangle->getNeighbor(0)<<", "<<triangle->getNeighbor(1)<<", "<<triangle->getNeighbor(2)<<"}"<<std::endl; } } Logger::logger().log(Logger::INFO, logStream.str()); }
std::vector<GUIGlID> GUIShapeContainer::getPolygonIDs() const { AbstractMutex::ScopedLocker locker(myLock); std::vector<GUIGlID> ret; const std::map<std::string, SUMO::Polygon*>& polygons = getPolygons().getMyMap(); for (std::map<std::string, SUMO::Polygon*>::const_iterator it = polygons.begin(); it != polygons.end(); ++it) { ret.push_back(static_cast<GUIPolygon*>(it->second)->getGlID()); } return ret; }
void CQXYValsCanvas:: keyPressEvent(QKeyEvent *ke) { if (ke->key() == Qt::Key_Delete) { // clear grid valueData_.ipolygons .clear(); valueData_.iqpolygons.clear(); updatePolygons(); update(); } else if (ke->key() == Qt::Key_C) { valueData1_ = valueData_; // combine connected cells valueData_.xyvals.combineInside(); valueData_.xyvals.setPolygonInsideValues(); getPolygons(); update(); } else if (ke->key() == Qt::Key_F) { valueData1_ = valueData_; // fill valueData_.xyvals.fill(); getPolygons(); update(); } else if (ke->key() == Qt::Key_H) { valueData1_ = valueData_; // fill disconnected rows valueData_.xyvals.fillDisconnectedRows(); valueData_.xyvals.setPolygonInsideValues(); getPolygons(); update(); } else if (ke->key() == Qt::Key_V) { valueData1_ = valueData_; // fill disconnected columns valueData_.xyvals.fillDisconnectedColumns(); valueData_.xyvals.setPolygonInsideValues(); getPolygons(); update(); } else if (ke->key() == Qt::Key_S) { // display smallest CXYValsInside::InsideValue i = valueData_.xyvals.findSmallest(); std::cerr << i << "(" << valueData_.xyvals.valueArea(i) << ")" << std::endl; } else if (ke->key() == Qt::Key_P) { // print valueData_.xyvals.print(std::cerr); std::cerr << std::endl; } else if (ke->key() == Qt::Key_R) { // replace input polygons with extracted polygons valueData_.ipolygons = valueData_.opolygons; valueData_.iqpolygons = valueData_.oqpolygons; updatePolygons(); update(); } else if (ke->key() == Qt::Key_U) { valueData_ = valueData1_; update(); } }