MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / undo

Method undo

Engine/source/environment/editors/guiRiverEditorCtrl.cpp:111–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111void GuiRiverEditorUndoAction::undo()
112{
113 River *river = NULL;
114 if ( !Sim::findObject( mObjId, river ) )
115 return;
116
117 // Temporarily save the Rivers current data.
118 F32 metersPerSeg = river->mMetersPerSegment;
119 Vector<RiverNode> nodes;
120 nodes.merge( river->mNodes );
121
122 // Restore the River properties saved in the UndoAction
123 river->mMetersPerSegment = mMetersPerSegment;
124
125 // Restore the Nodes saved in the UndoAction
126 river->mNodes.clear();
127 for ( U32 i = 0; i < mNodes.size(); i++ )
128 {
129 river->_addNode( mNodes[i].point, mNodes[i].width, mNodes[i].depth, mNodes[i].normal );
130 }
131
132 // Regenerate the River
133 river->regenerate();
134
135 // If applicable set the selected River and node
136 mRiverEditor->mSelRiver = river;
137 mRiverEditor->mSelNode = -1;
138
139 // Now save the previous River data in this UndoAction
140 // since an undo action must become a redo action and vice-versa
141 mMetersPerSegment = metersPerSeg;
142 mNodes.clear();
143 mNodes.merge( nodes );
144}
145
146bool GuiRiverEditorCtrl::onAdd()
147{

Callers

nothing calls this directly

Calls 6

findObjectFunction · 0.50
mergeMethod · 0.45
clearMethod · 0.45
sizeMethod · 0.45
_addNodeMethod · 0.45
regenerateMethod · 0.45

Tested by

no test coverage detected