本文整理汇总了C++中Box3::IncludePoints方法的典型用法代码示例。如果您正苦于以下问题:C++ Box3::IncludePoints方法的具体用法?C++ Box3::IncludePoints怎么用?C++ Box3::IncludePoints使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box3
的用法示例。
在下文中一共展示了Box3::IncludePoints方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CalcBoundingBox
void Exporter::CalcBoundingBox(INode *node, Box3& box, int all)
{
if (nullptr == node)
return;
Matrix3 tm = node->GetObjTMAfterWSM(0);
if (node->IsBoneShowing()) {
box.IncludePoints(const_cast<Point3*>(&tm.GetTrans()), 1, nullptr);
}
else {
if (Object *o = node->GetObjectRef()) {
if (o->SuperClassID() == GEOMOBJECT_CLASS_ID) {
if (o->ClassID() == BONE_OBJ_CLASSID
|| o->ClassID() == Class_ID(BONE_CLASS_ID, 0)
|| o->ClassID() == Class_ID(0x00009125, 0) /* Biped Twist Helpers */
)
{
box.IncludePoints(const_cast<Point3*>(&tm.GetTrans()), 1, nullptr);
}
else
{
Box3 local;
#if VERSION_3DSMAX < (15000<<16) // Version 15 (2013)
o->GetLocalBoundBox(0, node, mI->GetActiveViewport(), local);
#else
o->GetLocalBoundBox(0, node, &mI->GetActiveViewExp(), local);
#endif
box.IncludePoints(&local.Min(), 1, nullptr);
box.IncludePoints(&local.Max(), 1, nullptr);
}
}
else if (mExportCameras && o->SuperClassID() == CAMERA_CLASS_ID)
{
box.IncludePoints(const_cast<Point3*>(&tm.GetTrans()), 1, nullptr);
}
}
}
if (all < 0)
return;
all = (all>0 ? all : -1);
for (int i = 0; i < node->NumberOfChildren(); i++) {
CalcBoundingBox(node->GetChildNode(i), box, all);
}
}
示例2: CalcAxisAlignedBox
void CalcAxisAlignedBox(Mesh& mesh, Box3& box, Matrix3 *tm)
{
int nv = mesh.getNumVerts();
box.IncludePoints(mesh.getVertPtr(0), nv, tm);
}