本文整理汇总了C++中Frame::GetLabel方法的典型用法代码示例。如果您正苦于以下问题:C++ Frame::GetLabel方法的具体用法?C++ Frame::GetLabel怎么用?C++ Frame::GetLabel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Frame
的用法示例。
在下文中一共展示了Frame::GetLabel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateFrame
void Body::UpdateFrame()
{
if (!(GetFlags() & Body::FLAG_CAN_MOVE_FRAME)) return;
// falling out of frames
if (!GetFrame()->IsLocalPosInFrame(GetPosition())) {
printf("%s leaves frame %s\n", GetLabel().c_str(), GetFrame()->GetLabel().c_str());
Frame *new_frame = GetFrame()->m_parent;
if (new_frame) { // don't let fall out of root frame
matrix4x4d m = matrix4x4d::Identity();
GetFrame()->ApplyLeavingTransform(m);
vector3d new_pos = m * GetPosition();
matrix4x4d rot;
GetRotMatrix(rot);
SetRotMatrix(m * rot);
m.ClearToRotOnly();
SetVelocity(GetFrame()->GetVelocity() + m*(GetVelocity() -
GetFrame()->GetStasisVelocityAtPosition(GetPosition())));
SetFrame(new_frame);
SetPosition(new_pos);
Pi::luaOnFrameChanged->Queue(this);
return;
}
}
// entering into frames
for (std::list<Frame*>::iterator j = GetFrame()->m_children.begin(); j != GetFrame()->m_children.end(); ++j) {
Frame *kid = *j;
matrix4x4d m;
Frame::GetFrameTransform(GetFrame(), kid, m);
vector3d pos = m * GetPosition();
if (!kid->IsLocalPosInFrame(pos)) continue;
printf("%s enters frame %s\n", GetLabel().c_str(), kid->GetLabel().c_str());
SetPosition(pos);
SetFrame(kid);
matrix4x4d rot;
GetRotMatrix(rot);
SetRotMatrix(m * rot);
// get rid of transforms
m.ClearToRotOnly();
SetVelocity(m*(GetVelocity() - kid->GetVelocity())
+ kid->GetStasisVelocityAtPosition(pos));
Pi::luaOnFrameChanged->Queue(this);
break;
}
}