コード例 #1
0
ファイル: paint-map.c プロジェクト: valcat/Paint-Map
void createEdge(Linked_list* linked_list, Point* new_point, Point* marked_point, Point* previous_point)
{ 
  Edge* edge;
  Point* second_point;

  second_point = new_point;

  if (previous_point != NULL) {

    if (marked_point != NULL) {
      second_point = marked_point;
    } 
    edge = saveEdge(previous_point, second_point);
    addNode(linked_list, edge);
    printf("%p\n", previous_point->edges_list);
    printf("%d %d\n", previous_point->x, previous_point->y);
    addNode(previous_point->edges_list, edge);
    //addNode(second_point->edges_list, edge);

  } else if ((previous_point == NULL) && (mapState.IsCursorOnPoint == true)) {
    previous_point = marked_point;
    edge = saveEdge(previous_point, second_point);
    addNode(linked_list, edge); 
  }
}
コード例 #2
0
bool SQLiteDatabaseConnection::saveEdge(const RoutingEdge &edge, const QString& name)
{
    if (!saveEdge(edge))
        return false;
    
    int rc;
    if(_saveEdgeStreetnameStatement == NULL)
    {
        rc = sqlite3_prepare_v2(_db, "INSERT OR IGNORE INTO EDGES_STREETNAME VALUES (@ID, @STREETNAME);", -1, &_saveEdgeStreetnameStatement, NULL);
        if (rc != SQLITE_OK)
        {	
            std::cerr << "Failed to create saveEdgeStreetnameStatement." << " Resultcode: " << rc << std::endl;
            return false;
        }
    }

    // Parameter an das Statement binden
    sqlite3_bind_int64(_saveEdgeStreetnameStatement, 1, edge.getID());
    sqlite3_bind_text(_saveEdgeStreetnameStatement, 2, name.toLatin1(), -1, SQLITE_TRANSIENT);
    
    // Statement ausfuehren
    rc = sqlite3_step(_saveEdgeStreetnameStatement);
    if (rc != SQLITE_DONE)
    {	
        std::cerr << "Failed to execute saveEdgeStreetnameStatement." << " Resultcode: " << rc << std::endl;
        return false;
    }

    rc = sqlite3_reset(_saveEdgeStreetnameStatement);
    if(rc != SQLITE_OK)
    {
        std::cerr << "Failed to reset saveEdgeStreetnameStatement." << " Resultcode: " << rc << std::endl;
    }
    return true;
}
コード例 #3
0
bool AnimationSaver::saveDifferenceEdges(std::unique_ptr<Frame::Diff>& diff, FileManager& writer)
{
	if (!writer.writeToFile<unsigned int>(diff->edges.size()))
	{
		return false;
	}
	std::set<std::pair<std::pair<long int, long int>, Frame::Diff::status>>::iterator edgeIter = diff->edges.begin();
	while (edgeIter != diff->edges.end())
	{
		if (!saveEdge(edgeIter->first.first, edgeIter->first.second, edgeIter->second,writer))
		{
			return false;
		}
		++edgeIter;
	}
	return true;
}