int main(int, char* []) { using boost::format; using boost::str; #if !defined(BOOST_NO_STD_WSTRING) && !defined(BOOST_NO_STD_WSTREAMBUF) using boost::wformat; wformat wfmter(L"%%##%%##%%1 %1%00"); if(str( wfmter % L"Escaped OK" ) != L"%##%##%1 Escaped OK00") BOOST_ERROR("Basic w-parsing Failed"); if(str( wformat(L"%%##%#x ##%%1 %s00") % 20 % L"Escaped OK" ) != L"%##0x14 ##%1 Escaped OK00") BOOST_ERROR("Basic wp-parsing Failed") ; // testcase for https://svn.boost.org/trac10/ticket/7379 (for valgrind) wformat wfmt(L"%1$.1f"); std::wstring ws = str(wfmt % 123.45f); BOOST_TEST_EQ(ws.compare(L"123.4"), 0); wformat wfmt2(L"%1$.0f %%"); std::wstring ws2 = (wfmt2 % 123.45f).str(); BOOST_TEST_EQ(ws2.compare(L"123 %"), 0); #endif // wformat tests return boost::report_errors(); }
int test_main(int, char* []) { using boost::format; using boost::io::str; #if !defined(BOOST_NO_STD_WSTRING) && !defined(BOOST_NO_STD_WSTREAMBUF) using boost::wformat; if(str( wformat(L"%%##%%##%%1 %1%00") % L"Escaped OK" ) != L"%##%##%1 Escaped OK00") BOOST_ERROR("Basic w-parsing Failed"); if(str( wformat(L"%%##%#x ##%%1 %s00") % 20 % L"Escaped OK" ) != L"%##0x14 ##%1 Escaped OK00") BOOST_ERROR("Basic wp-parsing Failed") ; #endif // wformat tests return 0; }
void FPSCounter::drawText(int baseX, int baseY) { int fps = getFPS(); int primitive = getPrimitive(); int primitiveAverage = getPrimitiveAverage(); int primitiveTotal = getPrimitiveTotal(); video::SColor white(255, 255, 255, 255); using boost::wformat; auto fpsMsg = (wformat(L"FPS : %d") % fps).str(); auto primitiveMsg = (wformat(L"Primitive : %d") % primitive).str(); auto primitiveAvgMsg = (wformat(L"PrimitiveAvg : %d") % primitiveAverage).str(); auto primitiveTotalMsg = (wformat(L"PrimitiveTotal : %d") % primitiveTotal).str(); const int lineHeight = DebugDrawManager::kFont14Height; g_debugDrawMgr->addString(core::vector2di(baseX, baseY + lineHeight * 0), fpsMsg, white); g_debugDrawMgr->addString(core::vector2di(baseX, baseY + lineHeight * 1), primitiveMsg, white); g_debugDrawMgr->addString(core::vector2di(baseX, baseY + lineHeight * 2), primitiveAvgMsg, white); g_debugDrawMgr->addString(core::vector2di(baseX, baseY + lineHeight * 3), primitiveTotalMsg, white); }
void boost_example::Serialization() { wprintf(L"*** Boost Serialization Example - Start\n"); wprintf(L"Building property tree\n"); wptree property_tree; property_tree.add<int>(L"Property_01", 1); property_tree.add<int>(L"Property_02", 2); property_tree.add<int>(L"Property_03", 3); property_tree.add<int>(L"Property_04", 4); property_tree.add<int>(L"Property_05", 5); property_tree.add<int>(L"Node1.Node2.Node3.Property_06", 6); wprintf(L"Saving to a file\n"); path file_path(current_path().c_str()); file_path /= L"JsonTest.txt"; wprintf((wformat(L"File Path: %s\n") % file_path.generic_wstring()).str().c_str()); std::wofstream file(file_path.generic_string().c_str()); if (!file.is_open()) { wprintf(L"Could not create the file\n"); return; } try { write_json(file, property_tree); } catch (json_parser_error) { wprintf(L"Could not write Json to the file\n"); } file.close(); wprintf(L"Loading from the file\n"); wprintf((wformat(L"File Path: %s\n") % file_path.generic_wstring()).str().c_str()); std::wifstream read_file(file_path.generic_string().c_str()); if (!read_file.is_open()) { wprintf(L"Could not load the file\n"); return; } std::wstringstream temp_stream; temp_stream << read_file.rdbuf(); wprintf(L"Json file content:\n"); wprintf(temp_stream.str().c_str()); wprintf(L"\n"); wptree read_property_tree; try { read_property_tree.clear(); read_json(temp_stream, read_property_tree); } catch (json_parser_error) { wprintf(L"Could not read Json to the file\n"); return; } wprintf(L"Read property tree content:\n"); wprintf((wformat(L"\t Property_01 = %d\n") % read_property_tree.get<int>(L"Property_01", 0)).str().c_str()); wprintf((wformat(L"\t Property_02 = %d\n") % read_property_tree.get<int>(L"Property_02", 0)).str().c_str()); wprintf((wformat(L"\t Property_03 = %d\n") % read_property_tree.get<int>(L"Property_03", 0)).str().c_str()); wprintf((wformat(L"\t Property_04 = %d\n") % read_property_tree.get<int>(L"Property_04", 0)).str().c_str()); wprintf((wformat(L"\t Property_05 = %d\n") % read_property_tree.get<int>(L"Property_05", 0)).str().c_str()); wprintf((wformat(L"\t Property_06 = %d\n") % read_property_tree.get<int>(L"Node1.Node2.Node3.Property_06", 0)).str().c_str()); wprintf(L"*** Boost Serialization Example - End\n\n"); }
void HeadFreeCameraEventReceiver::update(int ms) { auto cam = this->getCamera(); MoveEvent moveEvt = getMoveEvent(); LookEvent lookEvt = getLookEvent(); horizontalRotate_ += lookEvt.horizontalRotation * rotateSpeed * ms; if(horizontalRotate_ > 180.0f) { horizontalRotate_ -= 360.0f; } else if(horizontalRotate_ < -180.0f) { horizontalRotate_ += 360.0f; } verticalRotate_ += lookEvt.verticalRotation * rotateSpeed * ms; const float maxVerticalRotation = 80.0f; if(verticalRotate_ < -maxVerticalRotation) { verticalRotate_ = -maxVerticalRotation; } else if(verticalRotate_ > maxVerticalRotation) { verticalRotate_ = maxVerticalRotation; } //그냥 생각없이 카메라를 돌리자. 오큘러스 대응은 렌더리쪽에서 알아서 처리될거다 cam->setRotation(core::vector3df(verticalRotate_, horizontalRotate_, 0)); //카메라 처다보는 방향으로 로직을 구현하면 오큘러스에서 설정한 값하고 꼬인다 //v/h 값으로 따로 계산해야될듯 core::vector3df pos = cam->getPosition(); core::vector3df up(0, 1, 0); float targetX = -cos(core::degToRad(verticalRotate_)) * sin(core::degToRad(horizontalRotate_)); float targetY = sin(core::degToRad(verticalRotate_)); float targetZ = -cos(core::degToRad(verticalRotate_)) * cos(core::degToRad(horizontalRotate_)); core::vector3df target(targetX, targetY, targetZ); irr::core::vector3df side = up.crossProduct(target); up = target.crossProduct(side); cam->setUpVector(up); const float moveFactor = moveSpeed * ms; auto moveDelta = moveFactor * moveEvt.forwardBackward * target; auto sideDelta = moveFactor * moveEvt.leftRight * side; auto nextPos = pos + moveDelta + sideDelta; cam->setPosition(nextPos); bool displayInfo = false; if(displayInfo) { irr::video::SColor white(255, 255, 255, 255); auto rotateMsg = (wformat(L"rotate : h=%.2f, v=%.2f") % horizontalRotate_ % verticalRotate_).str(); g_debugDrawMgr->addString(core::vector2di(0, 100), rotateMsg, white); auto evtMsg = (wformat(L"evt : fb=%.2f, lr=%.2f") % moveEvt.forwardBackward % moveEvt.leftRight).str(); g_debugDrawMgr->addString(core::vector2di(0, 100 + 14*1), evtMsg, white); auto targetMsg = (wformat(L"target : %.2f, %.2f, %.2f") % targetX % targetY % targetZ).str(); g_debugDrawMgr->addString(core::vector2di(0, 100 + 14*2), targetMsg, white); auto sideMsg = (wformat(L"side : %.2f, %.2f, %.2f") % side.X % side.Y % side.Z).str(); g_debugDrawMgr->addString(core::vector2di(0, 100 + 14*3), sideMsg, white); auto camPos = cam->getPosition(); auto camPosMsg = (wformat(L"CamPos : %.2f, %.2f, %.2f") % camPos.X % camPos.Y % camPos.Z).str(); g_debugDrawMgr->addString(core::vector2di(0, 100 + 14*4), camPosMsg, white); auto upVecMsg = (wformat(L"UpVec : %.2f, %.2f, %.2f") % up.X % up.Y % up.Z).str(); g_debugDrawMgr->addString(core::vector2di(0, 100 + 14*5), upVecMsg, white); } }