diff --git a/src/Gui/SoFCCSysDragger.cpp b/src/Gui/SoFCCSysDragger.cpp
index a248e26455..75794b10ce 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,7 +1440,42 @@ void SoFCCSysDragger::clearIncrementCounts()
rotationIncrementCountZ.setValue(0);
}
-// Visiblity API Functions
+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]);
+}
+
+// Visibility API Functions
// Translator
void SoFCCSysDragger::showTranslationX()
diff --git a/src/Gui/SoFCCSysDragger.h b/src/Gui/SoFCCSysDragger.h
index 9f76a68929..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
@@ -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/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
diff --git a/src/Gui/ViewProviderDragger.cpp b/src/Gui/ViewProviderDragger.cpp
index 42171bcd04..89b2ddb9cb 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());