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


C++ PixelBox::set方法代码示例

本文整理汇总了C++中PixelBox::set方法的典型用法代码示例。如果您正苦于以下问题:C++ PixelBox::set方法的具体用法?C++ PixelBox::set怎么用?C++ PixelBox::set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PixelBox的用法示例。


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

示例1: drawBitmapBlock

void ExternalRenderer::drawBitmapBlock(TriStorageBlock& block,
                                       unsigned int pass,
                                       vec4x* triangleData,
                                       const MC2BoundingBox& box,
                                       OverlapDetector<MC2BoundingBox>& detector,
                                       TileMapContainer& tileMapCont,
                                       TileMapFormatDesc& formatDesc,
                                       bool skipOutlines)
{
   if(pass == 0) {
      return;
   }
   
   for(std::vector<TriSection>::iterator sectIt = block.primitives.begin();
       sectIt != block.primitives.end(); sectIt++){
      TriSection& section = *sectIt;
      TilePrimitiveFeature& feat = *section.src;


      const TileFeatureArg* arg = feat.getArg( TileArgNames::coord );
      const CoordArg* coordArg = static_cast<const CoordArg*>( arg );
      MC2Coordinate coord = coordArg->getCoord();
      
      if( box.contains( coord ) ) {
         const StringArg* bitMapName =
            static_cast<const StringArg*> (
               feat.getArg(TileArgNames::image_name) );
         
         if ( bitMapName == NULL ) {
            continue;
         }
         
         TextureBlock* texture = 
            static_cast<TextureBlock*>(
               m_impl->mapHandler->getOrRequestBitMap(
                  bitMapName->getValue() ) );
         
         if ( texture != NULL ) {
            MC2Point position;
            transform(position, coord);
            
            /**
             *   We subtract the anchor position, to position the texture
             *   on the anchor instead of the top left corner. */
            PixelBox overlapBox = texture->boundingBox;
            MC2Point topLeft = overlapBox.getTopLeft();
            MC2Point bottomRight = overlapBox.getBottomRight();
            
            overlapBox.set( topLeft, bottomRight );

            overlapBox.move(
               MC2Point( position.getX(), position.getY() ) );

            bool notOverlapping = true;

            notOverlapping = detector.addIfNotOverlapping( overlapBox );

            if (notOverlapping) {
               drawSprite( texture,
                           position,
                           0.0f,
                           texture->centerOffset,
                           1.0f, 1.0f);
               
               feat.setDrawn( true );
            }
         }
      }
   }
}
开发者ID:FlavioFalcao,项目名称:Wayfinder-CppCore-v2,代码行数:70,代码来源:ExternalRenderer.cpp


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