From 8d4a01318b495f69a85cf986f24b88b68219d027 Mon Sep 17 00:00:00 2001 From: qewer33 Date: Tue, 19 Sep 2023 18:21:05 +0300 Subject: [PATCH 1/3] Gui: Transform dragger fixes --- src/Gui/SoFCCSysDragger.cpp | 79 ++++++++++++++++++--------------- src/Gui/SoFCCSysDragger.h | 2 + src/Gui/ViewProviderDragger.cpp | 6 +++ 3 files changed, 51 insertions(+), 36 deletions(-) diff --git a/src/Gui/SoFCCSysDragger.cpp b/src/Gui/SoFCCSysDragger.cpp index a248e26455..ea6936a6a5 100644 --- a/src/Gui/SoFCCSysDragger.cpp +++ b/src/Gui/SoFCCSysDragger.cpp @@ -49,8 +49,6 @@ #endif #include -#include "Gui/ViewParams.h" -#include "App/Color.h" #include "SoFCCSysDragger.h" #include "MainWindow.h" @@ -287,6 +285,7 @@ void TDragger::dragStart() translationIncrementCount.setValue(0); } + void TDragger::drag() { projector.setViewVolume(this->getViewVolume()); @@ -553,6 +552,7 @@ void TPlanarDragger::dragStart() translationIncrementXCount.setValue(0); translationIncrementYCount.setValue(0); } + void TPlanarDragger::drag() { projector.setViewVolume(this->getViewVolume()); @@ -952,6 +952,7 @@ int RDragger::roundIncrement(const float &radiansIn) return rCount; } + SO_KIT_SOURCE(SoFCCSysDragger) void SoFCCSysDragger::initClass() @@ -1056,40 +1057,11 @@ SoFCCSysDragger::SoFCCSysDragger() SO_KIT_INIT_INSTANCE(); // Colors - - SoBaseColor *color; - App::Color stdColor; - auto viewParams = Gui::ViewParams::instance(); - // Translator - color = SO_GET_ANY_PART(this, "xTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisXColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "yTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisYColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "zTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisZColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - // Planar Translator - color = SO_GET_ANY_PART(this, "xyPlanarTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisZColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "yzPlanarTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisXColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "zxPlanarTranslatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisYColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - // Rotator - color = SO_GET_ANY_PART(this, "xRotatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisXAltColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "yRotatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisYAltColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); - color = SO_GET_ANY_PART(this, "zRotatorColor", SoBaseColor); - stdColor.setPackedValue(viewParams->getAxisZAltColor()); - color->rgb.setValue(stdColor.r, stdColor.g, stdColor.b); + setAxisColors( + SbColor(1.0, 0, 0).getPackedValue(0.0f), + SbColor(0, 1.0, 0).getPackedValue(0.0f), + SbColor(0, 0, 1.0).getPackedValue(0.0f) + ); // Increments @@ -1468,6 +1440,41 @@ void SoFCCSysDragger::clearIncrementCounts() rotationIncrementCountZ.setValue(0); } +void SoFCCSysDragger::setAxisColors(unsigned long x, unsigned long y, unsigned long z) { + SbColor colorX; + SbColor colorY; + SbColor colorZ; + + float t = 0.0f; + colorX.setPackedValue(x, t); + colorY.setPackedValue(y, t); + colorZ.setPackedValue(z, t); + + SoBaseColor* color; + + // Translator + color = SO_GET_ANY_PART(this, "xTranslatorColor", SoBaseColor); + color->rgb.setValue(colorX[0], colorX[1], colorX[2]); + color = SO_GET_ANY_PART(this, "yTranslatorColor", SoBaseColor); + color->rgb.setValue(colorY[0], colorY[1], colorY[2]); + color = SO_GET_ANY_PART(this, "zTranslatorColor", SoBaseColor); + color->rgb.setValue(colorZ[0], colorZ[1], colorZ[2]); + // Planar Translator + color = SO_GET_ANY_PART(this, "xyPlanarTranslatorColor", SoBaseColor); + color->rgb.setValue(colorZ[0], colorZ[1], colorZ[2]); + color = SO_GET_ANY_PART(this, "yzPlanarTranslatorColor", SoBaseColor); + color->rgb.setValue(colorX[0], colorX[1], colorX[2]); + color = SO_GET_ANY_PART(this, "zxPlanarTranslatorColor", SoBaseColor); + color->rgb.setValue(colorY[0], colorY[1], colorY[2]); + // Rotator + color = SO_GET_ANY_PART(this, "xRotatorColor", SoBaseColor); + color->rgb.setValue(colorX[0], colorX[1], colorX[2]); + color = SO_GET_ANY_PART(this, "yRotatorColor", SoBaseColor); + color->rgb.setValue(colorY[0], colorY[1], colorY[2]); + color = SO_GET_ANY_PART(this, "zRotatorColor", SoBaseColor); + color->rgb.setValue(colorZ[0], colorZ[1], colorZ[2]); +} + // Visiblity API Functions // Translator diff --git a/src/Gui/SoFCCSysDragger.h b/src/Gui/SoFCCSysDragger.h index 9f76a68929..cabdaba223 100644 --- a/src/Gui/SoFCCSysDragger.h +++ b/src/Gui/SoFCCSysDragger.h @@ -278,6 +278,8 @@ public: SoIdleSensor idleSensor; //!< might be overkill, but want to make sure of performance. void setUpAutoScale(SoCamera *cameraIn); //!< used to setup the auto scaling of dragger. + void setAxisColors(unsigned long x, unsigned long y, unsigned long z); //!< set the axis colors. + //! @name Visibility Functions //@{ void showTranslationX(); //!< show the x translation dragger. diff --git a/src/Gui/ViewProviderDragger.cpp b/src/Gui/ViewProviderDragger.cpp index 42171bcd04..8b4cf5d83b 100644 --- a/src/Gui/ViewProviderDragger.cpp +++ b/src/Gui/ViewProviderDragger.cpp @@ -33,6 +33,7 @@ #include #include +#include "Gui/ViewParams.h" #include "Application.h" #include "BitmapFactory.h" @@ -137,6 +138,11 @@ bool ViewProviderDragger::setEdit(int ModNum) assert(!csysDragger); csysDragger = new SoFCCSysDragger(); + csysDragger->setAxisColors( + Gui::ViewParams::instance()->getAxisXColor(), + Gui::ViewParams::instance()->getAxisYColor(), + Gui::ViewParams::instance()->getAxisZColor() + ); csysDragger->draggerSize.setValue(0.05f); csysDragger->translation.setValue(tempTransform->translation.getValue()); csysDragger->rotation.setValue(tempTransform->rotation.getValue()); From cd4d3e450586820308b948ca94c95204410377ab Mon Sep 17 00:00:00 2001 From: qewer33 Date: Tue, 19 Sep 2023 18:26:19 +0300 Subject: [PATCH 2/3] Remove unnecessary parameters from ViewParams --- src/Gui/ViewParams.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Gui/ViewParams.h b/src/Gui/ViewParams.h index 91d8a2ceec..2d2087bd3a 100644 --- a/src/Gui/ViewParams.h +++ b/src/Gui/ViewParams.h @@ -64,11 +64,8 @@ public: FC_VIEW_PARAM(ShowSelectionBoundingBox,bool,Bool,false) \ FC_VIEW_PARAM(PropertyViewTimer, unsigned long, Unsigned, 100) \ FC_VIEW_PARAM(AxisXColor,unsigned long,Unsigned,0xCC333300) \ - FC_VIEW_PARAM(AxisXAltColor,unsigned long,Unsigned,0xCC4C4C00) \ FC_VIEW_PARAM(AxisYColor,unsigned long,Unsigned,0x33CC3300) \ - FC_VIEW_PARAM(AxisYAltColor,unsigned long,Unsigned,0x4CCC4C00) \ FC_VIEW_PARAM(AxisZColor,unsigned long,Unsigned,0x3333CC00) \ - FC_VIEW_PARAM(AxisZAltColor,unsigned long,Unsigned,0x4C4CCC00) \ #undef FC_VIEW_PARAM From 4c39dcb34784b5faddeddce67df2a226a8acb1d4 Mon Sep 17 00:00:00 2001 From: qewer33 Date: Tue, 19 Sep 2023 21:04:25 +0300 Subject: [PATCH 3/3] Gui: Transform dragger fix lint warnings --- src/Gui/SoFCCSysDragger.cpp | 6 +++--- src/Gui/SoFCCSysDragger.h | 2 +- src/Gui/ViewProviderDragger.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Gui/SoFCCSysDragger.cpp b/src/Gui/SoFCCSysDragger.cpp index ea6936a6a5..75794b10ce 100644 --- a/src/Gui/SoFCCSysDragger.cpp +++ b/src/Gui/SoFCCSysDragger.cpp @@ -1058,8 +1058,8 @@ SoFCCSysDragger::SoFCCSysDragger() // Colors setAxisColors( - SbColor(1.0, 0, 0).getPackedValue(0.0f), - SbColor(0, 1.0, 0).getPackedValue(0.0f), + SbColor(1.0, 0, 0).getPackedValue(0.0f), + SbColor(0, 1.0, 0).getPackedValue(0.0f), SbColor(0, 0, 1.0).getPackedValue(0.0f) ); @@ -1475,7 +1475,7 @@ void SoFCCSysDragger::setAxisColors(unsigned long x, unsigned long y, unsigned l color->rgb.setValue(colorZ[0], colorZ[1], colorZ[2]); } -// Visiblity API Functions +// Visibility API Functions // Translator void SoFCCSysDragger::showTranslationX() diff --git a/src/Gui/SoFCCSysDragger.h b/src/Gui/SoFCCSysDragger.h index cabdaba223..6779907e30 100644 --- a/src/Gui/SoFCCSysDragger.h +++ b/src/Gui/SoFCCSysDragger.h @@ -94,7 +94,7 @@ private: * 'translationIncrementYCount' multiplied with * 'translationIncrement' for a full double * precision vector scalar. - * + * * @author qewer33 */ class TPlanarDragger : public SoDragger diff --git a/src/Gui/ViewProviderDragger.cpp b/src/Gui/ViewProviderDragger.cpp index 8b4cf5d83b..89b2ddb9cb 100644 --- a/src/Gui/ViewProviderDragger.cpp +++ b/src/Gui/ViewProviderDragger.cpp @@ -139,8 +139,8 @@ bool ViewProviderDragger::setEdit(int ModNum) assert(!csysDragger); csysDragger = new SoFCCSysDragger(); csysDragger->setAxisColors( - Gui::ViewParams::instance()->getAxisXColor(), - Gui::ViewParams::instance()->getAxisYColor(), + Gui::ViewParams::instance()->getAxisXColor(), + Gui::ViewParams::instance()->getAxisYColor(), Gui::ViewParams::instance()->getAxisZColor() ); csysDragger->draggerSize.setValue(0.05f);