Starting on coloring support.

This commit is contained in:
Andrzej Kapolka 2013-05-09 16:26:51 -07:00
parent ecd12e0ac4
commit 78b37fe920

View file

@ -175,7 +175,7 @@ int mouseY = 0;
int mousePressed = 0; // true if mouse has been pressed (clear when finished) int mousePressed = 0; // true if mouse has been pressed (clear when finished)
// The current mode for mouse interaction // The current mode for mouse interaction
enum MouseMode { ADD_VOXEL_MODE, DELETE_VOXEL_MODE }; enum MouseMode { ADD_VOXEL_MODE, DELETE_VOXEL_MODE, COLOR_VOXEL_MODE };
MouseMode mouseMode = ADD_VOXEL_MODE; MouseMode mouseMode = ADD_VOXEL_MODE;
VoxelDetail mouseVoxel; // details of the voxel under the mouse cursor VoxelDetail mouseVoxel; // details of the voxel under the mouse cursor
@ -1653,7 +1653,8 @@ void key(unsigned char k, int x, int y) {
if (k == '%') ::sendVoxelServerAddScene(); // sends add scene command to voxel server if (k == '%') ::sendVoxelServerAddScene(); // sends add scene command to voxel server
if (k == '1') ::mouseMode = ADD_VOXEL_MODE; if (k == '1') ::mouseMode = ADD_VOXEL_MODE;
if (k == '2') ::mouseMode = DELETE_VOXEL_MODE; if (k == '2') ::mouseMode = DELETE_VOXEL_MODE;
if (k == '3') addVoxelInFrontOfAvatar(); if (k == '3') ::mouseMode = COLOR_VOXEL_MODE;
if (k == '4') addVoxelInFrontOfAvatar();
if (k == 'n' || k == 'N') if (k == 'n' || k == 'N')
{ {
noiseOn = !noiseOn; // Toggle noise noiseOn = !noiseOn; // Toggle noise
@ -1796,7 +1797,12 @@ void idle(void) {
::mouseVoxel.y += offset.y * ::mouseVoxel.s; ::mouseVoxel.y += offset.y * ::mouseVoxel.s;
::mouseVoxel.z += offset.z * ::mouseVoxel.s; ::mouseVoxel.z += offset.z * ::mouseVoxel.s;
} else { } else if (::mouseMode == COLOR_VOXEL_MODE) {
::mouseVoxel.red = 0;
::mouseVoxel.green = 255;
::mouseVoxel.blue = 0;
} else { // ::mouseMode == DELETE_VOXEL_MODE
// red indicates deletion // red indicates deletion
::mouseVoxel.red = 255; ::mouseVoxel.red = 255;
::mouseVoxel.green = ::mouseVoxel.blue = 0; ::mouseVoxel.green = ::mouseVoxel.blue = 0;
@ -1928,9 +1934,9 @@ void mouseFunc(int button, int state, int x, int y) {
case GLUT_LEFT_BUTTON: case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN && !menu.mouseClick(x, y)) { if (state == GLUT_DOWN && !menu.mouseClick(x, y)) {
mousePressed = 1; mousePressed = 1;
if (::mouseMode == ADD_VOXEL_MODE) { if (::mouseMode == ADD_VOXEL_MODE || ::mouseMode == COLOR_VOXEL_MODE) {
addVoxelUnderCursor(); addVoxelUnderCursor();
} else { // ::mouseMode == DELETE_VOXEL_MODE } else { // ::mouseMode == DELETE_VOXEL_MODE
deleteVoxelUnderCursor(); deleteVoxelUnderCursor();
} }
@ -1941,12 +1947,7 @@ void mouseFunc(int button, int state, int x, int y) {
case GLUT_RIGHT_BUTTON: case GLUT_RIGHT_BUTTON:
if (state == GLUT_DOWN) { if (state == GLUT_DOWN) {
if (::mouseMode == ADD_VOXEL_MODE) { deleteVoxelUnderCursor();
deleteVoxelUnderCursor();
} else { // ::mouseMode == DELETE_VOXEL_MODE
addVoxelUnderCursor();
}
} }
break; break;
} }