History

Switching nudge to cut/paste implementation. Preliminary.

LionTurtle committed 13 years ago

Commit d9657891 parent 59943dc5 files · +58 −39Browse files

Showing the changes to interface/src/Application.cpp (1 of 5 files). Show all

Unified · Split

interface/src/Application.cpp+44−14
@@ -1287,22 +1287,52 @@ void Application::pasteVoxels() { · 1286 unmodified lines
1287 1287
1288void Application::nudgeVoxels() {1288void Application::nudgeVoxels() {
1289 if (Menu::getInstance()->isOptionChecked(MenuOption::VoxelNudgeMode)) {1289 if (Menu::getInstance()->isOptionChecked(MenuOption::VoxelNudgeMode)) {
1290 cutVoxels();
1291 unsigned char* calculatedOctCode = NULL;
1290 VoxelNode* selectedNode = _voxels.getVoxelAt(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);1292 VoxelNode* selectedNode = _voxels.getVoxelAt(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);
1291 1293
1294 // Recurse the clipboard tree, where everything is root relative, and send all the colored voxels to
1295 // the server as an set voxel message, this will also rebase the voxels to the new location
1296 SendVoxelsOperationArgs args;
1297
1298 // we only need the selected voxel to get the newBaseOctCode, which we can actually calculate from the
1299 // voxel size/position details. If we don't have an actual selectedNode then use the mouseVoxel to create a
1300 // target octalCode for where the user is pointing.
1292 if (selectedNode) {1301 if (selectedNode) {
1293 // glPushMatrix();1302 args.newBaseOctCode = selectedNode->getOctalCode();
1294 // glScalef(TREE_SCALE, TREE_SCALE, TREE_SCALE);1303 } else {
1295 // renderNudgeGrid(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);1304 args.newBaseOctCode = calculatedOctCode = pointToVoxel(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);
1296 // glPopMatrix();1305 }
1297 qDebug("UnNudged xyz: %f, %f, %f\n", _mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z);1306
1307 _sharedVoxelSystem.getTree()->recurseTreeWithOperation(sendVoxelsOperation, &args);
1308 glm::vec3 nudgeVec(0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s);
1309 _voxels.getVoxelTree()->nudgeSubTree(selectedNode, nudgeVec, _voxelEditSender);
1298 1310
1299 // nudge the node1311 if (_sharedVoxelSystem.getTree() != &_clipboard) {
1300 // glm::vec3 nudgeVec(_mouseVoxel.s, _mouseVoxel.s, _mouseVoxel.s);1312 _sharedVoxelSystem.killLocalVoxels();
1301 // glm::vec3 nudgeVec(0.5 * _mouseVoxel.s, 0.5 * _mouseVoxel.s, 0.5 * _mouseVoxel.s);1313 _sharedVoxelSystem.changeTree(&_clipboard);
1302 glm::vec3 nudgeVec(0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s);1314 }
1303 _voxels.getVoxelTree()->nudgeSubTree(selectedNode, nudgeVec, _voxelEditSender);1315
1316 _voxelEditSender.flushQueue();
1317
1318 if (calculatedOctCode) {
1319 delete[] calculatedOctCode;
1304 }1320 }
1305 }1321 }
1322
1323
1324
1325 // VoxelNode* selectedNode = _voxels.getVoxelAt(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);
1326
1327 // if (selectedNode) {
1328 // qDebug("UnNudged xyz: %f, %f, %f\n", _mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z);
1329
1330 // // nudge the node
1331 // // glm::vec3 nudgeVec(_mouseVoxel.s, _mouseVoxel.s, _mouseVoxel.s);
1332 // // glm::vec3 nudgeVec(0.5 * _mouseVoxel.s, 0.5 * _mouseVoxel.s, 0.5 * _mouseVoxel.s);
1333 // glm::vec3 nudgeVec(0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s, 0.25 * _mouseVoxel.s);
1334 // _voxels.getVoxelTree()->nudgeSubTree(selectedNode, nudgeVec, _voxelEditSender);
1335 // }
1306}1336}
1307 1337
1308void Application::setListenModeNormal() {1338void Application::setListenModeNormal() {
@@ -2278,10 +2308,10 @@ void Application::displaySide(Camera& whichCamera) { · 969 unmodified lines
2278 glPushMatrix();2308 glPushMatrix();
2279 glScalef(TREE_SCALE, TREE_SCALE, TREE_SCALE);2309 glScalef(TREE_SCALE, TREE_SCALE, TREE_SCALE);
2280 if (Menu::getInstance()->isOptionChecked(MenuOption::VoxelNudgeMode)) {2310 if (Menu::getInstance()->isOptionChecked(MenuOption::VoxelNudgeMode)) {
2281 VoxelNode* selectedNode = _voxels.getVoxelAt(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s);2311 // VoxelNode* selectedNode = _voxels.getVoxelAt(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s);
2282 if (selectedNode) {2312 // if (selectedNode) {
2283 renderNudgeGrid(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s);2313 renderNudgeGrid(_nudgeVoxel.x, _nudgeVoxel.y, _nudgeVoxel.z, _nudgeVoxel.s);
2284 }2314 // }
2285 } else {2315 } else {
2286 renderMouseVoxelGrid(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);2316 renderMouseVoxelGrid(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s);
2287 }2317 }