• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ OgreAssert函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: OgreAssert

	//-----------------------------------------------------------------------
	void ConvexBody::storeEdgesOfPolygon(size_t poly, Polygon::EdgeMap *edgeMap ) const
	{
		OgreAssert(poly <= getPolygonCount(), "Search position out of range" );
		OgreAssert( edgeMap != NULL, "TEdgeMap ptr is NULL" );

		mPolygons[poly]->storeEdges(edgeMap);
	}
开发者ID:carriercomm,项目名称:gamekit,代码行数:8,代码来源:OgreConvexBody.cpp


示例2: ushort

void LodOutputProviderBuffer::inject()
{
    unsigned short submeshCount = ushort(mBuffer.submesh.size());
    OgreAssert(mMesh->getNumSubMeshes() == submeshCount, "");
    mMesh->removeLodLevels();
    for (unsigned short i = 0; i < submeshCount; i++) {
        SubMesh::LODFaceList& lods = mMesh->getSubMesh(i)->mLodFaceList;
        typedef vector<LodIndexBuffer>::type GenBuffers;
        GenBuffers& buffers = mBuffer.submesh[i].genIndexBuffers;

        size_t buffCount = buffers.size();
        for (size_t n=0; n<buffCount;n++) {
            LodIndexBuffer& buff = buffers[n];
            size_t indexCount = (buff.indexBufferSize ? buff.indexBufferSize : buff.indexCount);
            OgreAssert((int)buff.indexCount >= 0, "");
            lods.push_back(OGRE_NEW IndexData());
            lods.back()->indexStart = buff.indexStart;
            lods.back()->indexCount = buff.indexCount;
            if(indexCount != 0) {
                if(n > 0 && buffers[n-1].indexBuffer == buff.indexBuffer){
                    lods.back()->indexBuffer = (*(++lods.rbegin()))->indexBuffer;
                } else {
                    lods.back()->indexBuffer = HardwareBufferManager::getSingleton().createIndexBuffer(
                        buff.indexSize == 2 ?
                        HardwareIndexBuffer::IT_16BIT : HardwareIndexBuffer::IT_32BIT,
                        indexCount, mMesh->getIndexBufferUsage(), mMesh->isIndexBufferShadowed());
                    size_t sizeInBytes = lods.back()->indexBuffer->getSizeInBytes();
                    void* pOutBuff = lods.back()->indexBuffer->lock(0, sizeInBytes, HardwareBuffer::HBL_DISCARD);
                    memcpy(pOutBuff, buff.indexBuffer.get(), sizeInBytes);
                    lods.back()->indexBuffer->unlock();
                }
            }
        }
    }
}
开发者ID:OGRECave,项目名称:ogre,代码行数:35,代码来源:OgreLodOutputProviderBuffer.cpp


示例3: OgreAssert

//-------------------------------------------------------
float Ground::GetHeightAt(float s, float t) const
{
    OgreAssert(0.0f <= s && s <= 1.0f && 0.0f <= t && t <= 1.0f, "S and T should be from [0, 1]");
    OgreAssert(nullptr != mImage.get(), "Ground[GetHeightAt]: Not initialized");

    size_t x = static_cast<size_t>(s * (mImage->getWidth() - 1));
    size_t y = static_cast<size_t>(t * (mImage->getHeight() - 1));

    return mImage->getColourAt(x, y, 0)[0];
}
开发者ID:agruzdev,项目名称:OgreNature,代码行数:11,代码来源:Ground.cpp


示例4: while

    //-----------------------------------------------------------------------
    void RenderSystem::setDepthBufferFor( RenderTarget *renderTarget )
    {
        uint16 poolId = renderTarget->getDepthBufferPool();
        if( poolId == DepthBuffer::POOL_NO_DEPTH )
            return; //RenderTarget explicitly requested no depth buffer

        //Find a depth buffer in the pool
        DepthBufferVec::const_iterator itor = mDepthBufferPool[poolId].begin();
        DepthBufferVec::const_iterator end  = mDepthBufferPool[poolId].end();

        bool bAttached = false;
        while( itor != end && !bAttached )
            bAttached = renderTarget->attachDepthBuffer( *itor++ );

        //Not found yet? Create a new one!
        if( !bAttached )
        {
            DepthBuffer *newDepthBuffer = _createDepthBufferFor( renderTarget );

            if( newDepthBuffer )
            {
                newDepthBuffer->_setPoolId( poolId );
                mDepthBufferPool[poolId].push_back( newDepthBuffer );

                bAttached = renderTarget->attachDepthBuffer( newDepthBuffer );

                OgreAssert( bAttached ,"A new DepthBuffer for a RenderTarget was created, but after creation"
                                     " it says it's incompatible with that RT" );
            }
            else
                LogManager::getSingleton().logMessage( "WARNING: Couldn't create a suited DepthBuffer"
                                                       "for RT: " + renderTarget->getName() , LML_CRITICAL);
        }
    }
开发者ID:bsmr-c-cpp,项目名称:ogre,代码行数:35,代码来源:OgreRenderSystem.cpp


示例5: OgreAssert

	std::pair< DynamicRenderable::MeshData::VertexData *, DynamicRenderable::MeshData::Index * > 
	DynamicRenderable::getMeshData( const int nLOD, const size_t nStitchFlags )
	{
		OgreAssert(_pvMeshData[nLOD] != NULL, "Resolution doesn't exist");
		return std::pair< DynamicRenderable::MeshData::VertexData *, DynamicRenderable::MeshData::Index * > 
			(& _pvMeshData[nLOD] ->vertices, & _pvMeshData[nLOD] ->indices[nStitchFlags]);
	}
开发者ID:thejasonfisher,项目名称:OhTSM,代码行数:7,代码来源:DynamicRenderable.cpp


示例6: switch

void MeshLodGenerator::calcLodVertexCount(const LodLevel& lodLevel,
                                          size_t uniqueVertexCount,
                                          size_t& outVertexCountLimit,
                                          Real& outCollapseCostLimit)
{
    switch(lodLevel.reductionMethod) {
    case LodLevel::VRM_PROPORTIONAL:
        outCollapseCostLimit = LodData::NEVER_COLLAPSE_COST;
        outVertexCountLimit = uniqueVertexCount - (size_t) ((Real) uniqueVertexCount * lodLevel.reductionValue);
        break;

    case LodLevel::VRM_CONSTANT:
        outCollapseCostLimit = LodData::NEVER_COLLAPSE_COST;
        outVertexCountLimit = (size_t) lodLevel.reductionValue;
        if(outVertexCountLimit < uniqueVertexCount) {
            outVertexCountLimit = uniqueVertexCount - outVertexCountLimit;
        } else {
            outVertexCountLimit = 0;
        }
        break;

    case LodLevel::VRM_COLLAPSE_COST:
        outCollapseCostLimit = lodLevel.reductionValue;
        outVertexCountLimit = 0;
        break;

    default:
        OgreAssert(0, "");
        outCollapseCostLimit = LodData::NEVER_COLLAPSE_COST;
        outVertexCountLimit = uniqueVertexCount;
        break;
    }
}
开发者ID:digimatic,项目名称:ogre,代码行数:33,代码来源:OgreMeshLodGenerator.cpp


示例7: OgreAssert

	//-----------------------------------------------------------------------
	void Polygon::updateNormal( void ) const
	{
		OgreAssert( getVertexCount() >= 3, "Insufficient vertex count!" );

		if (mIsNormalSet)
			return;

		// vertex order is ccw
		const Vector3& a = getVertex( 0 );
		const Vector3& b = getVertex( 1 );
		const Vector3& c = getVertex( 2 );

		// used method: Newell
		mNormal.x = 0.5f * ( (a.y - b.y) * (a.z + b.z) +
							   (b.y - c.y) * (b.z + c.z) + 
							   (c.y - a.y) * (c.z + a.z));

		mNormal.y = 0.5f * ( (a.z - b.z) * (a.x + b.x) +
							   (b.z - c.z) * (b.x + c.x) + 
							   (c.z - a.z) * (c.x + a.x));

		mNormal.z = 0.5f * ( (a.x - b.x) * (a.y + b.y) +
							   (b.x - c.x) * (b.y + c.y) + 
							   (c.x - a.x) * (c.y + a.y));

		mNormal.normalise();

		mIsNormalSet = true;

	}
开发者ID:Strongc,项目名称:game-ui-solution,代码行数:31,代码来源:OgrePolygon.cpp


示例8: OgreAssert

 //-----------------------------------------------------------------------
 void TextureUnitState::setNumMipmaps(int numMipmaps)
 {
     OgreAssert(mFramePtrs[0], "frame must not be blank");
     for (auto& frame : mFramePtrs)
         frame->setNumMipmaps(numMipmaps == MIP_DEFAULT
                                  ? TextureManager::getSingleton().getDefaultNumMipmaps()
                                  : numMipmaps);
 }
开发者ID:yiliu1203,项目名称:OGRE,代码行数:9,代码来源:OgreTextureUnitState.cpp


示例9: OgreAssert

 //---------------------------------------------------------------------
 String Serializer::readString(DataStreamPtr& stream, size_t numChars)
 {
     OgreAssert(numChars <= 255, "");
     char str[255];
     stream->read(str, numChars);
     str[numChars] = '\0';
     return str;
 }
开发者ID:terakuran,项目名称:ogre,代码行数:9,代码来源:OgreSerializer.cpp


示例10: TransformationBase

	DebugDisplay::CoordinateSystem::CoordinateSystem( 
		const String & sFile, const size_t nLine,
		const OverhangTerrainManager * pManager, 
		const OverhangCoordinateSpace enocsFrom, 
		const OverhangCoordinateSpace enocsTo 
	) : TransformationBase(sFile, nLine), _pManager(pManager), _from(enocsFrom), _to(enocsTo)
	{
		OgreAssert(pManager != NULL, "Manager is NULL");
	}
开发者ID:MadMartian,项目名称:OhTSM,代码行数:9,代码来源:DebugTools.cpp


示例11: OgreAssert

unsigned int LodData::Triangle::getVertexID(const LodData::Vertex* v) const
{
    for (int i = 0; i < 3; i++) {
        if (vertex[i] == v) {
            return vertexID[i];
        }
    }
    OgreAssert(0, "");
    return 0;
}
开发者ID:yiliu1203,项目名称:OGRE,代码行数:10,代码来源:OgreLodData.cpp


示例12: lock

	void ThreadingModelManager::registerMainThread()
	{
		{ boost::mutex::scoped_lock lock(mutex);
			if (mMainThreadSet)
				OHT_LOG_FATAL("Main thread already registered");
			OgreAssert(!mMainThreadSet, "Main thread already registered");
			mMainThread = boost::this_thread::get_id();
			mMainThreadSet = true;
		}
	}
开发者ID:MadMartian,项目名称:OhTSM,代码行数:10,代码来源:DebugTools.cpp


示例13: OgreAssert

    void LodCollapseCostOutside::initCollapseCosts( LodData* data )
    {
        OgreAssert(mOutsideWeight != 0.0, "");

        delete mOutsideMarker;
        mOutsideMarker = new LodOutsideMarker(data->mVertexList, data->mMeshBoundingSphereRadius, mOutsideWalkAngle);
        mOutsideMarker->markOutside();


        mCostCalculator->initCollapseCosts(data);
    }
开发者ID:Gerviba,项目名称:MuOnline,代码行数:11,代码来源:OgreLodCollapseCostOutside.cpp


示例14: OgreAssert

    //-----------------------------------------------------------------------
    void Polygon::storeEdges( Polygon::EdgeMap *edgeMap ) const
    {
        OgreAssert( edgeMap != NULL, "EdgeMap ptr is NULL" );

        size_t vertexCount = getVertexCount();

        for ( size_t i = 0; i < vertexCount; ++i )
        {
            edgeMap->insert( Edge( getVertex( i ), getVertex( ( i + 1 ) % vertexCount ) ) );
        }
    }
开发者ID:terakuran,项目名称:ogre,代码行数:12,代码来源:OgrePolygon.cpp


示例15: OgreAssert

void CameraMan::setYawPitchDist(Ogre::Radian yaw, Ogre::Radian pitch, Ogre::Real dist)
{
    OgreAssert(mTarget, "no target set");

    mOffset = Ogre::Vector3::ZERO;
    mCamera->setPosition(mTarget->_getDerivedPosition());
    mCamera->setOrientation(mTarget->_getDerivedOrientation());
    mCamera->yaw(yaw);
    mCamera->pitch(-pitch);
    mCamera->translate(Ogre::Vector3(0, 0, dist), Ogre::Node::TS_LOCAL);
}
开发者ID:litianqi,项目名称:ogre,代码行数:11,代码来源:OgreCameraMan.cpp


示例16: getByHandle

    //-----------------------------------------------------------------------
    void ResourceManager::remove(ResourceHandle handle)
    {
        ResourcePtr res = getByHandle(handle);

#if OGRE_RESOURCEMANAGER_STRICT
        OgreAssert(res, "attempting to remove unknown resource");
#endif

        if (res)
        {
            removeImpl(res);
        }
    }
开发者ID:terakuran,项目名称:ogre,代码行数:14,代码来源:OgreResourceManager.cpp


示例17: getResourceByName

    //-----------------------------------------------------------------------
    void ResourceManager::remove(const String& name, const String& group)
    {
        ResourcePtr res = getResourceByName(name, group);

#if OGRE_RESOURCEMANAGER_STRICT
        OgreAssert(res, ("attempting to remove unknown resource: "+name+" in group "+group).c_str());
#endif

        if (res)
        {
            removeImpl(res);
        }
    }
开发者ID:terakuran,项目名称:ogre,代码行数:14,代码来源:OgreResourceManager.cpp


示例18: OgreAssert

    //-----------------------------------------------------------------------
    void BspSceneLoader::load(DataStreamPtr& stream,
        const String& group, SceneNode *rootNode)
    {
        BspSceneManager* mgr = dynamic_cast<BspSceneManager*>(rootNode->getCreator());

        OgreAssert(mgr, "only loading into a BspSceneManager supported");

        mgr->setLevel(BspLevelPtr()); // clear

        BspLevelPtr bspLevel(new BspLevel(NULL, "bsplevel", 0, group, false, NULL));
        bspLevel->load(stream);

        mgr->setLevel(bspLevel);
    }
开发者ID:terakuran,项目名称:ogre,代码行数:15,代码来源:OgreBspSceneLoader.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ OidIsValid函数代码示例发布时间:2022-05-30
下一篇:
C++ OffsetRect函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap