本文整理汇总了C++中ON_Xform::Determinant方法的典型用法代码示例。如果您正苦于以下问题:C++ ON_Xform::Determinant方法的具体用法?C++ ON_Xform::Determinant怎么用?C++ ON_Xform::Determinant使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ON_Xform
的用法示例。
在下文中一共展示了ON_Xform::Determinant方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TransformUserData
ON_BOOL32
ON_PlaneSurface::Transform( const ON_Xform& xform )
{
TransformUserData(xform);
ON_3dPoint p = m_plane.origin + m_extents[0][0]*m_plane.xaxis + m_extents[1][0]*m_plane.yaxis;
ON_3dPoint q = m_plane.origin + m_extents[0][1]*m_plane.xaxis + m_extents[1][1]*m_plane.yaxis;
bool rc = m_plane.Transform( xform )?true:false;
if (rc && fabs(fabs(xform.Determinant())-1.0) > ON_SQRT_EPSILON )
{
p = xform*p;
q = xform*q;
double x0, x1, y0, y1;
rc = false;
if ( m_plane.ClosestPointTo(p,&x0,&y0) && m_plane.ClosestPointTo(q,&x1,&y1) )
{
if ( x0 < x1 && y0 < y1 )
{
m_extents[0].Set(x0,x1);
m_extents[1].Set(y0,y1);
rc = true;
}
}
}
return rc;
}
示例2: Transform
BOOL ON_Hatch::Transform( const ON_Xform& xform)
{
if( fabs( fabs( xform.Determinant()) - 1.0) > 1.0e-4)
{
// xform has a scale component
ON_Plane tmp( m_plane);
tmp.Transform( xform);
ON_Xform A, B, T;
A.Rotation( ON_xy_plane, m_plane);
B.Rotation( tmp, ON_xy_plane);
T = B * xform * A;
// kill translation and z-scaling
T[0][2] = T[0][3] = 0.0;
T[1][2] = T[1][3] = 0.0;
T[2][0] = T[2][1] = 0.0; T[2][2] = 1.0; T[2][3] = 0.0;
T[3][0] = T[3][1] = T[3][2] = 0.0; T[3][3] = 1.0;
for( int i = 0; i < LoopCount(); i++)
m_loops[i]->m_p2dCurve->Transform( T);
}
int rc = m_plane.Transform( xform);
return rc;
}