本文整理汇总了C++中Controller::GetObjectById方法的典型用法代码示例。如果您正苦于以下问题:C++ Controller::GetObjectById方法的具体用法?C++ Controller::GetObjectById怎么用?C++ Controller::GetObjectById使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Controller
的用法示例。
在下文中一共展示了Controller::GetObjectById方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Undo
string DeleteCommand::Undo ( )
{
executionCounter++;
Controller * controller = Controller::GetInstance( );
vector<IdSet>::iterator agregatesIterator = parentAgregates.begin( );
// For each object that was deleted
// (and its corresponding parent agregates)
for ( IdSet::iterator it = targets.begin( ); it != targets.end( ); ++it )
{
// Add it back to the document
controller->AddIdToDocument( *it );
// And add it back in all agregates that it used
// to be part of
Agregate * currentAgregate;
for ( IdSet::iterator jt = agregatesIterator->begin( );
jt != agregatesIterator->end( ); ++jt )
{
currentAgregate = (Agregate *) controller->GetObjectById( *jt );
currentAgregate->AddComponent( *it );
}
agregatesIterator++;
}
return STATUS_OK;
}
示例2: Execute
string DeleteCommand::Execute ( )
{
executionCounter++;
Controller * controller = Controller::GetInstance( );
IdSet allAgregates = controller->GetAllAgregatesInDocument( );
vector<IdSet>::iterator parentsIterator = parentAgregates.begin( );
// For each object to delete
for ( IdSet::iterator it = targets.begin( ); it != targets.end( ); ++it )
{
// Remove it from the document
controller->RemoveObjectFromDocument( *it );
// Find all agregates containing the deleted object
// in order to remember them
Agregate * currentAgregate;
for ( IdSet::iterator jt = allAgregates.begin( );
jt != allAgregates.end( ); ++jt )
{
currentAgregate = (Agregate *) controller->GetObjectById( *jt );
if ( currentAgregate->Contains( *it ) )
{
currentAgregate->RemoveComponent( *it );
parentsIterator->insert( *jt );
}
}
parentsIterator++;
}
return STATUS_OK;
}