本文整理汇总了C++中SRect::b方法的典型用法代码示例。如果您正苦于以下问题:C++ SRect::b方法的具体用法?C++ SRect::b怎么用?C++ SRect::b使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SRect
的用法示例。
在下文中一共展示了SRect::b方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: intersect
//重なっていたらtrueを返す
bool SRect::intersect(const SRect& rc) const
{
if(rc.l()>m_r) return false;
if(rc.r()<m_l) return false;
if(rc.t()>m_b) return false;
if(rc.b()<m_t) return false;
return true;
}
示例2: testSelection
//範囲を指定して選択を行う
unsigned SXBSchLine::testSelection(const SRect& rc)
{
unsigned nOutcode1 = SetOutCode(m_p1,rc);
unsigned nOutcode2 = SetOutCode(m_p2,rc);
if(nOutcode1 & nOutcode2) return 0;
if((nOutcode1 == 0 )||(nOutcode2 == 0 )) return SELECT_ALL;
unsigned nOutcode = nOutcode1 | nOutcode2;
if(nOutcode == (OUTCODE_LEFT | OUTCODE_RIGHT)) return SELECT_ALL;
if(nOutcode == (OUTCODE_UPPER | OUTCODE_LOWER)) return SELECT_ALL;
int x,y;
int x1 = m_p1.x();
int y1 = m_p1.y();
int x2 = m_p2.x();
int y2 = m_p2.y();
if(nOutcode & OUTCODE_LEFT){ //片方が左に出ている
x=rc.l();
y=y1+((x-x1)*(y2-y1))/(x2-x1);
if(y >= rc.t() && y <= rc.b()) return SELECT_ALL;
}
if(nOutcode & OUTCODE_RIGHT){ //片方が右に出ている
x=rc.r();
y=y1+((x-x1)*(y2-y1))/(x2-x1);
if(y >= rc.t() && y <= rc.b()) return SELECT_ALL;
}
if(nOutcode & OUTCODE_UPPER){ //片方が上に出ている
y=rc.t();
x=x1+((y-y1)*(x2-x1))/(y2-y1);
if(x >= rc.l() && x <= rc.r()) return SELECT_ALL;
}
if(nOutcode & OUTCODE_LOWER){ //片方が下に出ている
y=rc.b();
x=x1+((y-y1)*(x2-x1))/(y2-y1);
if(x >= rc.l() && x <= rc.r()) return SELECT_ALL;
}
return 0;
}
示例3: qRedraw
//描画が必要かどうかを返す
bool SXBSchLine::qRedraw(const SRect& rc)
{
SRect rcDraw(rc.l()-1,rc.t()-1,rc.r()+1,rc.b()+1);
if(testSelection(rcDraw)) return true;
else return false;
}