Пример #1
0
    //-----------------------------------------------------------------------
    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);

    }
Пример #2
0
    //-----------------------------------------------------------------------
    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;
}
Пример #4
0
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));
}
Пример #5
0
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;
}