Skip to content

Commit 220e0c5

Browse files
author
tpat
committed
Revert "Revert "-Widget movement updates projection.""
This reverts commit 1012a0c.
1 parent 1012a0c commit 220e0c5

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/Interface/Modules/Render/ES/SRInterface.cc

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,11 @@ namespace SCIRun {
206206
//----------------------------------------------------------------------------------------------
207207
void SRInterface::inputMouseWheel(int32_t delta)
208208
{
209-
mCamera->mouseWheelEvent(delta, mZoomSpeed);
210-
updateCamera();
209+
if(!widgetSelected_)
210+
{
211+
mCamera->mouseWheelEvent(delta, mZoomSpeed);
212+
updateCamera();
213+
}
211214
}
212215

213216
//----------------------------------------------------------------------------------------------
@@ -603,18 +606,20 @@ namespace SCIRun {
603606
{
604607
gen::StaticCamera* cam = mCore.getStaticComponent<gen::StaticCamera>();
605608
glm::vec4 spos((float(2 * pos.x) - float(mScreenWidth)) / float(mScreenWidth),
606-
(float(mScreenHeight) - float(2 * pos.y)) / float(mScreenHeight),
607-
mSelectedPos.z, 1.0f);
609+
(float(mScreenHeight) - float(2 * pos.y)) / float(mScreenHeight),
610+
mSelectedPos.z, 1.0f);
611+
612+
float ssDepth = mSelectedPos.z * 0.5 + 0.5;
613+
float zFar = mCamera->getZFar();
614+
float zNear = mCamera->getZNear();
615+
float vDepth = 1.0/(ssDepth * (1.0/zFar - 1.0/zNear) + 1.0/zNear);
608616

617+
glm::vec4 transVec = glm::vec4(glm::vec3(spos - mSelectedPos) * glm::vec3(vDepth , vDepth, 1.0), 0.0f);
609618
mWidgetTransform = gen::Transform();
610-
mWidgetTransform.setPosition((spos - mSelectedPos).xyz());
611-
mWidgetTransform.transform = glm::inverse(cam->data.projIV) *
612-
mWidgetTransform.transform * cam->data.projIV;
613-
614-
spire::CerealHeap<gen::Transform>* contTrans =
615-
mCore.getOrCreateComponentContainer<gen::Transform>();
616-
std::pair<const gen::Transform*, size_t> component =
617-
contTrans->getComponent(mSelectedID);
619+
mWidgetTransform.setPosition((glm::inverse(cam->data.projIV) * transVec).xyz());
620+
621+
spire::CerealHeap<gen::Transform>* contTrans = mCore.getOrCreateComponentContainer<gen::Transform>();
622+
std::pair<const gen::Transform*, size_t> component = contTrans->getComponent(mSelectedID);
618623

619624
if (component.first != nullptr)
620625
contTrans->modifyIndex(mWidgetTransform, component.second, 0);

0 commit comments

Comments
 (0)