本文整理汇总了C++中Part::getModelPtr方法的典型用法代码示例。如果您正苦于以下问题:C++ Part::getModelPtr方法的具体用法?C++ Part::getModelPtr怎么用?C++ Part::getModelPtr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Part
的用法示例。
在下文中一共展示了Part::getModelPtr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void EDS_2x3PlaneFingers::OnMessage( MessageData* data )
{
if (data->message == "collision")
{
dtCore::Scene::CollisionData* cd = static_cast< dtCore::Scene::CollisionData* >( data->userData );
for(unsigned int i=0; i<2; i++)
{
for(unsigned int j=0; j<3; j++)
{
Part* pt = mHand->getFingerFromVector(i)->getKnuckleAt(j);
if(pt == NULL)
break;
if(cd->mBodies[0] == pt->getModelPtr() || cd->mBodies[1] == pt->getModelPtr())
{
// 若第k指节发生碰撞,则k, k-1, ..., 0指节均视为发生碰撞
int index = j;
for(; index>-1; index--)
mCollided[i][index] = 1;
mContactPos[i][j] = cd->mLocation;
// 保证所有法向量要么都是指向物体中心,要么都是背离物体中心
if(cd->mBodies[0] == pt->getModelPtr())
mContactNormal[i][j] = cd->mNormal * (-1.0);
else
mContactNormal[i][j] = cd->mNormal * 1.0;
}
}
}
}
}
示例2: Part_Collision_Mapping
void Hand_Custom::Part_Collision_Mapping()
{
std::vector<CollisionInfoStruct*> CollidesList;
IHand::mAsmInfo->parsePartCollision(CollidesList);
for (unsigned int i=0; i<CollidesList.size(); i++)
{
Part* pt = NULL;
pt = IHand::getPartFromVector(CollidesList[i]->name);
if(pt == NULL)
{
QString mes = QString("No part named [%1] has been found during Collision Mapping!\n").arg(CollidesList[i]->name.c_str());
mes.append("This might cause crash. Please fix this error and then try again.");
QMessageBox::warning(NULL, "Warning", mes);
break;
}
pt->getModelPtr()->SetCollisionMesh();
pt->setCollisionCategoryBits(CollidesList[i]->CollisionCategory);
pt->setCollisionCollideBits(CollidesList[i]->CollisionCollides);
}
}