mirror of
https://github.com/overte-org/overte.git
synced 2025-07-04 02:49:22 +02:00
Remove re-coloring of voxels on hover or click, anticipating switch to scripted behavior
This commit is contained in:
parent
c6bf11361e
commit
9655e93432
2 changed files with 5 additions and 77 deletions
|
@ -135,7 +135,6 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
|
||||||
_isTouchPressed(false),
|
_isTouchPressed(false),
|
||||||
_mousePressed(false),
|
_mousePressed(false),
|
||||||
_isHoverVoxel(false),
|
_isHoverVoxel(false),
|
||||||
_isHoverVoxelSounding(false),
|
|
||||||
_mouseVoxelScale(1.0f / 1024.0f),
|
_mouseVoxelScale(1.0f / 1024.0f),
|
||||||
_mouseVoxelScaleInitialized(false),
|
_mouseVoxelScaleInitialized(false),
|
||||||
_justEditedVoxel(false),
|
_justEditedVoxel(false),
|
||||||
|
@ -1219,11 +1218,6 @@ void Application::mouseMoveEvent(QMouseEvent* event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool MAKE_SOUND_ON_VOXEL_HOVER = false;
|
|
||||||
const bool MAKE_SOUND_ON_VOXEL_CLICK = true;
|
|
||||||
const float HOVER_VOXEL_FREQUENCY = 7040.f;
|
|
||||||
const float HOVER_VOXEL_DECAY = 0.999f;
|
|
||||||
|
|
||||||
void Application::mousePressEvent(QMouseEvent* event) {
|
void Application::mousePressEvent(QMouseEvent* event) {
|
||||||
_controllerScriptingInterface.emitMousePressEvent(event); // send events to any registered scripts
|
_controllerScriptingInterface.emitMousePressEvent(event); // send events to any registered scripts
|
||||||
|
|
||||||
|
@ -1263,37 +1257,6 @@ void Application::mousePressEvent(QMouseEvent* event) {
|
||||||
pasteVoxels();
|
pasteVoxels();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Menu::getInstance()->isOptionChecked(MenuOption::VoxelDeleteMode) &&
|
|
||||||
MAKE_SOUND_ON_VOXEL_CLICK && _isHoverVoxel && !_isHoverVoxelSounding) {
|
|
||||||
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
|
||||||
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
|
||||||
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
|
||||||
_hoverVoxelOriginalColor[3] = 1;
|
|
||||||
const float RED_CLICK_FREQUENCY = 1000.f;
|
|
||||||
const float GREEN_CLICK_FREQUENCY = 1250.f;
|
|
||||||
const float BLUE_CLICK_FREQUENCY = 1330.f;
|
|
||||||
const float MIDDLE_A_FREQUENCY = 440.f;
|
|
||||||
float frequency = MIDDLE_A_FREQUENCY +
|
|
||||||
(_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY +
|
|
||||||
_hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY +
|
|
||||||
_hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f;
|
|
||||||
|
|
||||||
_audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY, false);
|
|
||||||
_isHoverVoxelSounding = true;
|
|
||||||
|
|
||||||
const float PERCENTAGE_TO_MOVE_TOWARD = 0.90f;
|
|
||||||
glm::vec3 newTarget = getMouseVoxelWorldCoordinates(_hoverVoxel);
|
|
||||||
glm::vec3 myPosition = _myAvatar->getPosition();
|
|
||||||
|
|
||||||
// If there is not an action tool set (add, delete, color), move to this voxel
|
|
||||||
if (Menu::getInstance()->isOptionChecked(MenuOption::ClickToFly) &&
|
|
||||||
!(Menu::getInstance()->isOptionChecked(MenuOption::VoxelAddMode) ||
|
|
||||||
Menu::getInstance()->isOptionChecked(MenuOption::VoxelDeleteMode) ||
|
|
||||||
Menu::getInstance()->isOptionChecked(MenuOption::VoxelColorMode))) {
|
|
||||||
_myAvatar->setMoveTarget(myPosition + (newTarget - myPosition) * PERCENTAGE_TO_MOVE_TOWARD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (event->button() == Qt::RightButton && Menu::getInstance()->isVoxelModeActionChecked()) {
|
} else if (event->button() == Qt::RightButton && Menu::getInstance()->isVoxelModeActionChecked()) {
|
||||||
deleteVoxelUnderCursor();
|
deleteVoxelUnderCursor();
|
||||||
}
|
}
|
||||||
|
@ -2039,44 +2002,11 @@ void Application::updateHoverVoxels(float deltaTime, float& distance, BoxFace& f
|
||||||
bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
|
bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
|
||||||
PerformanceWarning warn(showWarnings, "Application::updateHoverVoxels()");
|
PerformanceWarning warn(showWarnings, "Application::updateHoverVoxels()");
|
||||||
|
|
||||||
// If we have clicked on a voxel, update it's color
|
// Check for a new hover voxel
|
||||||
if (_isHoverVoxelSounding) {
|
if (!_mousePressed) {
|
||||||
VoxelTreeElement* hoveredNode = _voxels.getVoxelAt(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s);
|
{
|
||||||
if (hoveredNode) {
|
PerformanceWarning warn(showWarnings, "Application::updateHoverVoxels() _voxels.findRayIntersection()");
|
||||||
float bright = _audio.getCollisionSoundMagnitude();
|
_isHoverVoxel = _voxels.findRayIntersection(_mouseRayOrigin, _mouseRayDirection, _hoverVoxel, distance, face);
|
||||||
nodeColor clickColor = { 255 * bright + _hoverVoxelOriginalColor[0] * (1.f - bright),
|
|
||||||
_hoverVoxelOriginalColor[1] * (1.f - bright),
|
|
||||||
_hoverVoxelOriginalColor[2] * (1.f - bright), 1 };
|
|
||||||
hoveredNode->setColor(clickColor);
|
|
||||||
if (bright < 0.01f) {
|
|
||||||
hoveredNode->setColor(_hoverVoxelOriginalColor);
|
|
||||||
_isHoverVoxelSounding = false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Voxel is not found, clear all
|
|
||||||
_isHoverVoxelSounding = false;
|
|
||||||
_isHoverVoxel = false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Check for a new hover voxel
|
|
||||||
glm::vec4 oldVoxel(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s);
|
|
||||||
// only do this work if MAKE_SOUND_ON_VOXEL_HOVER or MAKE_SOUND_ON_VOXEL_CLICK is enabled,
|
|
||||||
// and make sure the tree is not already busy... because otherwise you'll have to wait.
|
|
||||||
if (!_mousePressed) {
|
|
||||||
{
|
|
||||||
PerformanceWarning warn(showWarnings, "Application::updateHoverVoxels() _voxels.findRayIntersection()");
|
|
||||||
_isHoverVoxel = _voxels.findRayIntersection(_mouseRayOrigin, _mouseRayDirection, _hoverVoxel, distance, face);
|
|
||||||
}
|
|
||||||
if (MAKE_SOUND_ON_VOXEL_HOVER && _isHoverVoxel &&
|
|
||||||
glm::vec4(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s) != oldVoxel) {
|
|
||||||
|
|
||||||
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
|
||||||
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
|
||||||
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
|
||||||
_hoverVoxelOriginalColor[3] = 1;
|
|
||||||
_audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY, false);
|
|
||||||
_isHoverVoxelSounding = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,8 +419,6 @@ private:
|
||||||
|
|
||||||
VoxelDetail _hoverVoxel; // Stuff about the voxel I am hovering or clicking
|
VoxelDetail _hoverVoxel; // Stuff about the voxel I am hovering or clicking
|
||||||
bool _isHoverVoxel;
|
bool _isHoverVoxel;
|
||||||
bool _isHoverVoxelSounding;
|
|
||||||
nodeColor _hoverVoxelOriginalColor;
|
|
||||||
|
|
||||||
VoxelDetail _mouseVoxel; // details of the voxel to be edited
|
VoxelDetail _mouseVoxel; // details of the voxel to be edited
|
||||||
float _mouseVoxelScale; // the scale for adding/removing voxels
|
float _mouseVoxelScale; // the scale for adding/removing voxels
|
||||||
|
|
Loading…
Reference in a new issue