本文整理汇总了C++中ON_Interval::Min方法的典型用法代码示例。如果您正苦于以下问题:C++ ON_Interval::Min方法的具体用法?C++ ON_Interval::Min怎么用?C++ ON_Interval::Min使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ON_Interval
的用法示例。
在下文中一共展示了ON_Interval::Min方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetSpanVector
ON_BOOL32 ON_PlaneSurface::GetSpanVector( int dir, double* s ) const
{
ON_Interval d = Domain(dir);
s[0] = d.Min();
s[1] = d.Max();
return d.IsIncreasing();
}
示例2: GetParameterTolerance
ON_BOOL32 ON_Surface::GetParameterTolerance( // returns tminus < tplus: parameters tminus <= s <= tplus
int dir,
double t, // t = parameter in domain
double* tminus, // tminus
double* tplus // tplus
) const
{
ON_BOOL32 rc = false;
ON_Interval d = Domain( dir );
if ( d.IsIncreasing() )
rc = ON_GetParameterTolerance( d.Min(), d.Max(), t, tminus, tplus );
return rc;
}
示例3: if
ON_Surface::ISO
ON_Surface::IsIsoparametric( const ON_BoundingBox& bbox ) const
{
ISO iso = not_iso;
if ( bbox.m_min.z == bbox.m_max.z ) {
const double ds = bbox.m_max.x - bbox.m_min.x;
const double dt = bbox.m_max.y - bbox.m_min.y;
double a, b, s0, s1, t0, t1;
ON_Interval d = Domain(0);
s0 = d.Min();
s1 = d.Max();
d = Domain(1);
t0 = d.Min();
t1 = d.Max();
double stol = (s1-s0)/32.0;
double ttol = (t1-t0)/32.0;
if ( s0 < s1 && t0 < t1 && ( ds <= stol || dt <= ttol) )
{
if ( ds*(t1-t0) <= dt*(s1-s0) )
{
// check for s = constant iso
if ( bbox.m_max.x <= s0+stol )
{
// check for west side iso
GetParameterTolerance( 0, s0, &a, &b);
if ( a <= bbox.m_min.x && bbox.m_max.x <= b )
iso = W_iso;
}
else if ( bbox.m_min.x >= s1-stol )
{
// check for east side iso
GetParameterTolerance( 0, s1, &a, &b);
if ( a <= bbox.m_min.x && bbox.m_max.x <= b )
iso = E_iso;
}
if ( iso == not_iso && (s0 < bbox.m_max.x || bbox.m_min.x < s1) )
{
// check for interior "u = constant" iso
GetParameterTolerance( 0, 0.5*(bbox.m_min.x+bbox.m_max.x), &a, &b);
if ( a <= bbox.m_min.x && bbox.m_max.x <= b )
iso = x_iso;
}
}
else
{
// check for t = constant iso
if ( bbox.m_max.y <= t0+ttol )
{
// check for south side iso
GetParameterTolerance( 1, t0, &a, &b);
if ( a < bbox.m_min.y && bbox.m_max.y <= b )
iso = S_iso;
}
else if ( bbox.m_min.y >= t1-ttol )
{
// check for north side iso
GetParameterTolerance( 1, t1, &a, &b);
if ( a < bbox.m_min.y && bbox.m_max.y <= b )
iso = N_iso;
}
if ( iso == not_iso && (t0 < bbox.m_max.x || bbox.m_min.x < t1) )
{
// check for interior "t = constant" iso
GetParameterTolerance( 1, 0.5*(bbox.m_min.y+bbox.m_max.y), &a, &b);
if ( a < bbox.m_min.y && bbox.m_max.y <= b )
iso = y_iso;
}
}
}
}
return iso;
}