//----------------------------------------------------------------------- size_t PatchSurface::getAutoVLevel(bool forMax) { Vector3 a,b,c; size_t u,v; bool found=false; for(u = 0; u < mCtlWidth; u++) { for(v = 0; v < mCtlHeight-1; v += 2) { a = mVecCtlPoints[v * mCtlWidth + u]; b = mVecCtlPoints[(v+1) * mCtlWidth + u]; c = mVecCtlPoints[(v+2) * mCtlWidth + u]; if(a!=c) { found=true; break; } } if(found) break; } if(!found) { OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR, "Can't find suitable control points for determining V subdivision level", "PatchSurface::getAutoVLevel"); } return findLevel(a,b,c); }
//----------------------------------------------------------------------- size_t PatchSurface::getAutoULevel(bool forMax) { // determine levels // Derived from work by Bart Sekura in Rogl Vector3 a,b,c; size_t u,v; bool found=false; // Find u level for(v = 0; v < mCtlHeight; v++) { for(u = 0; u < mCtlWidth-1; u += 2) { a = mVecCtlPoints[v * mCtlWidth + u]; b = mVecCtlPoints[v * mCtlWidth + u+1]; c = mVecCtlPoints[v * mCtlWidth + u+2]; if(a!=c) { found=true; break; } } if(found) break; } if(!found) { OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR, "Can't find suitable control points for determining U subdivision level", "PatchSurface::getAutoULevel"); } return findLevel(a,b,c); }
Resources::Level *ResourceProvider::getLevel(uint16 level) const { Current *current = findLevel(level); if (current) { return current->getLevel(); } return nullptr; }
void Logging::addLoggerImpl(Logger& logger) { std::lock_guard<std::mutex> lock(m_mutex); const std::string& moduleName = logger.getModuleName(); m_loggers.emplace(moduleName, &logger); logger.setLevel(findLevel(moduleName)); }
string ReportMaker::createDoubtList() { string ret=""; string tmp; tmp = findLevel("一模一样"); if(tmp!="") { ret.append(" # 一模一样 # \n (pct = 1.2)\n"); ret.append(" "+tmp); } tmp = findLevel("几乎完全相似"); if(tmp!="") { ret.append(" # 几乎完全相似 # \n (1.2>= pct >= 1.15)\n"); ret.append(" "+tmp); } tmp = findLevel("非常相似"); if(tmp!="") { ret.append(" # 非常相似 # \n (1.15>= pct >= 1.0 )\n"); ret.append(" "+tmp); } tmp = findLevel("比较相似"); if(tmp!="") { ret.append(" # 比较相似 # \n (1.0>= pct >= 0.95 ) \n"); ret.append(" "+tmp); } tmp = findLevel("存在小部分相似"); if(tmp!="") { ret.append(" # 存在小部分相似 # \n (0.95>= pct >= 0.88) \n"); ret.append(" "+tmp); } return ret; }