void Vector<C>::matlab_output (const char *file, const char *Vectorname) const
  {
    
	char Filename[200];
	Filename[0] = '\x0';
	
	strcat(Filename, file);
	strcat(Filename, ".m");
	
	std::ofstream m_file(Filename);
	
	m_file << Vectorname << "=load('" << file << ".dat');" << std::endl;
	
	m_file.close();
	
	Filename[0] = '\x0';
	
	strcat(Filename, file);
	strcat(Filename, ".dat");

	std::ofstream dat_file(Filename);
	
	dat_file.setf(std::ios::scientific, std::ios::fixed);
	dat_file.precision(15);
	
 	for (typename Vector<C>::size_type i(0); i < size(); ++i)
 	      dat_file << this->operator () (i) << " ";
 	    dat_file << std::endl;
 	  
	
	dat_file.close();
      
  }
Exemple #2
0
bool
parser_c::parse() {
  try {
    mm_file_io_c m_file(m_file_name, MODE_READ);

    int64_t file_size   = m_file.get_size();
    memory_cptr content = memory_c::alloc(file_size);

    if (file_size != m_file.read(content, file_size))
      throw false;
    m_file.close();

    mtx::bits::reader_cptr bc(new mtx::bits::reader_c(content->get_buffer(), file_size));

    parse_header(*bc);
    parse_program_info(*bc);

    if (m_debug)
      dump();

    m_ok = true;

  } catch (...) {
    mxdebug_if(m_debug, "Parsing NOT OK\n");
  }

  return m_ok;
}
//Initialization after reading parameters
bool segmentationEvaluationModule::init() {
    //Suppress file if exists
    QFile m_file(OutputName);
    if (m_file.open(QIODevice::ReadOnly)) {
        m_file.close();
        QFile::remove(OutputName);
        return true;
    }
    return true;
}
Exemple #4
0
bool AddXmlFile(string& szFileName, int& m_ID, sockaddr_in& m_sockaddr)
{
	string m_ip = inet_ntoa(m_sockaddr.sin_addr);
	string m_id = itos(m_ID);
	string m_port = itos(ntohs(m_sockaddr.sin_port));

	CString appPath = GetAppPath();
	string seperator = "\\";
	string fullPath = appPath.GetBuffer(0) + seperator+szFileName;

	m_file(fullPath);
	TiXmlDocument	*myDocument = new TiXmlDocument(fullPath.c_str());
	myDocument->LoadFile();
	TiXmlElement *RootElement = myDocument->RootElement();


	//创建一个元素并连接。
	TiXmlElement *server = new TiXmlElement("Server");
	//设置元素的属性。
	server->SetAttribute("ID", m_id.c_str());
	//创建ip子元素、port子元素并连接。
	RootElement->LinkEndChild(server);

	//创建ip子元素、port子元素并连接。
	TiXmlElement *ip = new TiXmlElement("ip");
	TiXmlElement *port = new TiXmlElement("port");
	server->LinkEndChild(ip);
	server->LinkEndChild(port);
	//设置ip子元素和port子元素的内容并连接。
	TiXmlText *ipContent = new TiXmlText(m_ip.c_str());
	TiXmlText *portContent = new TiXmlText(m_port.c_str());
	ip->LinkEndChild(ipContent);
	port->LinkEndChild(portContent);

	//RootElement->InsertEndChild(*server);
	
	myDocument->SaveFile(fullPath.c_str());//保存到文件

	return true;
}
bool GameProject::Load()
{
    QFile m_file(m_path+"project.erp");
    if (!m_file.open(QFile::ReadOnly | QFile::Text))
        return false;
    QTextStream in(&m_file);
    QString f_text;
    in >> f_text;
    picojson::value j_project;
    const char *json = f_text.toStdString().c_str();
    QString err = QString::fromStdString(picojson::parse(j_project,json,json+strlen(json)));
    if (!err.isEmpty())
        return false;
    m_gametitle = j_project.get("GameTitle").get<std::string>().c_str();
    m_tilesize = (int)j_project.get("TileSize").get<double>();
#define ARR(var,list,key)picojson::array var = j_project.get(key).get<picojson::array>(); for (picojson::array::iterator iter = var.begin(); iter != var.end(); ++iter) list.push_back((*iter).get<std::string>().c_str());
    ARR(j_backdrop,m_backdrop,"Backdrop");
    ARR(j_battle,m_battle,"Battle");
    ARR(j_battle2,m_battle2,"Battle2");
    ARR(j_battlecharset,m_battlecharset,"BattleCharSet");
    ARR(j_battleweapon,m_battleweapon,"BattleWeapon");
    ARR(j_charset,m_charset,"CharSet");
    ARR(j_chipset,m_chipset,"ChipSet");
    ARR(j_faceset,m_faceset,"FaceSet");
    ARR(j_frame,m_frame,"Frame");
    ARR(j_gameover,m_gameover,"GameOver");
    ARR(j_monster,m_monster,"Monster");
    ARR(j_movie,m_movie,"Movie");
    ARR(j_music,m_music,"Music");
    ARR(j_background,m_background,"Background");
    ARR(j_picture,m_picture,"Picture");
    ARR(j_sound,m_sound,"Sound");
    ARR(j_system,m_system,"System");
    ARR(j_system2,m_system2,"System2");
    ARR(j_title,m_title,"Title");
#undef ARR
    m_file.close();
    return true;
}
bool GameProject::Save()
{
    picojson::object j_project;
    j_project["GameTitle"] = picojson::value(m_gametitle.toStdString());
    j_project["TileSize"] = picojson::value((double)m_tilesize);
#define ARR(var,list,key) picojson::array var;for (int i = 0; i < list.size(); i++)var.push_back(picojson::value(list[i].toStdString().c_str()));j_project[key] = picojson::value(var);
    ARR(j_backdrop,m_backdrop,"Backdrop");
    ARR(j_battle,m_battle,"Battle");
    ARR(j_battle2,m_battle2,"Battle2");
    ARR(j_battlecharset,m_battlecharset,"BattleCharSet");
    ARR(j_battleweapon,m_battleweapon,"BattleWeapon");
    ARR(j_charset,m_charset,"CharSet");
    ARR(j_chipset,m_chipset,"ChipSet");
    ARR(j_faceset,m_faceset,"FaceSet");
    ARR(j_frame,m_frame,"Frame");
    ARR(j_gameover,m_gameover,"GameOver");
    ARR(j_monster,m_monster,"Monster");
    ARR(j_movie,m_movie,"Movie");
    ARR(j_music,m_music,"Music");
    ARR(j_background,m_background,"Background");
    ARR(j_picture,m_picture,"Picture");
    ARR(j_sound,m_sound,"Sound");
    ARR(j_system,m_system,"System");
    ARR(j_system2,m_system2,"System2");
    ARR(j_title,m_title,"Title");
#undef ARR
    QString f_text = QString::fromStdString(picojson::value(j_project).serialize());
    if (f_text.isEmpty())
        return false;
    QFile m_file(m_path+"project.erp");
    if (!m_file.open(QFile::WriteOnly | QFile::Text))
        return false;
    QTextStream out(&m_file);
    out << f_text;
    m_file.flush();
    m_file.close();
    return true;
}
void OPJMarkerTree::CreateButtonsImageList(int size)
{
    if ( size == -1 ) {
        SetButtonsImageList(NULL);
        return;
    }

    // Make an image list containing small icons
    wxImageList *images = new wxImageList(size, size, true);

    // should correspond to TreeCtrlIcon_xxx enum
    wxBusyCursor wait;
    wxIcon icons[4];
    icons[0] = wxIcon(icon3_xpm);   // closed
    icons[1] = wxIcon(icon3_xpm);   // closed, selected
    icons[2] = wxIcon(icon5_xpm);   // open
    icons[3] = wxIcon(icon5_xpm);   // open, selected

    for ( size_t i = 0; i < WXSIZEOF(icons); i++ ) {
        int sizeOrig = icons[i].GetWidth();
        if ( size == sizeOrig ) {
            images->Add(icons[i]);
        } else {
            images->Add(wxBitmap(wxBitmap(icons[i]).ConvertToImage().Rescale(size, size)));
        }
    }

    AssignButtonsImageList(images);
#else
void OPJMarkerTree::CreateButtonsImageList(int WXUNUSED(size))
{
#endif
}

void OPJParseThread::LoadFile(wxFileName fname)
{
	wxTreeItemId rootid;

	// this is the root node
	int image = wxGetApp().ShowImages() ? m_tree->TreeCtrlIcon_Folder : -1;

	if (this->m_parentid) {
		// leaf of a tree
		rootid = m_parentid;
		m_tree->SetItemText(rootid, wxT("Parsing..."));

	} else {

		// delete the existing tree hierarchy
		m_tree->DeleteAllItems();

		// new tree
		rootid = m_tree->AddRoot(wxT("Parsing..."),
			image,
			image,
			new OPJMarkerData(fname.GetFullPath())
			);
		//m_tree->SetItemFont(rootid, *wxITALIC_FONT);
		m_tree->SetItemBold(rootid);
	}

	// open the file
	wxFile m_file(fname.GetFullPath().c_str(), wxFile::read);

	// parsing enabled?
	if (wxGetApp().m_enableparse) {

		// what is the extension?
		if ((fname.GetExt() == wxT("j2k")) || (fname.GetExt() == wxT("j2c"))) {

			// parse the file
			ParseJ2KFile(&m_file, 0, m_file.Length(), rootid);

		} else if ((fname.GetExt() == wxT("jp2")) || (fname.GetExt() == wxT("mj2"))) {

			// parse the file
			if (this->m_parentid) {
				//WriteText(wxT("Only a subsection of jp2"));
				OPJMarkerData *data = (OPJMarkerData *) m_tree->GetItemData(rootid);
				ParseJ2KFile(&m_file, data->m_start, data->m_length, rootid);
				m_tree->Expand(rootid);

			} else {
				// as usual
				ParseJP2File(&m_file, 0, m_file.Length(), rootid);
			}

		} else {

			// unknown extension
			WriteText(wxT("Unknown file format!"));

		}

	}

	// this is the root node
	if (this->m_parentid)
		m_tree->SetItemText(rootid, wxT("Codestream"));
	else
		//m_tree->SetItemText(rootid, wxString::Format(wxT("%s (%d B)"), fname.GetFullName(), m_file.Length()));
		m_tree->SetItemText(rootid, fname.GetFullName());

	// close the file
	m_file.Close();

	WriteText(wxT("Parsing finished!"));
}
void segmentationEvaluationModule::writeToLog() {
    QFile m_file(OutputName);
    if (!m_file.open(QIODevice::Append | QIODevice::Text)) {
        AppendToLog("segmentationEvaluationModule Error: Unable to open file '"+ OutputName +"' for append.");
        return;
    }

    QTextStream logStream(&m_file);
    logStream.setRealNumberPrecision(4);
    logStream.setRealNumberNotation(QTextStream::FixedNotation);

    if(m_logFirstTime) {
        m_logFirstTime = false;
        logStream << "Cycle\t";
        if(previousParameters.size() > 0) {
            std::map<QString, double>::iterator it, it_end = previousParameters.end();
            for(it=previousParameters.begin(); it!=it_end; it++)
                logStream << it->first << "\t";
        } else
            AppendToLog("segmentationEvaluationModule Warning: tunedParameterSet (Datapool) is empty. No relation between parameters and performance can be written.");
        logStream << "mTP\tmTN\tmFP\tmFN\tsdTP\tsdTN\tsdFP\tsdFN\taccTP\taccTN\taccFP\taccFN\tPrecision\tSensitivity\tSpecificity\tF-score\tFPR\tBlobsNumber"<< endl;
    }

    logStream << NN << "\t";

    std::map<QString, double>::iterator it, it_end = previousParameters.end();
    for(it=previousParameters.begin(); it!=it_end; it++)
        logStream << it->second << "\t";

    logStream << mTP << "\t" << mTN << "\t" << mFP << "\t" << mFN << "\t";
    logStream << sdTP << "\t" << sdTN << "\t" << sdFP << "\t" << sdFN << "\t";
    logStream << accTP << "\t" << accTN << "\t" << accFP << "\t" << accFN << "\t";

    double Precision = accTP + accFP > 0 ? accTP/((double) accTP + accFP) : 0,
           Sensitivity = accTP + accFN > 0 ? accTP/((double) accTP + accFN): 0,
           Specificity = accTN + accFP > 0 ? accTN/((double) accTN + accFP): 0,
           Fscore = Precision + Sensitivity > 0 ? 2*Precision*Sensitivity/(Precision + Sensitivity): 0,
           FPR = accTN + accFP > 0 ? accFP/((double) accTN + accFP):0;

    logStream.setRealNumberPrecision(8);

    logStream << Precision << "\t" << Sensitivity << "\t" << Specificity << "\t"
              << Fscore << "\t" << FPR << "\t" ;

    logStream.setRealNumberPrecision(1);

    logStream << mean_blob << endl;

    if(Fscore > bestFScore) {
        bestParameters = previousParameters;
        bestFScore = Fscore;
    }

    AppendToLog(   "segmentationEvaluationModule: Cycle:" + QString::number(N)
                 + " Precision: " + QString::number(Precision)
                 + " Sensitivity: " + QString::number(Sensitivity)
                 + " Specificity: " + QString::number(Specificity)
                 + " F-Score: " + QString::number(Fscore)
                 + " FPR: " + QString::number(FPR) );

    m_file.close();

}
gkBlendListIterator::gkBlendListIterator(List* list)
	:	m_list(list),
#if OGREKIT_USE_BPARSE
		m_index(0)
#else
		m_index(list ? list->first : 0)
#endif
{
}

bool gkBlendListIterator::hasMoreElements() const
{
	if (m_list == 0) return false;

#if OGREKIT_USE_BPARSE
	return m_index < m_list->size();
#else
	return m_index != 0;
#endif
}


gkBlendListIterator::ListItem* gkBlendListIterator::getNext(void)	 
{ 
#if OGREKIT_USE_BPARSE
	return m_list->at(m_index++);
#else
	ListItem* item = m_index;
	m_index = m_index->next;
	return item;
#endif
}

//--

gkBlendInternalFile::gkBlendInternalFile()
	:	m_file(0)
{
}

gkBlendInternalFile::~gkBlendInternalFile()
{
	delete m_file;
	m_file = 0;
}

bool gkBlendInternalFile::parse(const gkString& fname)
{

	if (fname.empty()) 
	{
		gkLogMessage("BlendFile: File " << fname << " loading failed. File name is empty.");
		return false;
	}

#if OGREKIT_USE_BPARSE

	utMemoryStream fs;
	fs.open(fname.c_str(), utStream::SM_READ);

	if (!fs.isOpen())
	{
		gkLogMessage("BlendFile: File " << fname << " loading failed. No such file.");
		return false;
	}

	// Write contents and inflate.
	utMemoryStream buffer(utStream::SM_WRITE);
	fs.inflate(buffer);

	m_file = new bParse::bBlenderFile((char*)buffer.ptr(), buffer.size());
	m_file->parse(false);

	if (!m_file->ok())
	{
		gkLogMessage("BlendFile: File " << fname << " loading failed. Data error.");
		return false;
	}

#else

	m_file = new fbtBlend();
	int status = m_file->parse(fname.c_str(), fbtFile::PM_COMPRESSED);
	if (status != fbtFile::FS_OK)
	{
		delete m_file;
		m_file = 0;
		gkLogMessage("BlendFile: File " << fname << " loading failed. code: " << status);
		//return false;
	}
	else 
	{
		 gkLogMessage("BlendFile: File " << fname << " loading end1" );
	    return true;
	}
	//gkLogMessage("BlendFile: File " << fname << " loading end" );
	m_file = new fbtBlend();
	Ogre::DataStreamPtr stream;
	Ogre::ArchiveManager::ArchiveMapIterator beginItera = Ogre::ArchiveManager::getSingleton().getArchiveIterator();
	while(beginItera.hasMoreElements())
	{
		typedef std::map<Ogre::String, Ogre::Archive*>::iterator ArchiveIterator;
		ArchiveIterator arch = beginItera.current();	
		if (arch->second)
		{
			 Ogre::FileInfoListPtr fileInfo = arch->second->findFileInfo(fname);
			 if (fileInfo->size() > 0)
			 {
				 stream = arch->second->open(fname);
				 gkLogMessage("BlendFile: File found create stream");
				 break;
			 }
		}
		beginItera.moveNext();
	}
	//gkLogMessage("malloc buffer");
	unsigned char * buffer = new unsigned char[stream->size()];
	//gkLogMessage(" stream->read ");
    long sizeCount = stream->read(buffer,stream->size());
    //gkLogMessage(" m_file->parse");
	if(m_file) m_file->parse(buffer,sizeCount);
	delete buffer;
	//gkLogMessage(" m_file->parse end");
#endif
	return true;
}


Blender::FileGlobal* gkBlendInternalFile::getFileGlobal()
{
	GK_ASSERT(m_file);
	
#if OGREKIT_USE_BPARSE
	return (Blender::FileGlobal*)m_file->getFileGlobal();
#else
	return m_file->m_fg;
#endif
}

int gkBlendInternalFile::getVersion()
{
	GK_ASSERT(m_file);

#if OGREKIT_USE_BPARSE
	return m_file->getMain()->getVersion();
#else
	return m_file->getVersion();
#endif
}