本文整理汇总了C++中Box::ClipAgainst方法的典型用法代码示例。如果您正苦于以下问题:C++ Box::ClipAgainst方法的具体用法?C++ Box::ClipAgainst怎么用?C++ Box::ClipAgainst使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box
的用法示例。
在下文中一共展示了Box::ClipAgainst方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OutlineBox
void RGBImg::OutlineBox( RGBx c, Box& b )
{
b.ClipAgainst( Bounds() );
// draw top & bottom
int x;
RGBx* ptop = Ptr(b.XMin(),b.YMin());
RGBx* pbot = Ptr(b.XMin(),b.YMax());
for( x=b.XMin(); x<=b.XMax(); ++x )
{
*ptop++ = c;
*pbot++ = c;
}
// draw sides (note: already draw top & bottom pixels)
RGBx* pleft = Ptr(b.XMin(),b.YMin()+1);
RGBx* pright = Ptr(b.XMax(),b.YMin()+1);
int y;
for( y=b.YMin()+1; y<=b.YMax()-1; ++y )
{
*pleft = c;
pleft += W();
*pright = c;
pright += W();
}
}
示例2: FillBox
void IndexedImg::FillBox( uint8_t c, Box& b )
{
b.ClipAgainst( Bounds() );
int y;
for( y=b.YMin(); y<=b.YMax(); ++y )
{
int x;
uint8_t* dest = Ptr(b.XMin(),y);
for( x=b.XMin(); x<=b.XMax(); ++x )
{
*dest++ = c;
}
}
}
示例3: clip_blit
// clips a blit against the destination boundary.
// assumes srcbox is already valid.
// modifies srcbox and destbox appropriately.
static void clip_blit(
Box const& srcbounds, Box& srcbox,
Box const& destbounds, Box& destbox,
int zoom=1 )
{
// srcbox has blit dimensions
destbox.w = srcbox.w*zoom;
destbox.h = srcbox.h*zoom;
// clip destbox, then adjust srcbox to take into account any
// modifications
int destx = destbox.x;
int desty = destbox.y;
destbox.ClipAgainst( destbounds );
srcbox.x += (destbox.x - destx)/zoom;
srcbox.y += (destbox.y - desty)/zoom;
srcbox.w = destbox.w/zoom;
srcbox.h = destbox.h/zoom;
}