void ezNonUniformBoxManipulatorAdapter::Update() { m_Gizmo.SetVisible(m_bManipulatorIsVisible); ezObjectAccessorBase* pObjectAccessor = GetObjectAccessor(); const ezNonUniformBoxManipulatorAttribute* pAttr = static_cast<const ezNonUniformBoxManipulatorAttribute*>(m_pManipulatorAttr); if (pAttr->HasSixAxis()) { const float fNegX = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetNegXProperty())); const float fPosX = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetPosXProperty())); const float fNegY = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetNegYProperty())); const float fPosY = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetPosYProperty())); const float fNegZ = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetNegZProperty())); const float fPosZ = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetPosZProperty())); m_Gizmo.SetSize(ezVec3(fNegX, fNegY, fNegZ), ezVec3(fPosX, fPosY, fPosZ)); } else { const float fSizeX = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetSizeXProperty())); const float fSizeY = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetSizeYProperty())); const float fSizeZ = pObjectAccessor->Get<float>(m_pObject, GetProperty(pAttr->GetSizeZProperty())); m_Gizmo.SetSize(ezVec3(fSizeX, fSizeY, fSizeZ) * 0.5f, ezVec3(fSizeX, fSizeY, fSizeZ) * 0.5f, true); } m_Gizmo.SetTransformation(GetObjectTransform()); }
void ezCameraVisualizerAdapter::UpdateGizmoTransform() { ezTransform t = GetObjectTransform(); m_BoxGizmo.SetTransformation(t * m_LocalTransformFrustum); m_FrustumGizmo.SetTransformation(t * m_LocalTransformFrustum); m_NearPlaneGizmo.SetTransformation(t * m_LocalTransformNearPlane); m_FarPlaneGizmo.SetTransformation(t * m_LocalTransformFarPlane); }
void ezSphereVisualizerAdapter::UpdateGizmoTransform() { ezTransform t; t.m_qRotation.SetIdentity(); t.m_vScale.Set(m_Scale); t.m_vPosition = m_vPositionOffset; m_Gizmo.SetTransformation(GetObjectTransform() * t); }
void ezNonUniformBoxManipulatorAdapter::Finalize() { auto* pDoc = m_pObject->GetDocumentObjectManager()->GetDocument(); auto* pWindow = ezQtDocumentWindow::FindWindowByDocument(pDoc); ezQtEngineDocumentWindow* pEngineWindow = qobject_cast<ezQtEngineDocumentWindow*>(pWindow); EZ_ASSERT_DEV(pEngineWindow != nullptr, "Manipulators are only supported in engine document windows"); m_Gizmo.SetTransformation(GetObjectTransform()); m_Gizmo.SetOwner(pEngineWindow, nullptr); m_Gizmo.SetVisible(m_bManipulatorIsVisible); m_Gizmo.m_GizmoEvents.AddEventHandler(ezMakeDelegate(&ezNonUniformBoxManipulatorAdapter::GizmoEventHandler, this)); }
void ezDirectionVisualizerAdapter::UpdateGizmoTransform() { const ezDirectionVisualizerAttribute* pAttr = static_cast<const ezDirectionVisualizerAttribute*>(m_pVisualizerAttr); float fScale = pAttr->m_fScale; if (!pAttr->GetLengthProperty().IsEmpty()) { ezObjectAccessorBase* pObjectAccessor = GetObjectAccessor(); ezVariant value; pObjectAccessor->GetValue(m_pObject, GetProperty(pAttr->GetLengthProperty()), value); EZ_ASSERT_DEBUG(value.IsValid() && value.CanConvertTo<float>(), "Invalid property bound to ezDirectionVisualizerAttribute 'length'"); fScale *= value.ConvertTo<float>(); } const ezQuat axisRotation = GetBasisRotation(ezBasisAxis::PositiveX, pAttr->m_Axis); ezTransform t; t.m_qRotation = axisRotation; t.m_vScale = ezVec3(fScale); t.m_vPosition = axisRotation * ezVec3(fScale, 0, 0); m_Gizmo.SetTransformation(GetObjectTransform() * t); }
void ezNonUniformBoxManipulatorAdapter::UpdateGizmoTransform() { m_Gizmo.SetTransformation(GetObjectTransform()); }