本文整理汇总了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 );
}
}
}
}
}