本文整理汇总了C++中MovableObject::notifyMoved方法的典型用法代码示例。如果您正苦于以下问题:C++ MovableObject::notifyMoved方法的具体用法?C++ MovableObject::notifyMoved怎么用?C++ MovableObject::notifyMoved使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MovableObject
的用法示例。
在下文中一共展示了MovableObject::notifyMoved方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateFromParent
//-----------------------------------------------------------------------
void SceneNode::updateFromParent()
{
if ( hasParent() )
{
// Set level
//level_ = getParent()->getLevel() + 1;
derivedOrientation_ = getParentOrientation() * orientation_;
/*if ( queryFlag( SceneNode::OrientationInheritedBit ) ) {
// Combine orientation with that of parent
derivedOrientation_ = getParentOrientation() * orientation_;
} else {
// No inheritance
derivedOrientation_ = orientation_;
}*/
//derivedScale_ = parentScale * scale_;
derivedScale_ = getParentScale();
// Update scale
/*if ( queryFlag( SceneNode::ScaleInheritedBit ) ) {
// Scale own position by parent scale, NB just combine
// as equivalent axes, no shearing
//derivedScale_ = parentScale * scale_;
derivedScale_ = getParentScale();
} else {
// No inheritance
derivedScale_ = scale_;
}*/
// Change position vector based on parent's orientation & scale
//derivedPosition_ = parentOrientation * (parentScale_ * position_);
derivedPosition_ = getParentOrientation() * position_;
// Add altered position vector to parents
derivedPosition_ += getParentPosition();
} else {
level_ = 0;
// Root node, no parent
derivedOrientation_ = orientation_;
derivedPosition_ = position_;
derivedScale_ = scale_;
}
validWorldTransform_ = true;
// Notify objects that it has been moved
ObjectMap::const_iterator i;
for (i = sceneObjects_.begin(); i != sceneObjects_.end(); ++i)
{
MovableObject* object = i->second;
object->notifyMoved();
}
}