openframeworksでの文字列操作の覚書
openframeworksを使っていて、たまに文字列操作をすると忘れてしまうので覚書 まぁ、ただのc++なんですが・・
カレントディレクトリの取得
char dir[255]; getcwd(dir,255); cout<<"Current Directory : "<<dir<<endl;
文字列結合は ofToStringして、+で連結
string cmd_convert; cmd_convert = "osascript " + ofToString (dir) + ofToString(CMD_FACECONVERT);
絶対パスからユーザ名を取得する
ofDir dir("");
ofSplitString(dir.getAbsolutePath(),"/").at(2)
画面への文字の描画はofDrawBitmapString
ofDrawBitmapString(ofToString(scene_id), x, y);
ただし、フォントサイズとかは指定できない
フォントとサイズを指定するなら、ofTrueTypeFont::drawString()
ofTrueTypeFont font;//ofApp.hに記載
void ofApp::setup(){
....
font.loadFont("fonts/mono0755.ttf", 40);//40はフォントサイズ
}
void ofApp::draw(){
font.drawString("time:" + ofToString(ofGetElapsedTimef()), font_x, font_y);
}
タイトルバーにFPSを表示
- 60FPS以上などではこれが原因でFPS落ちることもあるので注意
ofSetWindowTitle(ofToString(ofGetFrameRate(), 0));
ofXMLをつかったXMLの操作
string buffer = "<detect>\
<file>aaa.jpb</file>\
<target>bbb.jpg</target>\
</detect>";
cout << buffer << endl;
ofXml xml;
xml.loadFromBuffer(buffer);
cout << xml.getValue("target") << endl;