Clean up transition naming

This commit is contained in:
sabrina-shanman 2019-06-04 17:46:07 -07:00
parent 5587193640
commit 833946ceb3
7 changed files with 46 additions and 58 deletions

View file

@ -597,7 +597,7 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar
avatar->fadeOut(transaction, removalReason);
workload::SpacePointer space = _space;
transaction.transitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
transaction.setTransitionFinishedOperator(avatar->getRenderItemID(), [space, avatar]() {
if (avatar->getLastFadeRequested() != render::Transition::Type::USER_LEAVE_DOMAIN) {
// The avatar is using another transition besides the fade-out transition, which means it is still in use.
// Deleting the avatar now could cause state issues, so abort deletion and show message.

View file

@ -684,10 +684,10 @@ void Avatar::fadeOut(render::Transaction& transaction, KillAvatarReason reason)
}
void Avatar::fade(render::Transaction& transaction, render::Transition::Type type) {
transaction.addTransitionToItem(_renderItemID, type);
transaction.resetTransitionOnItem(_renderItemID, type);
for (auto& attachmentModel : _attachmentModels) {
for (auto itemId : attachmentModel->fetchRenderItemIDs()) {
transaction.addTransitionToItem(itemId, type, _renderItemID);
transaction.resetTransitionOnItem(itemId, type, _renderItemID);
}
}
_lastFadeRequested = type;

View file

@ -1056,7 +1056,7 @@ void EntityTreeRenderer::fadeOutRenderable(const EntityRendererPointer& renderab
render::Transaction transaction;
auto scene = _viewState->getMain3DScene();
transaction.transitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
transaction.setTransitionFinishedOperator(renderable->getRenderItemID(), [scene, renderable]() {
render::Transaction transaction;
renderable->removeFromScene(scene, transaction);
scene->enqueueTransaction(transaction);

View file

@ -1653,7 +1653,7 @@ void PolyVoxEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& s
#ifdef POLYVOX_ENTITY_USE_FADE_EFFECT
if (!_hasTransitioned) {
transaction.addTransitionToItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
transaction.resetTransitionOnItem(_renderItemID, render::Transition::ELEMENT_ENTER_DOMAIN);
_hasTransitioned = true;
}
#endif

View file

@ -69,7 +69,7 @@ void FadeEditJob::run(const render::RenderContextPointer& renderContext, const F
if (transition == nullptr || transition->isFinished || transition->eventType != transitionType) {
// Relaunch transition
render::Transaction transaction;
transaction.addTransitionToItem(id, transitionType);
transaction.resetTransitionOnItem(id, transitionType);
scene->enqueueTransaction(transaction);
}
});

View file

@ -31,23 +31,19 @@ void Transaction::removeItem(ItemID id) {
_removedItems.emplace_back(id);
}
void Transaction::addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId) {
_addedTransitions.emplace_back(id, transition, boundId);
void Transaction::resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId) {
_resetTransitions.emplace_back(id, transition, boundId);
}
void Transaction::removeTransitionFromItem(ItemID id) {
_addedTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID);
}
void Transaction::reApplyTransitionToItem(ItemID id) {
_reAppliedTransitions.emplace_back(id);
_resetTransitions.emplace_back(id, Transition::NONE, render::Item::INVALID_ITEM_ID);
}
void Transaction::queryTransitionOnItem(ItemID id, TransitionQueryFunc func) {
_queriedTransitions.emplace_back(id, func);
}
void Transaction::transitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
void Transaction::setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func) {
_transitionFinishedOperators.emplace_back(id, func);
}
@ -76,9 +72,8 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
size_t removedItemsCount = 0;
size_t updatedItemsCount = 0;
size_t resetSelectionsCount = 0;
size_t addedTransitionsCount = 0;
size_t resetTransitionsCount = 0;
size_t queriedTransitionsCount = 0;
size_t reAppliedTransitionsCount = 0;
size_t transitionFinishedOperatorsCount = 0;
size_t highlightResetsCount = 0;
size_t highlightRemovesCount = 0;
@ -89,10 +84,9 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
removedItemsCount += transaction._removedItems.size();
updatedItemsCount += transaction._updatedItems.size();
resetSelectionsCount += transaction._resetSelections.size();
addedTransitionsCount += transaction._addedTransitions.size();
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
resetTransitionsCount += transaction._resetTransitions.size();
queriedTransitionsCount += transaction._queriedTransitions.size();
reAppliedTransitionsCount += transaction._reAppliedTransitions.size();
transitionFinishedOperatorsCount += transaction._transitionFinishedOperators.size();
highlightResetsCount += transaction._highlightResets.size();
highlightRemovesCount += transaction._highlightRemoves.size();
highlightQueriesCount += transaction._highlightQueries.size();
@ -102,9 +96,8 @@ void Transaction::reserve(const std::vector<Transaction>& transactionContainer)
_removedItems.reserve(removedItemsCount);
_updatedItems.reserve(updatedItemsCount);
_resetSelections.reserve(resetSelectionsCount);
_addedTransitions.reserve(addedTransitionsCount);
_resetTransitions.reserve(resetTransitionsCount);
_queriedTransitions.reserve(queriedTransitionsCount);
_reAppliedTransitions.reserve(reAppliedTransitionsCount);
_transitionFinishedOperators.reserve(transitionFinishedOperatorsCount);
_highlightResets.reserve(highlightResetsCount);
_highlightRemoves.reserve(highlightRemovesCount);
@ -147,10 +140,9 @@ void Transaction::merge(Transaction&& transaction) {
moveElements(_removedItems, transaction._removedItems);
moveElements(_updatedItems, transaction._updatedItems);
moveElements(_resetSelections, transaction._resetSelections);
moveElements(_addedTransitions, transaction._addedTransitions);
moveElements(_resetTransitions, transaction._resetTransitions);
moveElements(_queriedTransitions, transaction._queriedTransitions);
moveElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
moveElements(_reAppliedTransitions, transaction._reAppliedTransitions);
moveElements(_highlightResets, transaction._highlightResets);
moveElements(_highlightRemoves, transaction._highlightRemoves);
moveElements(_highlightQueries, transaction._highlightQueries);
@ -161,9 +153,8 @@ void Transaction::merge(const Transaction& transaction) {
copyElements(_removedItems, transaction._removedItems);
copyElements(_updatedItems, transaction._updatedItems);
copyElements(_resetSelections, transaction._resetSelections);
copyElements(_addedTransitions, transaction._addedTransitions);
copyElements(_resetTransitions, transaction._resetTransitions);
copyElements(_queriedTransitions, transaction._queriedTransitions);
copyElements(_reAppliedTransitions, transaction._reAppliedTransitions);
copyElements(_transitionFinishedOperators, transaction._transitionFinishedOperators);
copyElements(_highlightResets, transaction._highlightResets);
copyElements(_highlightRemoves, transaction._highlightRemoves);
@ -175,10 +166,9 @@ void Transaction::clear() {
_removedItems.clear();
_updatedItems.clear();
_resetSelections.clear();
_addedTransitions.clear();
_resetTransitions.clear();
_queriedTransitions.clear();
_transitionFinishedOperators.clear();
_reAppliedTransitions.clear();
_highlightResets.clear();
_highlightRemoves.clear();
_highlightQueries.clear();
@ -278,8 +268,7 @@ void Scene::processTransactionFrame(const Transaction& transaction) {
removeItems(transaction._removedItems);
// add transitions
transitionItems(transaction._addedTransitions);
reApplyTransitions(transaction._reAppliedTransitions);
resetTransitionItems(transaction._resetTransitions);
queryTransitionItems(transaction._queriedTransitions);
resetTransitionFinishedOperator(transaction._transitionFinishedOperators);
@ -384,7 +373,7 @@ void Scene::updateItems(const Transaction::Updates& transactions) {
}
}
void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
void Scene::resetTransitionItems(const Transaction::TransitionResets& transactions) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
if (!transitionStage) {
@ -420,15 +409,6 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
}
}
void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) {
for (auto itemId : transactions) {
// Access the true item
const auto& item = _items[itemId];
auto transitionId = item.getTransitionId();
setItemTransition(itemId, transitionId);
}
}
void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());

View file

@ -50,20 +50,18 @@ public:
void resetItem(ItemID id, const PayloadPointer& payload);
void removeItem(ItemID id);
bool hasRemovedItems() const { return !_removedItems.empty(); }
void addTransitionToItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
void removeTransitionFromItem(ItemID id);
void reApplyTransitionToItem(ItemID id);
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
void transitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
template <class T> void updateItem(ItemID id, std::function<void(T&)> func) {
updateItem(id, std::make_shared<UpdateFunctor<T>>(func));
}
void updateItem(ItemID id, const UpdateFunctorPointer& functor);
void updateItem(ItemID id) { updateItem(id, nullptr); }
// Transition (applied to an item) transactions
void resetTransitionOnItem(ItemID id, Transition::Type transition, ItemID boundId = render::Item::INVALID_ITEM_ID);
void removeTransitionFromItem(ItemID id);
void setTransitionFinishedOperator(ItemID id, TransitionFinishedFunc func);
void queryTransitionOnItem(ItemID id, TransitionQueryFunc func);
// Selection transactions
void resetSelection(const Selection& selection);
@ -83,11 +81,14 @@ protected:
using Reset = std::tuple<ItemID, PayloadPointer>;
using Remove = ItemID;
using Update = std::tuple<ItemID, UpdateFunctorPointer>;
using TransitionAdd = std::tuple<ItemID, Transition::Type, ItemID>;
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
using TransitionReset = std::tuple<ItemID, Transition::Type, ItemID>;
using TransitionRemove = ItemID;
using TransitionFinishedOperator = std::tuple<ItemID, TransitionFinishedFunc>;
using TransitionReApply = ItemID;
using TransitionQuery = std::tuple<ItemID, TransitionQueryFunc>;
using SelectionReset = Selection;
using HighlightReset = std::tuple<std::string, HighlightStyle>;
using HighlightRemove = std::string;
using HighlightQuery = std::tuple<std::string, SelectionHighlightQueryFunc>;
@ -95,11 +96,14 @@ protected:
using Resets = std::vector<Reset>;
using Removes = std::vector<Remove>;
using Updates = std::vector<Update>;
using TransitionAdds = std::vector<TransitionAdd>;
using TransitionQueries = std::vector<TransitionQuery>;
using TransitionResets = std::vector<TransitionReset>;
using TransitionRemoves = std::vector<TransitionRemove>;
using TransitionFinishedOperators = std::vector<TransitionFinishedOperator>;
using TransitionReApplies = std::vector<TransitionReApply>;
using TransitionQueries = std::vector<TransitionQuery>;
using SelectionResets = std::vector<SelectionReset>;
using HighlightResets = std::vector<HighlightReset>;
using HighlightRemoves = std::vector<HighlightRemove>;
using HighlightQueries = std::vector<HighlightQuery>;
@ -107,11 +111,14 @@ protected:
Resets _resetItems;
Removes _removedItems;
Updates _updatedItems;
TransitionAdds _addedTransitions;
TransitionQueries _queriedTransitions;
TransitionReApplies _reAppliedTransitions;
TransitionResets _resetTransitions;
TransitionRemoves _removeTransitions;
TransitionFinishedOperators _transitionFinishedOperators;
TransitionQueries _queriedTransitions;
SelectionResets _resetSelections;
HighlightResets _highlightResets;
HighlightRemoves _highlightRemoves;
HighlightQueries _highlightQueries;
@ -215,9 +222,10 @@ protected:
void resetTransitionFinishedOperator(const Transaction::TransitionFinishedOperators& transactions);
void removeItems(const Transaction::Removes& transactions);
void updateItems(const Transaction::Updates& transactions);
void transitionItems(const Transaction::TransitionAdds& transactions);
void reApplyTransitions(const Transaction::TransitionReApplies& transactions);
void resetTransitionItems(const Transaction::TransitionResets& transactions);
void queryTransitionItems(const Transaction::TransitionQueries& transactions);
void resetHighlights(const Transaction::HighlightResets& transactions);
void removeHighlights(const Transaction::HighlightRemoves& transactions);
void queryHighlights(const Transaction::HighlightQueries& transactions);