当前位置: 首页>>代码示例>>C++>>正文


C++ clampf函数代码示例

本文整理汇总了C++中clampf函数的典型用法代码示例。如果您正苦于以下问题:C++ clampf函数的具体用法?C++ clampf怎么用?C++ clampf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了clampf函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CC_UNUSED_PARAM

void CCFollow::step(ccTime dt)
{
    CC_UNUSED_PARAM(dt);

	CCPoint oldPos = m_pTarget->getPosition();
	CCPoint pos;

	if(m_bBoundarySet)
	{
		// whole map fits inside a single screen, no need to modify the position - unless map boundaries are increased
		if(m_bBoundaryFullyCovered)
			return;

		CCPoint tempPos = ccpSub( m_obHalfScreenSize, m_pobFollowedNode->getPosition());

		pos = ccp(clampf(tempPos.x, m_fLeftBoundary, m_fRightBoundary), 
								   clampf(tempPos.y, m_fBottomBoundary, m_fTopBoundary));
	}
	else
	{
		pos = ccpSub(m_obHalfScreenSize, m_pobFollowedNode->getPosition());
	}

	CCPoint moveVect;

	double dist = ccpDistance(pos, oldPos);

	if(dist > 1){
		moveVect = ccpMult(ccpSub(pos, oldPos), 0.05);
		oldPos = ccpAdd(oldPos, moveVect);
		m_pTarget->setPosition(oldPos);
	}
}
开发者ID:ARezaA,项目名称:Flux,代码行数:33,代码来源:CCAction.cpp

示例2: ccpDistance

// Estimate the velocity of the new point relative to previous points
// in points/second.
void LineSmoother::CalculateVelocities(uint32 newPointIndex)
{

   const float TS_MIN = 0.010f;  // 5 ms
   const float TS_MAX = 0.100f;  // 100 ms
   
   if(newPointIndex < 3)
   {  // Must be the first couple of points.
      _orgPoints[newPointIndex].pointsPerSecond = PPS_MIN;
   }
   else
   {
      
      ORIGINAL_POINT& p0 = _orgPoints[newPointIndex-2];
      ORIGINAL_POINT& p1 = _orgPoints[newPointIndex-1];
      ORIGINAL_POINT& p2 = _orgPoints[newPointIndex-0];
      
      float dist = ccpDistance(p2.point, p1.point);
      float dt = clampf(p2.timestamp-p1.timestamp,TS_MIN,TS_MAX);
      
      float ppsRaw = clampf(dist/dt,PPS_MIN,PPS_MAX);
      // The velocity is the mostly the previous and some of the current point.
      p2.pointsPerSecond = (ppsRaw + p1.pointsPerSecond + p0.pointsPerSecond)/3.0;
      // Round to the nearest 10 pps.
      //      p2.pointsPerSecond = roundf(p2.pointsPerSecond/25)*25;
      /*
      CCLOG("PPS(final):%f, dist:%f, dt:%f ms, PPS(raw):%f, PPS(rawClamped):%f",
            p2.pointsPerSecond,
            dist,
            dt*1000,
            dist/dt,
            ppsRaw);
       */
   }
}
开发者ID:NonlinearIdeas,项目名称:Tools-Demo,代码行数:37,代码来源:LineSmoother.cpp

示例3: dbg_assert

void CGraphics_Threaded::SetColorVertex(const CColorVertex *pArray, int Num)
{
	dbg_assert(m_Drawing != 0, "called Graphics()->SetColorVertex without begin");

	for(int i = 0; i < Num; ++i)
	{
		if(m_UseOpenGL3_3)
		{
			float r = pArray[i].m_R, g = pArray[i].m_G, b = pArray[i].m_B, a = pArray[i].m_A;
			clampf(r, 0.f, 1.f);
			clampf(g, 0.f, 1.f);
			clampf(b, 0.f, 1.f);
			clampf(a, 0.f, 1.f);
			m_aColor[pArray[i].m_Index].r = (unsigned char)(r*255.f);
			m_aColor[pArray[i].m_Index].g = (unsigned char)(g*255.f);
			m_aColor[pArray[i].m_Index].b = (unsigned char)(b*255.f);
			m_aColor[pArray[i].m_Index].a = (unsigned char)(a*255.f);
		} 
		else
		{				
			m_aColorOld[pArray[i].m_Index].r = pArray[i].m_R;
			m_aColorOld[pArray[i].m_Index].g = pArray[i].m_G;
			m_aColorOld[pArray[i].m_Index].b = pArray[i].m_B;
			m_aColorOld[pArray[i].m_Index].a = pArray[i].m_A;
		}
	}
}
开发者ID:gamertyp,项目名称:ddnet,代码行数:27,代码来源:graphics_threaded.cpp

示例4: rgbf

v3dmc_color rgbf(GLclampf r, GLclampf g, GLclampf b){
	v3dmc_color color;
	color.r = clampf(r);
	color.g = clampf(g);
	color.b = clampf(b);
	color.a = 1.0;
	return color;
}
开发者ID:serioja90,项目名称:v3dmc,代码行数:8,代码来源:figures.c

示例5: rgbai

v3dmc_color rgbai(GLint r, GLint g, GLint b, GLint a){
	v3dmc_color color;
	color.r = clampf((float)r/255.0);
	color.g = clampf((float)g/255.0);
	color.b = clampf((float)b/255.0);
	color.a = clampf((float)a/255.0);
	return color;
}
开发者ID:serioja90,项目名称:v3dmc,代码行数:8,代码来源:figures.c

示例6: rgbaf

v3dmc_color rgbaf(GLclampf r, GLclampf g, GLclampf b, GLclampf a){
	v3dmc_color color;
	color.r = clampf(r);
	color.g = clampf(g);
	color.b = clampf(b);
	color.a = clampf(a);
	return color;
}
开发者ID:serioja90,项目名称:v3dmc,代码行数:8,代码来源:figures.c

示例7: rgbi

v3dmc_color rgbi(GLint r, GLint g, GLint b){
	v3dmc_color color;
	color.r = clampf((float)r/255.0);
	color.g = clampf((float)g/255.0);
	color.b = clampf((float)b/255.0);
	color.a = 1.0;
	return color;
} 
开发者ID:serioja90,项目名称:v3dmc,代码行数:8,代码来源:figures.c

示例8: Point

Point GameCamera::clamp(Rect _b, Point _p)
{
	if (Rect::ZERO.equals(_b)) return _p;

	return Point(
		clampf(_p.x, _b.getMinX(), _b.getMaxX()),
		clampf(_p.y, _b.getMinY(), _b.getMaxY())
		);
}
开发者ID:destiny14,项目名称:FlyingSquirrel,代码行数:9,代码来源:GameCamera.cpp

示例9: color

		explicit color(float r, float g, float b, float a=1.0f)
		{
			rgbaf_[0] = clampf(r);
			rgbaf_[1] = clampf(g);
			rgbaf_[2] = clampf(b);
			rgbaf_[3] = clampf(a);
			c_.rgba[0] = int(rgbaf_[0]*255.0f);
			c_.rgba[1] = int(rgbaf_[1]*255.0f);
			c_.rgba[2] = int(rgbaf_[2]*255.0f);
			c_.rgba[3] = int(rgbaf_[3]*255.0f);
		}
开发者ID:sweetkristas,项目名称:a3de,代码行数:11,代码来源:color.hpp

示例10: FColor_to_QColor

inline QColor FColor_to_QColor( const FColor& theColor )
{
	FColor	clampedColor;

	// avoid QT warning: QColor::fromRgbF: RGB parameters out of range
	clampedColor.R = clampf( theColor.R, 0.0001f, 0.999f );
	clampedColor.G = clampf( theColor.G, 0.0001f, 0.999f );
	clampedColor.B = clampf( theColor.B, 0.0001f, 0.999f );
	clampedColor.A = clampf( theColor.A, 0.0001f, 0.999f );

	return QColor::fromRgbF( clampedColor.R, clampedColor.G, clampedColor.B, clampedColor.A );
}
开发者ID:S-V,项目名称:Lollipop,代码行数:12,代码来源:property_grid.cpp

示例11: clampf

void SpritePolygonPerformance::update(float dt)
{
    dt = dt*0.3 + prevDt*0.7;
    prevDt = dt;
    elapsedTime += dt;
    int loops = (0.025-dt)*1000;
    if(dt < 0.025 && loops>0)
    {
        continuousHighDtTime = clampf(continuousHighDtTime-dt*2, 0.0, 1.0);
        waitingTime = clampf(waitingTime-dt, 0.0, 5.0);
        continuousLowDt++;
    }
    else
    {
        continuousHighDtTime+=dt;
        continuousLowDt = 0;
    }
    if (continuousLowDt >= 5 && loops > 0) {
        for(int i = 0; i < loops; i++)
        {
            if(_posX >= _rightX)
            {
                goRight = false;
            }
            else if(_posX <= _leftX)
            {
                goRight = true;
            }
            auto s = makeSprite();
            addChild(s);
            s->setPosition(_posX, _posY);
            if(goRight)
                _posX++;
            else
                _posX--;
            
            incrementStats();
        }
        updateLabel();
    }

    //if we have 10 continuous low dt, then we will start to create more sprites
    else if(continuousHighDtTime >= .5 || waitingTime > 3.0){
        // its now 1 seconds with high DT time, time to end
        ended = true;
        unscheduleUpdate();
        perfLabel->setString("Test ended in " + Value(elapsedTime).asString() + " seconds\nNodes: " + Value(spriteCount).asString() + "   Triangles: " + Value(triCount).asString() + "\nPixels: " + Value(pixelCount).asString() + "   Vertices: " + Value(vertCount).asString());
        _subtitleLabel->setString("Test ended");
    }
    else{
        waitingTime += dt;
    }
}
开发者ID:AomXD,项目名称:workspace,代码行数:53,代码来源:SpritePolygonTest.cpp

示例12: YUV2RGB

static inline void YUV2RGB( int y, int u, int v, uint8_t *rgb ) {
#ifdef HAVE_FLOAT_CONVERSION
	rgb[0] = clampf( y +                 1.402*(u-128) );
	rgb[1] = clampf( y - 0.344*(v-128) - 0.714*(u-128) );
	rgb[2] = clampf( y + 1.772*(v-128)                 );
#else
	const int C = y -  16;
	const int D = u - 128;
	const int E = v - 128;
	rgb[0] = clampi( (298*C         + 409*E + 128) >> 8 );
	rgb[1] = clampi( (298*C - 100*D - 208*E + 128) >> 8 );
	rgb[2] = clampi( (298*C + 516*D         + 128) >> 8 );
#endif
}
开发者ID:adabsurdum,项目名称:libvideo,代码行数:14,代码来源:yuyv.c

示例13: switch

size_t CCAssetInputStream_android::seek(int offset, int mode) {
    switch(mode) {
        case SEEK_CUR:
            m_position = clampf(m_position + offset, 0, m_length);
            break;
        case SEEK_END:
            m_position = clampf(m_length + offset, 0, m_length);
            break;
        case SEEK_SET:
            m_position = clampf(offset, 0, m_length);
            break;
    }
	
	return m_position;
}
开发者ID:Cocos2d-x-vn,项目名称:cocos2dx-better,代码行数:15,代码来源:CCAssetInputStream_android.cpp

示例14: framefunc_get_rgba_f32

EXPORT void
framefunc_get_rgba_f32( rgba_f32 *result, FrameFunctionHolder *holder, double frame ) {
    if( holder->funcs && holder->funcs->get_values ) {
        double dresult[4];

        holder->funcs->get_values( holder->source, 1, &frame, &dresult );

        *result = (rgba_f32) { (float) dresult[0], (float) dresult[1],
            (float) dresult[2], clampf( (float) dresult[3], 0.0f, 1.0f ) };
    }
    else {
        *result = (rgba_f32) { (float) holder->constant[0], (float) holder->constant[1],
            (float) holder->constant[2], clampf( (float) holder->constant[3], 0.0f, 1.0f ) };
    }
}
开发者ID:fluggo,项目名称:Canvas,代码行数:15,代码来源:basicframefuncs.c

示例15: sminf

static float
sminf(float a, float b)
{
	float k = 0.1;
	float h = clampf(0.5+0.5*(b-a)/k, 0.0, 1.0);
	return lerpf(b, a, h) - k*h*(1.0-h);
}
开发者ID:aki5,项目名称:marchester,代码行数:7,代码来源:field.c


注:本文中的clampf函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。