📄 rs_units.cpp
字号:
break; case RS2::C7: ret = RS_Vector(81.0, 114.0); break; case RS2::C8: ret = RS_Vector(57.0, 81.0); break; case RS2::C9: ret = RS_Vector(40.0, 57.0); break; case RS2::C10: ret = RS_Vector(28.0, 40.0); break; */ case RS2::C5E: ret = RS_Vector(163.0, 229.0); break; case RS2::Comm10E: ret = RS_Vector(105.0, 241.0); break; case RS2::DLE: ret = RS_Vector(110.0, 220.0); break; case RS2::Folio: ret = RS_Vector(210.0, 330.0); break; //case RS2::Ledger: // ret = RS_Vector(432.0, 279.0); // break; case RS2::Tabloid: ret = RS_Vector(279.0, 432.0); break; case RS2::NPageSize: ret = RS_Vector(0.0, 0.0); break; default: break; } return ret;}/** * Gets the paper format which matches the given size. If no * format matches, RS2::Custom is returned. */RS2::PaperFormat RS_Units::paperSizeToFormat(const RS_Vector s) { RS_Vector ts1; RS_Vector ts2; for (int i=(int)RS2::Custom; i<=(int)RS2::NPageSize; ++i) { ts1 = RS_Units::paperFormatToSize((RS2::PaperFormat)i); ts2 = RS_Vector(ts1.y, ts1.x); if (ts1.distanceTo(s)<1.0e-4 || ts2.distanceTo(s)<1.0e-4) { return (RS2::PaperFormat)i; } } return RS2::Custom;}/** * Converts a paper format to a string (e.g. for a combobox). */RS_String RS_Units::paperFormatToString(RS2::PaperFormat p) { RS_String ret = ""; switch (p) { case RS2::Custom: ret = "Custom"; break; case RS2::Letter: ret = "Letter"; break; case RS2::Legal: ret = "Legal"; break; case RS2::Executive: ret = "Executive"; break; case RS2::A0: ret = "A0"; break; case RS2::A1: ret = "A1"; break; case RS2::A2: ret = "A2"; break; case RS2::A3: ret = "A3"; break; case RS2::A4: ret = "A4"; break; case RS2::A5: ret = "A5"; break; case RS2::A6: ret = "A6"; break; case RS2::A7: ret = "A7"; break; case RS2::A8: ret = "A8"; break; case RS2::A9: ret = "A9"; break; case RS2::B0: ret = "B0"; break; case RS2::B1: ret = "B1"; break; case RS2::B2: ret = "B2"; break; case RS2::B3: ret = "B3"; break; case RS2::B4: ret = "B4"; break; case RS2::B5: ret = "B5"; break; case RS2::B6: ret = "B6"; break; case RS2::B7: ret = "B7"; break; case RS2::B8: ret = "B8"; break; case RS2::B9: ret = "B9"; break; case RS2::B10: ret = "B10"; break; /* case RS2::C0: ret = "C0"; break; case RS2::C1: ret = "C1"; break; case RS2::C2: ret = "C2"; break; case RS2::C3: ret = "C3"; break; case RS2::C4: ret = "C4"; break; case RS2::C5: ret = "C5"; break; case RS2::C6: ret = "C6"; break; case RS2::C7: ret = "C7"; break; case RS2::C8: ret = "C8"; break; case RS2::C9: ret = "C9"; break; case RS2::C10: ret = "C10"; break; */ case RS2::C5E: ret = "C5E"; break; case RS2::Comm10E: ret = "Comm10E"; break; case RS2::DLE: ret = "DLE"; break; case RS2::Folio: ret = "Folio"; break; //case RS2::Ledger: // ret = "Ledger"; // break; case RS2::Tabloid: ret = "Tabloid"; break; case RS2::NPageSize: ret = "NPageSize"; break; default: break; } return ret;}/** * Converts a string to a paper format. */RS2::PaperFormat RS_Units::stringToPaperFormat(const RS_String& p) { RS_String ls = p.lower(); RS2::PaperFormat ret = RS2::Custom; if (p=="custom") { ret = RS2::Custom; } else if (p=="letter") { ret = RS2::Letter; } else if (p=="legal") { ret = RS2::Legal; } else if (p=="executive") { ret = RS2::Executive; } else if (p=="a0") { ret = RS2::A0; } else if (p=="a1") { ret = RS2::A1; } else if (p=="a2") { ret = RS2::A2; } else if (p=="a3") { ret = RS2::A3; } else if (p=="a4") { ret = RS2::A4; } else if (p=="a5") { ret = RS2::A5; } else if (p=="a6") { ret = RS2::A6; } else if (p=="a7") { ret = RS2::A7; } else if (p=="a8") { ret = RS2::A8; } else if (p=="a9") { ret = RS2::A9; } else if (p=="b0") { ret = RS2::B0; } else if (p=="b1") { ret = RS2::B1; } else if (p=="b2") { ret = RS2::B2; } else if (p=="b3") { ret = RS2::B3; } else if (p=="b4") { ret = RS2::B4; } else if (p=="b5") { ret = RS2::B5; } else if (p=="b6") { ret = RS2::B6; } else if (p=="b7") { ret = RS2::B7; } else if (p=="b8") { ret = RS2::B8; } else if (p=="b9") { ret = RS2::B9; } else if (p=="b10") { ret = RS2::B10; } /*else if (p=="c0") { ret = RS2::C0; } else if (p=="c1") { ret = RS2::C1; } else if (p=="c2") { ret = RS2::C2; } else if (p=="c3") { ret = RS2::C3; } else if (p=="c4") { ret = RS2::C4; } else if (p=="c5") { ret = RS2::C5; } else if (p=="c6") { ret = RS2::C6; } else if (p=="c7") { ret = RS2::C7; } else if (p=="c8") { ret = RS2::C8; } else if (p=="c9") { ret = RS2::C9; } else if (p=="c10") { ret = RS2::C10; }*/ else if (p=="c5e") { ret = RS2::C5E; } else if (p=="comm10e") { ret = RS2::Comm10E; } else if (p=="dle") { ret = RS2::DLE; } else if (p=="folio") { ret = RS2::Folio; //} else if (p=="ledger") { // ret = RS2::Ledger; } else if (p=="tabloid") { ret = RS2::Tabloid; } else if (p=="npagesize") { ret = RS2::NPageSize; } return ret;}/** * Performs some testing for the math class. */void RS_Units::test() { RS_String s; double v; /* std::cout << "RS_Units::test: formatLinear (decimal):\n"; v = 0.1; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 3, false); std::cout << "s: " << s << "\n"; assert(s=="0.1"); v = 0.01; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 3, false); std::cout << "s: " << s << "\n"; assert(s=="0.01"); v = 0.001; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 3, false); std::cout << "s: " << s << "\n"; assert(s=="0.001"); v = 0.009; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 2, false); std::cout << "s: " << s << "\n"; assert(s=="0.01"); v = 0.005; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 2, false); std::cout << "s: " << s << "\n"; assert(s=="0.01"); v = 0.0049999; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 2, false); std::cout << "s: " << s << "\n"; assert(s=="0"); v = 0.1; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal, 4, true); std::cout << "s: " << s << "\n"; assert(s=="0.1mm"); std::cout << "RS_Units::test: formatLinear (fractional):\n"; v = 1.2; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 6, false); std::cout << "s: " << s << "\n"; assert(s=="1 13/64"); v = 1.2; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 8, false); std::cout << "s: " << s << "\n"; assert(s=="1 51/256"); v = 0.2; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 8, false); std::cout << "s: " << s << "\n"; assert(s=="51/256"); v = 4.5; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 6, true); std::cout << "s: " << s << "\n"; assert(s=="4 1/2"); v = 0.001; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 0, false); std::cout << "s: " << s << "\n"; assert(s=="0"); v = 0.01; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 8, false); std::cout << "s: " << s << "\n"; assert(s=="3/256"); v = 0.0078125; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 8, false); std::cout << "s: " << s << "\n"; assert(s=="1/128"); v = 0.001; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 8, false); std::cout << "s: " << s << "\n"; assert(s=="0"); v = 9.9999; s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional, 6, false); std::cout << "s: " << s << "\n"; assert(s=="10"); */ for (v=11.9999; v<12.0001; v+=0.0000001) { for (int prec=0; prec<=6; ++prec) { s = RS_Units::formatLinear(v, RS2::Inch, RS2::Architectural, prec, true); std::cout << "prec: " << prec << " v: " << v << " s: " << s << "\n"; } } /*for (v=0.0; v<10.0; v+=0.001) { s = RS_Units::formatLinear(v, RS2::Foot, RS2::Fractional, 1.0/128.0, true); std::cout << "v: " << v << " s: " << s << "\n";}*/ /* std::cout << "RS_Units::test: formatLinear (scientific):\n"; v = 0.001; s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Scientific, 0.0001, false); std::cout << "s: " << s << "\n"; assert(s=="1.0e-3"); */ /* std::cout << "RS_Units::test: formatAngle (deg / decimal):\n"; v = 0.0261799; s = RS_Units::formatAngle(v, RS2::DegreesDecimal, 2); std::cout << "s: " << s << "\n"; assert(s=="1.5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -