App: rework ColorGradient and allow to easily extend it with further color models
This commit is contained in:
@@ -31,15 +31,57 @@
|
||||
using namespace App;
|
||||
|
||||
|
||||
ColorModelPack ColorModelPack::createRedGreenBlue()
|
||||
{
|
||||
ColorModelPack pack{ColorModelBlueGreenRed(),
|
||||
ColorModelGreenYellowRed(),
|
||||
ColorModelBlueCyanGreen(),
|
||||
"Red-Yellow-Green-Cyan-Blue"};
|
||||
return pack;
|
||||
}
|
||||
|
||||
ColorModelPack ColorModelPack::createBlueGreenRed()
|
||||
{
|
||||
ColorModelPack pack{ColorModelRedGreenBlue(),
|
||||
ColorModelGreenCyanBlue(),
|
||||
ColorModelRedYellowGreen(),
|
||||
"Blue-Cyan-Green-Yellow-Red"};
|
||||
return pack;
|
||||
}
|
||||
|
||||
ColorModelPack ColorModelPack::createWhiteBlack()
|
||||
{
|
||||
ColorModelPack pack{ColorModelBlackWhite(),
|
||||
ColorModelGrayWhite(),
|
||||
ColorModelBlackGray(),
|
||||
"White-Black"};
|
||||
return pack;
|
||||
}
|
||||
|
||||
ColorModelPack ColorModelPack::createBlackWhite()
|
||||
{
|
||||
ColorModelPack pack{ColorModelWhiteBlack(),
|
||||
ColorModelGrayBlack(),
|
||||
ColorModelWhiteGray(),
|
||||
"Black-White"};
|
||||
return pack;
|
||||
}
|
||||
|
||||
ColorModelPack ColorModelPack::createRedWhiteBlue()
|
||||
{
|
||||
ColorModelPack pack{ColorModelBlueWhiteRed(),
|
||||
ColorModelWhiteRed(),
|
||||
ColorModelBlueWhite(),
|
||||
"Red-White-Blue"};
|
||||
return pack;
|
||||
}
|
||||
|
||||
ColorField::ColorField ()
|
||||
: colorModel(ColorModelTria())
|
||||
{
|
||||
set(ColorModelTria(), -1.0f, 1.0f, 13);
|
||||
set(ColorModelBlueGreenRed(), -1.0f, 1.0f, 13);
|
||||
}
|
||||
|
||||
ColorField::ColorField (const ColorModel &rclModel, float fMin, float fMax, std::size_t usCt)
|
||||
: colorModel(ColorModelTria())
|
||||
{
|
||||
set(rclModel, fMin, fMax, usCt);
|
||||
}
|
||||
@@ -124,29 +166,43 @@ void ColorField::interpolate (Color clCol1, std::size_t usInd1, Color clCol2, st
|
||||
|
||||
|
||||
ColorGradient::ColorGradient ()
|
||||
: tColorModel(TRIA),
|
||||
tStyle(ZERO_BASED),
|
||||
: tStyle(ZERO_BASED),
|
||||
outsideGrayed(false),
|
||||
totalModel(ColorModelTria()),
|
||||
topModel(ColorModelTriaTop()),
|
||||
bottomModel(ColorModelTriaBottom())
|
||||
tColorModel(0)
|
||||
{
|
||||
createStandardPacks();
|
||||
setColorModel();
|
||||
set(-1.0f, 1.0f, 13, ZERO_BASED, false);
|
||||
}
|
||||
|
||||
ColorGradient::ColorGradient (float fMin, float fMax, std::size_t usCtColors, TStyle tS, bool bOG)
|
||||
: tColorModel(TRIA),
|
||||
tStyle(tS),
|
||||
: tStyle(tS),
|
||||
outsideGrayed(false),
|
||||
totalModel(ColorModelTria()),
|
||||
topModel(ColorModelTriaTop()),
|
||||
bottomModel(ColorModelTriaBottom())
|
||||
tColorModel(0)
|
||||
{
|
||||
createStandardPacks();
|
||||
setColorModel();
|
||||
set(fMin, fMax, usCtColors, tS, bOG);
|
||||
}
|
||||
|
||||
void ColorGradient::createStandardPacks()
|
||||
{
|
||||
modelPacks.push_back(ColorModelPack::createRedGreenBlue());
|
||||
modelPacks.push_back(ColorModelPack::createBlueGreenRed());
|
||||
modelPacks.push_back(ColorModelPack::createRedWhiteBlue());
|
||||
modelPacks.push_back(ColorModelPack::createWhiteBlack());
|
||||
modelPacks.push_back(ColorModelPack::createBlackWhite());
|
||||
}
|
||||
|
||||
std::vector<std::string> ColorGradient::getColorModelNames() const
|
||||
{
|
||||
std::vector<std::string> names;
|
||||
names.reserve(modelPacks.size());
|
||||
for (const auto& it : modelPacks)
|
||||
names.push_back(it.description);
|
||||
return names;
|
||||
}
|
||||
|
||||
void ColorGradient::set (float fMin, float fMax, std::size_t usCt, TStyle tS, bool bOG)
|
||||
{
|
||||
_fMin = std::min<float>(fMin, fMax);
|
||||
@@ -163,20 +219,20 @@ void ColorGradient::rebuild ()
|
||||
{
|
||||
case FLOW:
|
||||
{
|
||||
colorField1.set(totalModel, _fMin, _fMax, ctColors);
|
||||
colorField1.set(currentModelPack.totalModel, _fMin, _fMax, ctColors);
|
||||
break;
|
||||
}
|
||||
case ZERO_BASED:
|
||||
{
|
||||
if ((_fMin < 0.0f) && (_fMax > 0.0f))
|
||||
{
|
||||
colorField1.set(bottomModel, _fMin, 0.0f, ctColors / 2);
|
||||
colorField2.set(topModel, 0.0f, _fMax, ctColors / 2);
|
||||
colorField1.set(currentModelPack.bottomModel, _fMin, 0.0f, ctColors / 2);
|
||||
colorField2.set(currentModelPack.topModel, 0.0f, _fMax, ctColors / 2);
|
||||
}
|
||||
else if (_fMin >= 0.0f)
|
||||
colorField1.set(topModel, 0.0f, _fMax, ctColors);
|
||||
colorField1.set(currentModelPack.topModel, 0.0f, _fMax, ctColors);
|
||||
else
|
||||
colorField1.set(bottomModel, _fMin, 0.0f, ctColors);
|
||||
colorField1.set(currentModelPack.bottomModel, _fMin, 0.0f, ctColors);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -199,7 +255,7 @@ std::size_t ColorGradient::getMinColors () const
|
||||
return 2;
|
||||
}
|
||||
|
||||
void ColorGradient::setColorModel (TColorModel tModel)
|
||||
void ColorGradient::setColorModel (std::size_t tModel)
|
||||
{
|
||||
tColorModel = tModel;
|
||||
setColorModel();
|
||||
@@ -208,52 +264,23 @@ void ColorGradient::setColorModel (TColorModel tModel)
|
||||
|
||||
void ColorGradient::setColorModel ()
|
||||
{
|
||||
switch (tColorModel)
|
||||
{
|
||||
case TRIA:
|
||||
{
|
||||
totalModel = ColorModelTria();
|
||||
topModel = ColorModelTriaTop();
|
||||
bottomModel = ColorModelTriaBottom();
|
||||
break;
|
||||
}
|
||||
case INVERSE_TRIA:
|
||||
{
|
||||
totalModel = ColorModelInverseTria();
|
||||
topModel = ColorModelInverseTriaTop();
|
||||
bottomModel = ColorModelInverseTriaBottom();
|
||||
break;
|
||||
}
|
||||
case GRAY:
|
||||
{
|
||||
totalModel = ColorModelGray();
|
||||
topModel = ColorModelGrayTop();
|
||||
bottomModel = ColorModelGrayBottom();
|
||||
break;
|
||||
}
|
||||
case INVERSE_GRAY:
|
||||
{
|
||||
totalModel = ColorModelInverseGray();
|
||||
topModel = ColorModelInverseGrayTop();
|
||||
bottomModel = ColorModelInverseGrayBottom();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (tColorModel < modelPacks.size())
|
||||
currentModelPack = modelPacks[tColorModel];
|
||||
|
||||
switch (tStyle)
|
||||
{
|
||||
case FLOW:
|
||||
{
|
||||
colorField1.setColorModel(totalModel);
|
||||
colorField2.setColorModel(bottomModel);
|
||||
break;
|
||||
}
|
||||
case ZERO_BASED:
|
||||
{
|
||||
colorField1.setColorModel(topModel);
|
||||
colorField2.setColorModel(bottomModel);
|
||||
break;
|
||||
}
|
||||
case FLOW:
|
||||
{
|
||||
colorField1.setColorModel(currentModelPack.totalModel);
|
||||
colorField2.setColorModel(currentModelPack.bottomModel);
|
||||
break;
|
||||
}
|
||||
case ZERO_BASED:
|
||||
{
|
||||
colorField1.setColorModel(currentModelPack.topModel);
|
||||
colorField2.setColorModel(currentModelPack.bottomModel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ protected:
|
||||
class AppExport ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModel() = default;
|
||||
ColorModel (std::size_t usCt) {
|
||||
colors.resize(usCt);
|
||||
}
|
||||
@@ -65,136 +66,184 @@ public:
|
||||
std::vector<Color> colors;
|
||||
};
|
||||
|
||||
class AppExport ColorModelTria : public ColorModel
|
||||
class AppExport ColorModelBlueGreenRed : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelTria () : ColorModel(5)
|
||||
ColorModelBlueGreenRed () : ColorModel(5)
|
||||
{
|
||||
colors[0] = Color( 0, 0, 1);
|
||||
colors[1] = Color( 0, 1, 1);
|
||||
colors[2] = Color( 0, 1, 0);
|
||||
colors[3] = Color( 1, 1, 0);
|
||||
colors[4] = Color( 1, 0, 0);
|
||||
colors[0] = Color(0, 0, 1);
|
||||
colors[1] = Color(0, 1, 1);
|
||||
colors[2] = Color(0, 1, 0);
|
||||
colors[3] = Color(1, 1, 0);
|
||||
colors[4] = Color(1, 0, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelTriaBottom : public ColorModel
|
||||
class AppExport ColorModelBlueCyanGreen : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelTriaBottom () : ColorModel(3)
|
||||
ColorModelBlueCyanGreen () : ColorModel(3)
|
||||
{
|
||||
colors[0] = Color( 0, 0, 1);
|
||||
colors[1] = Color( 0, 1, 1);
|
||||
colors[2] = Color( 0, 1, 0);
|
||||
colors[0] = Color(0, 0, 1);
|
||||
colors[1] = Color(0, 1, 1);
|
||||
colors[2] = Color(0, 1, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelTriaTop : public ColorModel
|
||||
class AppExport ColorModelGreenYellowRed : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelTriaTop () : ColorModel(3)
|
||||
ColorModelGreenYellowRed () : ColorModel(3)
|
||||
{
|
||||
colors[0] = Color( 0, 1, 0);
|
||||
colors[1] = Color( 1, 1, 0);
|
||||
colors[2] = Color( 1, 0, 0);
|
||||
colors[0] = Color(0, 1, 0);
|
||||
colors[1] = Color(1, 1, 0);
|
||||
colors[2] = Color(1, 0, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseTria : public ColorModel
|
||||
class AppExport ColorModelRedGreenBlue : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseTria () : ColorModel(5)
|
||||
ColorModelRedGreenBlue () : ColorModel(5)
|
||||
{
|
||||
colors[0] = Color( 1, 0, 0);
|
||||
colors[1] = Color( 1, 1, 0);
|
||||
colors[2] = Color( 0, 1, 0);
|
||||
colors[3] = Color( 0, 1, 1);
|
||||
colors[4] = Color( 0, 0, 1);
|
||||
colors[0] = Color(1, 0, 0);
|
||||
colors[1] = Color(1, 1, 0);
|
||||
colors[2] = Color(0, 1, 0);
|
||||
colors[3] = Color(0, 1, 1);
|
||||
colors[4] = Color(0, 0, 1);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseTriaTop : public ColorModel
|
||||
class AppExport ColorModelGreenCyanBlue : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseTriaTop () : ColorModel(3)
|
||||
ColorModelGreenCyanBlue () : ColorModel(3)
|
||||
{
|
||||
colors[2] = Color( 0, 0, 1);
|
||||
colors[1] = Color( 0, 1, 1);
|
||||
colors[0] = Color( 0, 1, 0);
|
||||
colors[0] = Color(0, 1, 0);
|
||||
colors[1] = Color(0, 1, 1);
|
||||
colors[2] = Color(0, 0, 1);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseTriaBottom : public ColorModel
|
||||
class AppExport ColorModelRedYellowGreen : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseTriaBottom () : ColorModel(3)
|
||||
ColorModelRedYellowGreen () : ColorModel(3)
|
||||
{
|
||||
colors[2] = Color( 0, 1, 0);
|
||||
colors[1] = Color( 1, 1, 0);
|
||||
colors[0] = Color( 1, 0, 0);
|
||||
colors[0] = Color(1, 0, 0);
|
||||
colors[1] = Color(1, 1, 0);
|
||||
colors[2] = Color(0, 1, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelGray : public ColorModel
|
||||
class AppExport ColorModelBlueWhiteRed : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelGray () : ColorModel(2)
|
||||
ColorModelBlueWhiteRed () : ColorModel(5)
|
||||
{
|
||||
colors[0] = Color( 0, 0, 0);
|
||||
colors[1] = Color( 1, 1, 1);
|
||||
colors[0] = Color(0, 0, 1);
|
||||
colors[1] = Color(85.0/255, 170.0/255, 1);
|
||||
colors[2] = Color(1, 1, 1);
|
||||
colors[3] = Color(1, 85.0/255, 0);
|
||||
colors[4] = Color(1, 0, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelGrayBottom : public ColorModel
|
||||
class AppExport ColorModelBlueWhite : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelGrayBottom () : ColorModel(2)
|
||||
ColorModelBlueWhite () : ColorModel(3)
|
||||
{
|
||||
colors[0] = Color( 0.0f, 0.0f, 0.0f);
|
||||
colors[1] = Color( 0.5f, 0.5f, 0.5f);
|
||||
colors[0] = Color(0, 0, 1);
|
||||
colors[1] = Color(85.0/255, 170.0/255, 1);
|
||||
colors[2] = Color(1, 1, 1);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelGrayTop : public ColorModel
|
||||
class AppExport ColorModelWhiteRed : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelGrayTop () : ColorModel(2)
|
||||
ColorModelWhiteRed () : ColorModel(3)
|
||||
{
|
||||
colors[0] = Color( 0.5f, 0.5f, 0.5f);
|
||||
colors[1] = Color( 1.0f, 1.0f, 1.0f);
|
||||
colors[0] = Color(1, 1, 1);
|
||||
colors[1] = Color(1, 85.0/255, 0);
|
||||
colors[2] = Color(0, 1, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseGray : public ColorModel
|
||||
class AppExport ColorModelBlackWhite : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseGray () : ColorModel(2)
|
||||
ColorModelBlackWhite () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color( 1, 1, 1);
|
||||
colors[1] = Color( 0, 0, 0);
|
||||
colors[0] = Color(0, 0, 0);
|
||||
colors[1] = Color(1, 1, 1);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseGrayBottom : public ColorModel
|
||||
class AppExport ColorModelBlackGray : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseGrayBottom () : ColorModel(2)
|
||||
ColorModelBlackGray () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color( 1.0f, 1.0f, 1.0f);
|
||||
colors[1] = Color( 0.5f, 0.5f, 0.5f);
|
||||
colors[0] = Color(0.0f, 0.0f, 0.0f);
|
||||
colors[1] = Color(0.5f, 0.5f, 0.5f);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelInverseGrayTop : public ColorModel
|
||||
class AppExport ColorModelGrayWhite : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelInverseGrayTop () : ColorModel(2)
|
||||
ColorModelGrayWhite () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color( 0.5f, 0.5f, 0.5f);
|
||||
colors[1] = Color( 0.0f, 0.0f, 0.0f);
|
||||
colors[0] = Color(0.5f, 0.5f, 0.5f);
|
||||
colors[1] = Color(1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelWhiteBlack : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelWhiteBlack () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color(1, 1, 1);
|
||||
colors[1] = Color(0, 0, 0);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelWhiteGray : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelWhiteGray () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color(1.0f, 1.0f, 1.0f);
|
||||
colors[1] = Color(0.5f, 0.5f, 0.5f);
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport ColorModelGrayBlack : public ColorModel
|
||||
{
|
||||
public:
|
||||
ColorModelGrayBlack () : ColorModel(2)
|
||||
{
|
||||
colors[0] = Color(0.5f, 0.5f, 0.5f);
|
||||
colors[1] = Color(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
};
|
||||
|
||||
struct AppExport ColorModelPack
|
||||
{
|
||||
ColorModel totalModel = ColorModelBlueGreenRed();
|
||||
ColorModel topModel = ColorModelGreenYellowRed();
|
||||
ColorModel bottomModel = ColorModelBlueCyanGreen();
|
||||
std::string description;
|
||||
static ColorModelPack createRedGreenBlue();
|
||||
static ColorModelPack createBlueGreenRed();
|
||||
static ColorModelPack createWhiteBlack();
|
||||
static ColorModelPack createBlackWhite();
|
||||
static ColorModelPack createRedWhiteBlue();
|
||||
};
|
||||
|
||||
class AppExport ColorField
|
||||
{
|
||||
public:
|
||||
@@ -273,7 +322,6 @@ class AppExport ColorGradient
|
||||
{
|
||||
public:
|
||||
enum TStyle { FLOW, ZERO_BASED };
|
||||
enum TColorModel { TRIA, INVERSE_TRIA, GRAY, INVERSE_GRAY };
|
||||
|
||||
ColorGradient ();
|
||||
ColorGradient (float fMin, float fMax, std::size_t usCtColors, TStyle tS, bool bOG = false);
|
||||
@@ -290,23 +338,28 @@ public:
|
||||
TStyle getStyle () const { return tStyle; }
|
||||
void setOutsideGrayed (bool bGrayed) { outsideGrayed = bGrayed; }
|
||||
bool isOutsideGrayed () const { return outsideGrayed; }
|
||||
void setColorModel (TColorModel tModel);
|
||||
TColorModel getColorModelType () const { return tColorModel; }
|
||||
void setColorModel (std::size_t tModel);
|
||||
std::size_t getColorModelType () const { return tColorModel; }
|
||||
inline const ColorModel& getColorModel () const;
|
||||
std::vector<std::string> getColorModelNames() const;
|
||||
float getMinValue () const { return _fMin; }
|
||||
float getMaxValue () const { return _fMax; }
|
||||
|
||||
inline Color getColor (float fVal) const;
|
||||
inline std::size_t getColorIndex (float fVal) const;
|
||||
|
||||
protected:
|
||||
void createStandardPacks();
|
||||
|
||||
protected:
|
||||
ColorField colorField1, colorField2;
|
||||
TColorModel tColorModel;
|
||||
TStyle tStyle;
|
||||
float _fMin, _fMax;
|
||||
std::size_t ctColors;
|
||||
bool outsideGrayed;
|
||||
ColorModel totalModel, topModel, bottomModel;
|
||||
std::size_t tColorModel;
|
||||
ColorModelPack currentModelPack;
|
||||
std::vector<ColorModelPack> modelPacks;
|
||||
|
||||
void rebuild ();
|
||||
void setColorModel ();
|
||||
@@ -467,15 +520,15 @@ inline const ColorModel& ColorGradient::getColorModel () const
|
||||
if ( tStyle == ZERO_BASED )
|
||||
{
|
||||
if ( _fMax <= 0.0f )
|
||||
return bottomModel;
|
||||
return currentModelPack.bottomModel;
|
||||
else if ( _fMin >= 0.0f )
|
||||
return topModel;
|
||||
return currentModelPack.topModel;
|
||||
else
|
||||
return totalModel;
|
||||
return currentModelPack.totalModel;
|
||||
}
|
||||
else
|
||||
{
|
||||
return totalModel;
|
||||
return currentModelPack.totalModel;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,36 +63,22 @@ DlgSettingsColorGradientImp::~DlgSettingsColorGradientImp()
|
||||
// no need to delete child widgets, Qt does it all for us
|
||||
}
|
||||
|
||||
void DlgSettingsColorGradientImp::setColorModel( App::ColorGradient::TColorModel tModel)
|
||||
void DlgSettingsColorGradientImp::setColorModel(std::size_t index)
|
||||
{
|
||||
switch (tModel)
|
||||
{
|
||||
case App::ColorGradient::TRIA:
|
||||
ui->comboBoxModel->setCurrentIndex(0);
|
||||
break;
|
||||
case App::ColorGradient::INVERSE_TRIA:
|
||||
ui->comboBoxModel->setCurrentIndex(1);
|
||||
break;
|
||||
case App::ColorGradient::GRAY:
|
||||
ui->comboBoxModel->setCurrentIndex(2);
|
||||
break;
|
||||
case App::ColorGradient::INVERSE_GRAY:
|
||||
ui->comboBoxModel->setCurrentIndex(3);
|
||||
break;
|
||||
}
|
||||
ui->comboBoxModel->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
App::ColorGradient::TColorModel DlgSettingsColorGradientImp::colorModel() const
|
||||
std::size_t DlgSettingsColorGradientImp::colorModel() const
|
||||
{
|
||||
int item = ui->comboBoxModel->currentIndex();
|
||||
if ( item == 0 )
|
||||
return App::ColorGradient::TRIA;
|
||||
else if ( item == 1 )
|
||||
return App::ColorGradient::INVERSE_TRIA;
|
||||
else if ( item == 2 )
|
||||
return App::ColorGradient::GRAY;
|
||||
else
|
||||
return App::ColorGradient::INVERSE_GRAY;
|
||||
return static_cast<std::size_t>(ui->comboBoxModel->currentIndex());
|
||||
}
|
||||
|
||||
void DlgSettingsColorGradientImp::setColorModelNames(const std::vector<std::string>& names)
|
||||
{
|
||||
ui->comboBoxModel->clear();
|
||||
for (const auto& it : names) {
|
||||
ui->comboBoxModel->addItem(QString::fromStdString(it));
|
||||
}
|
||||
}
|
||||
|
||||
void DlgSettingsColorGradientImp::setColorStyle( App::ColorGradient::TStyle tStyle )
|
||||
|
||||
@@ -51,8 +51,9 @@ public:
|
||||
|
||||
/** @name Color model */
|
||||
//@{
|
||||
void setColorModel( App::ColorGradient::TColorModel tModel);
|
||||
App::ColorGradient::TColorModel colorModel() const;
|
||||
void setColorModel(std::size_t tModel);
|
||||
std::size_t colorModel() const;
|
||||
void setColorModelNames(const std::vector<std::string>&);
|
||||
//@}
|
||||
/** @name Color style */
|
||||
//@{
|
||||
|
||||
@@ -57,7 +57,7 @@ SoFCColorGradient::SoFCColorGradient() : _fMaxX(4.5f), _fMinX(4.0f), _fMaxY(4.0f
|
||||
labels->ref();
|
||||
|
||||
_cColGrad.setStyle(App::ColorGradient::FLOW);
|
||||
setColorModel( App::ColorGradient::TRIA );
|
||||
setColorModel(0);
|
||||
setRange(-0.5f, 0.5f, 1);
|
||||
}
|
||||
|
||||
@@ -235,9 +235,9 @@ std::vector<float> SoFCColorGradient::getMarkerValues(float fMin, float fMax, in
|
||||
return labels;
|
||||
}
|
||||
|
||||
void SoFCColorGradient::setColorModel( App::ColorGradient::TColorModel tModel )
|
||||
void SoFCColorGradient::setColorModel(std::size_t index)
|
||||
{
|
||||
_cColGrad.setColorModel( tModel );
|
||||
_cColGrad.setColorModel(index);
|
||||
rebuildGradient();
|
||||
}
|
||||
|
||||
@@ -324,6 +324,7 @@ bool SoFCColorGradient::customize()
|
||||
QWidget* parent = Gui::getMainWindow()->activeWindow();
|
||||
Gui::Dialog::DlgSettingsColorGradientImp dlg(parent);
|
||||
|
||||
dlg.setColorModelNames( _cColGrad.getColorModelNames() );
|
||||
dlg.setColorModel( _cColGrad.getColorModelType() );
|
||||
dlg.setColorStyle( _cColGrad.getStyle() );
|
||||
dlg.setOutGrayed( _cColGrad.isOutsideGrayed() );
|
||||
|
||||
@@ -81,10 +81,9 @@ protected:
|
||||
|
||||
virtual ~SoFCColorGradient();
|
||||
/**
|
||||
* Sets the color model of the underlying color gradient to \a tModel. \a tModel either can
|
||||
* be \c TRIA, \c INVERSE_TRIA, \c GRAY or \c INVERSE_GRAY
|
||||
* Sets the color model of the underlying color gradient to \a index.
|
||||
*/
|
||||
void setColorModel (App::ColorGradient::TColorModel tModel);
|
||||
void setColorModel (std::size_t index);
|
||||
/**
|
||||
* Sets the color style of the underlying color gradient to \a tStyle. \a tStyle either can
|
||||
* be \c FLOW or \c ZERO_BASED
|
||||
|
||||
@@ -55,7 +55,7 @@ SoFCColorLegend::SoFCColorLegend() : _fPosX(4.0f), _fPosY(4.0f)
|
||||
labels = new SoSeparator;
|
||||
labels->ref();
|
||||
|
||||
setColorModel( App::ColorGradient::TRIA );
|
||||
setColorModel(0);
|
||||
setRange(-0.5f,0.5f,1);
|
||||
}
|
||||
|
||||
@@ -186,9 +186,9 @@ void SoFCColorLegend::setRange( float fMin, float fMax, int prec )
|
||||
_cColRamp.setRange(fMin, fMax);
|
||||
}
|
||||
|
||||
void SoFCColorLegend::setColorModel( App::ColorGradient::TColorModel tModel )
|
||||
void SoFCColorLegend::setColorModel(std::size_t index)
|
||||
{
|
||||
_cColRamp.setColorModel( tModel );
|
||||
_cColRamp.setColorModel(index);
|
||||
App::ColorModel model = _cColRamp.getColorModel();
|
||||
int uCtColors = (int)model.getCountColors();
|
||||
|
||||
|
||||
@@ -52,10 +52,9 @@ public:
|
||||
*/
|
||||
void setRange( float fMin, float fMax, int prec=3 );
|
||||
/**
|
||||
* Sets the color model of the underlying color ramp to \a tModel. \a tModel either can
|
||||
* be \c TRIA, \c INVERSE_TRIA or \c GRAY
|
||||
* Sets the color model of the underlying color ramp to \a index.
|
||||
*/
|
||||
void setColorModel (App::ColorGradient::TColorModel tModel);
|
||||
void setColorModel (std::size_t index);
|
||||
|
||||
unsigned short getColorIndex (float fVal) const { return _cColRamp.getColorIndex(fVal); }
|
||||
App::Color getColor (float fVal) const { return _cColRamp.getColor(fVal); }
|
||||
|
||||
Reference in New Issue
Block a user