本文整理汇总了C++中AcGeMatrix3d::setToAlignCoordSys方法的典型用法代码示例。如果您正苦于以下问题:C++ AcGeMatrix3d::setToAlignCoordSys方法的具体用法?C++ AcGeMatrix3d::setToAlignCoordSys怎么用?C++ AcGeMatrix3d::setToAlignCoordSys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AcGeMatrix3d
的用法示例。
在下文中一共展示了AcGeMatrix3d::setToAlignCoordSys方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
Acad::ErrorStatus
ArxDbgDbEntity::setNormal(const AcGeVector3d& nvec)
{
if (nvec.isZeroLength()) {
ASSERT(0);
return Acad::eInvalidInput;
}
if (nvec != m_zDir) {
assertWriteEnabled();
AcGeVector3d txdir, tydir;
AcGeVector3d txdiro, tydiro;
ArxDbgUtils::getEcsXAxis(nvec, txdir); // get AutoCAD's arbitrary X-Axis for this normal
ArxDbgUtils::getEcsXAxis(m_zDir, txdiro); // get AutoCAD's arbitrary X-Axis for this normal
tydir = nvec.crossProduct(txdir);
tydir.normalize();
tydiro = m_zDir.crossProduct(txdiro);
tydiro.normalize();
AcGeMatrix3d mat;
mat.setToAlignCoordSys(m_origin, txdiro, tydiro, m_zDir,
m_origin, txdir, tydir, nvec);
m_xDir.transformBy(mat);
m_zDir.transformBy(mat);
m_origin.transformBy(mat);
}
return Acad::eOk;
}
示例2:
void
ArxDbgUtils::getUcsToWcsOriginMatrix(AcGeMatrix3d& m,
const AcGePoint3d& wcsBasePt, AcDbDatabase* db)
{
ASSERT(db != NULL);
AcGeMatrix3d tmpMat;
if (acdbUcsMatrix(tmpMat, db)) {
AcGePoint3d origin;
AcGeVector3d xDir, yDir, zDir;
tmpMat.getCoordSystem(origin, xDir, yDir, zDir);
origin += wcsBasePt.asVector();
m.setToAlignCoordSys(origin, xDir, yDir, zDir,
AcGePoint3d::kOrigin, AcGeVector3d::kXAxis,
AcGeVector3d::kYAxis, AcGeVector3d::kZAxis);
}
else {
ASSERT(0);
m = AcGeMatrix3d::kIdentity;
}
}