diff --git a/common/camera.cpp b/common/camera.cpp index 27fde10e..2b0cce5c 100644 --- a/common/camera.cpp +++ b/common/camera.cpp @@ -179,6 +179,36 @@ bool lcCamera::SetProjection(lcCameraProjection CameraProjection) return true; } +bool lcCamera::SetFOV(float Fovy) +{ + if (m_fovy == Fovy) + return false; + + m_fovy = Fovy; + + return true; +} + +bool lcCamera::SetNearPlane(float NearPlane) +{ + if (m_zNear == NearPlane) + return false; + + m_zNear = NearPlane; + + return true; +} + +bool lcCamera::SetFarPlane(float FarPlane) +{ + if (m_zFar == FarPlane) + return false; + + m_zFar = FarPlane; + + return true; +} + void lcCamera::SaveLDraw(QTextStream& Stream) const { const QLatin1String LineEnding("\r\n"); @@ -727,8 +757,14 @@ bool lcCamera::SetPropertyValue(lcObjectPropertyId PropertyId, lcStep Step, bool return SetProjection(static_cast(Value.toInt())); case lcObjectPropertyId::CameraFOV: + return SetFOV(Value.toFloat()); + case lcObjectPropertyId::CameraNear: + return SetNearPlane(Value.toFloat()); + case lcObjectPropertyId::CameraFar: + return SetFarPlane(Value.toFloat()); + case lcObjectPropertyId::CameraPositionX: case lcObjectPropertyId::CameraPositionY: case lcObjectPropertyId::CameraPositionZ: diff --git a/common/camera.h b/common/camera.h index f0bc2d01..f19b6435 100644 --- a/common/camera.h +++ b/common/camera.h @@ -90,6 +90,9 @@ public: } bool SetProjection(lcCameraProjection CameraProjection); + bool SetFOV(float Fovy); + bool SetNearPlane(float NearPlane); + bool SetFarPlane(float FarPlane); quint32 GetAllowedTransforms() const override { diff --git a/common/lc_model.cpp b/common/lc_model.cpp index 91501a13..2277dcbb 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -3834,48 +3834,6 @@ void lcModel::SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraPro gMainWindow->UpdateSelectedObjects(false); } -void lcModel::SetCameraFOV(lcCamera* Camera, float FOV, bool Checkpoint) -{ - if (Camera->m_fovy == FOV) - return; - - Camera->m_fovy = FOV; - Camera->UpdatePosition(mCurrentStep); - - if (Checkpoint) - SaveCheckpoint(tr("Changing FOV")); - - UpdateAllViews(); -} - -void lcModel::SetCameraZNear(lcCamera* Camera, float ZNear, bool Checkpoint) -{ - if (Camera->m_zNear == ZNear) - return; - - Camera->m_zNear = ZNear; - Camera->UpdatePosition(mCurrentStep); - - if (Checkpoint) - SaveCheckpoint(tr("Editing Camera")); - - UpdateAllViews(); -} - -void lcModel::SetCameraZFar(lcCamera* Camera, float ZFar, bool Checkpoint) -{ - if (Camera->m_zFar == ZFar) - return; - - Camera->m_zFar = ZFar; - Camera->UpdatePosition(mCurrentStep); - - if (Checkpoint) - SaveCheckpoint(tr("Editing Camera")); - - UpdateAllViews(); -} - void lcModel::SetObjectsProperty(const std::vector& Objects, lcObjectPropertyId PropertyId, QVariant Value, bool AddUndo) { bool Modified = false; diff --git a/common/lc_model.h b/common/lc_model.h index c68e7829..e2b143c2 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -392,9 +392,6 @@ public: void EndPropertyEdit(lcObjectPropertyId PropertyId, bool Accept); void SetCameraProjection(lcCamera* Camera, lcCameraProjection CameraProjection); - void SetCameraFOV(lcCamera* Camera, float FOV, bool Checkpoint); - void SetCameraZNear(lcCamera* Camera, float ZNear, bool Checkpoint); - void SetCameraZFar(lcCamera* Camera, float ZFar, bool Checkpoint); void ShowPropertiesDialog(); void ShowSelectByNameDialog(); diff --git a/common/lc_propertieswidget.cpp b/common/lc_propertieswidget.cpp index 86a103a8..9223b2e1 100644 --- a/common/lc_propertieswidget.cpp +++ b/common/lc_propertieswidget.cpp @@ -287,6 +287,7 @@ void lcPropertiesWidget::FloatChanged(const QString& TextValue) float Value = lcParseValueLocalized(TextValue); ChangeFloatValue(PropertyId, Value, true); + qDebug() << Value; } void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float Value, bool Dragging) @@ -461,17 +462,9 @@ void lcPropertiesWidget::ChangeFloatValue(lcObjectPropertyId PropertyId, float V } else if (Camera) { - if (PropertyId == lcObjectPropertyId::CameraFOV) + if (PropertyId == lcObjectPropertyId::CameraFOV || PropertyId == lcObjectPropertyId::CameraNear || PropertyId == lcObjectPropertyId::CameraFar) { - Model->SetCameraFOV(Camera, Value, !Dragging); - } - else if (PropertyId == lcObjectPropertyId::CameraNear) - { - Model->SetCameraZNear(Camera, Value, !Dragging); - } - else if (PropertyId == lcObjectPropertyId::CameraFar) - { - Model->SetCameraZFar(Camera, Value, !Dragging); + Model->SetObjectsProperty(mFocusObject ? std::vector{ mFocusObject } : mSelection, PropertyId, Value, !Dragging); } } @@ -1164,8 +1157,8 @@ void lcPropertiesWidget::CreateWidgets() AddSpacing(); AddFloatProperty(lcObjectPropertyId::CameraFOV, tr("FOV"), tr("Field of view in degrees"), false, 0.1f, 179.9f); - AddFloatProperty(lcObjectPropertyId::CameraNear, tr("Near"), tr("Near clipping distance"), false, 0.001f, FLT_MAX); - AddFloatProperty(lcObjectPropertyId::CameraFar, tr("Far"), tr("Far clipping distance"), false, 0.001f, FLT_MAX); + AddFloatProperty(lcObjectPropertyId::CameraNear, tr("Near"), tr("Near clipping distance"), false, 0.1f, FLT_MAX); + AddFloatProperty(lcObjectPropertyId::CameraFar, tr("Far"), tr("Far clipping distance"), false, 0.1f, FLT_MAX); AddSpacing(); diff --git a/common/object.cpp b/common/object.cpp index ff818bc7..78269738 100644 --- a/common/object.cpp +++ b/common/object.cpp @@ -18,24 +18,30 @@ QString lcObject::GetCheckpointString(lcObjectPropertyId PropertyId) switch (PropertyId) { case lcObjectPropertyId::PieceId: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Piece Id"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Piece"); case lcObjectPropertyId::PieceColor: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Piece Color"); + return QT_TRANSLATE_NOOP("Checkpoint", "Chang Piece Color"); case lcObjectPropertyId::PieceStepShow: case lcObjectPropertyId::PieceStepHide: break; case lcObjectPropertyId::CameraName: - return QT_TRANSLATE_NOOP("Checkpoint", "Renaming Camera"); + return QT_TRANSLATE_NOOP("Checkpoint", "Rename Camera"); case lcObjectPropertyId::CameraProjection: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Camera Projection"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Camera Projection"); case lcObjectPropertyId::CameraFOV: + return QT_TRANSLATE_NOOP("Checkpoint", "Change Camera FOV"); + case lcObjectPropertyId::CameraNear: + return QT_TRANSLATE_NOOP("Checkpoint", "Change Camera Near Plane"); + case lcObjectPropertyId::CameraFar: + return QT_TRANSLATE_NOOP("Checkpoint", "Change Camera Far Plane"); + case lcObjectPropertyId::CameraPositionX: case lcObjectPropertyId::CameraPositionY: case lcObjectPropertyId::CameraPositionZ: @@ -48,56 +54,56 @@ QString lcObject::GetCheckpointString(lcObjectPropertyId PropertyId) break; case lcObjectPropertyId::LightName: - return QT_TRANSLATE_NOOP("Checkpoint", "Renaming Light"); + return QT_TRANSLATE_NOOP("Checkpoint", "Rename Light"); case lcObjectPropertyId::LightType: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Type"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Type"); case lcObjectPropertyId::LightColor: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Color"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Color"); case lcObjectPropertyId::LightBlenderPower: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Blender Power"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Blender Power"); case lcObjectPropertyId::LightPOVRayPower: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light POV-Ray Power"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light POV-Ray Power"); case lcObjectPropertyId::LightCastShadow: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Shadow"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Shadow"); case lcObjectPropertyId::LightPOVRayFadeDistance: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light POV-Ray Fade Distance"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light POV-Ray Fade Distance"); case lcObjectPropertyId::LightPOVRayFadePower: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light POV-Ray Fade Power"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light POV-Ray Fade Power"); case lcObjectPropertyId::LightBlenderRadius: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Blender Radius"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Blender Radius"); case lcObjectPropertyId::LightBlenderAngle: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Light Blender Angle"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Light Blender Angle"); case lcObjectPropertyId::LightAreaSizeX: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Area Light X Size"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Area Light X Size"); case lcObjectPropertyId::LightAreaSizeY: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Area Light Y Size"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Area Light Y Size"); case lcObjectPropertyId::LightSpotConeAngle: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Spot Light Cone Angle"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Spot Light Cone Angle"); case lcObjectPropertyId::LightSpotPenumbraAngle: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Spot Light Penumbra Angle"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Spot Light Penumbra Angle"); case lcObjectPropertyId::LightPOVRaySpotTightness: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Spot Light POV-Ray Tightness"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Spot Light POV-Ray Tightness"); case lcObjectPropertyId::LightAreaShape: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Area Light Shape"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Area Light Shape"); case lcObjectPropertyId::LightPOVRayAreaGridX: case lcObjectPropertyId::LightPOVRayAreaGridY: - return QT_TRANSLATE_NOOP("Checkpoint", "Changing Area Light POV-Ray Grid"); + return QT_TRANSLATE_NOOP("Checkpoint", "Change Area Light POV-Ray Grid"); case lcObjectPropertyId::ObjectPositionX: case lcObjectPropertyId::ObjectPositionY: