mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-02-01 10:30:08 -05:00
Color&Filter
This commit is contained in:
parent
e657eac9fe
commit
9d1abfce15
@ -218,16 +218,17 @@ void CurvesGraphicsView::paintEvent(QPaintEvent* e)
|
||||
void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
|
||||
{
|
||||
QGraphicsView::mousePressEvent(e);
|
||||
auto thresh = devicePixelRatioF() * 10;
|
||||
auto findpoint = [&](int x, int y) -> int
|
||||
auto thresh = devicePixelRatioF() * 4;
|
||||
auto findpoint = [&](int x, int y, bool incThresh = false) -> int
|
||||
{
|
||||
for (int i = 0; i < m_Points[m_Index].size(); i++)
|
||||
{
|
||||
auto item = m_Points[m_Index][i];
|
||||
auto xdist = std::abs(item->pos().x() - x);
|
||||
auto ydist = std::abs(item->pos().y() - y);
|
||||
auto threshAgain = incThresh ? thresh * 2 : thresh;
|
||||
|
||||
if (xdist < thresh && ydist < thresh)
|
||||
if (xdist < threshAgain && ydist < threshAgain)
|
||||
return i;
|
||||
}
|
||||
|
||||
@ -241,7 +242,7 @@ void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
|
||||
if (i != -1)
|
||||
emit PointRemovedSignal(m_Index, i);
|
||||
}
|
||||
else if (findpoint(e->pos().x(), e->pos().y()) == -1)
|
||||
else if (findpoint(e->pos().x(), e->pos().y(), true) == -1)
|
||||
{
|
||||
QRectF rect = scene()->sceneRect();
|
||||
auto points = m_Points[m_Index];
|
||||
|
@ -139,6 +139,10 @@ public:
|
||||
virtual void SequenceOpenButtonClicked() { }
|
||||
|
||||
//Params.
|
||||
virtual void ParamsToEmber(Ember<float>& ember, bool basicParams = false) { };
|
||||
#ifdef DO_DOUBLE
|
||||
virtual void ParamsToEmber(Ember<double>& ember, bool basicParams = false) { };
|
||||
#endif
|
||||
virtual void SetCenter(double x, double y) { }
|
||||
virtual void FillParamTablesAndPalette() { }
|
||||
virtual void BrightnessChanged(double d) { }
|
||||
@ -421,6 +425,10 @@ public:
|
||||
virtual void SequenceOpenButtonClicked() override;
|
||||
|
||||
//Params.
|
||||
virtual void ParamsToEmber(Ember<float>& ember, bool basicParams = false) override;
|
||||
#ifdef DO_DOUBLE
|
||||
virtual void ParamsToEmber(Ember<double>& ember, bool basicParams = false) override;
|
||||
#endif
|
||||
virtual void SetCenter(double x, double y) override;
|
||||
virtual void FillParamTablesAndPalette() override;
|
||||
virtual void BrightnessChanged(double d) override;
|
||||
@ -558,7 +566,7 @@ private:
|
||||
template <typename U> void SetEmberPrivate(const Ember<U>& ember, bool verbatim, bool updatePointer);
|
||||
|
||||
//Params.
|
||||
void ParamsToEmber(Ember<T>& ember);
|
||||
template <typename U> void ParamsToEmberPrivate(Ember<U>& ember, bool basicParams);
|
||||
|
||||
//Xforms.
|
||||
void SetNormalizedWeightText(Xform<T>* xform);
|
||||
|
@ -828,16 +828,33 @@ void FractoriumEmberController<T>::FillParamTablesAndPalette()
|
||||
/// Copy all GUI widget values on the parameters tab to the passed in ember.
|
||||
/// </summary>
|
||||
/// <param name="ember">The ember to copy values to.</param>
|
||||
/// <param name="basicParams">true to get just filter and colors.</param>
|
||||
template <typename T> void FractoriumEmberController<T>::ParamsToEmber(Ember<float>& ember, bool basicParams) { ParamsToEmberPrivate<float>(ember, basicParams); }
|
||||
#ifdef DO_DOUBLE
|
||||
template <typename T> void FractoriumEmberController<T>::ParamsToEmber(Ember<double>& ember, bool basicParams) { ParamsToEmberPrivate<double>(ember, basicParams); }
|
||||
#endif
|
||||
template <typename T>
|
||||
void FractoriumEmberController<T>::ParamsToEmber(Ember<T>& ember)
|
||||
template <typename U>
|
||||
void FractoriumEmberController<T>::ParamsToEmberPrivate(Ember<U>& ember, bool basicParams)
|
||||
{
|
||||
auto color = m_Fractorium->ui.ColorTable->item(5, 1)->backgroundColor();
|
||||
ember.m_Brightness = m_Fractorium->m_BrightnessSpin->value();//Color.
|
||||
ember.m_Gamma = m_Fractorium->m_GammaSpin->value();
|
||||
ember.m_GammaThresh = m_Fractorium->m_GammaThresholdSpin->value();
|
||||
ember.m_Vibrancy = m_Fractorium->m_VibrancySpin->value();
|
||||
ember.m_HighlightPower = m_Fractorium->m_HighlightSpin->value();
|
||||
ember.m_K2 = m_Fractorium->m_K2Spin->value();
|
||||
ember.m_SpatialFilterRadius = m_Fractorium->m_SpatialFilterWidthSpin->value();//Filter.
|
||||
ember.m_SpatialFilterType = eSpatialFilterType(m_Fractorium->m_SpatialFilterTypeCombo->currentIndex());
|
||||
ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value();
|
||||
ember.m_TemporalFilterType = eTemporalFilterType(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex());
|
||||
ember.m_MinRadDE = m_Fractorium->m_DEFilterMinRadiusSpin->value();
|
||||
ember.m_MaxRadDE = m_Fractorium->m_DEFilterMaxRadiusSpin->value();
|
||||
ember.m_CurveDE = m_Fractorium->m_DECurveSpin->value();
|
||||
|
||||
if(basicParams)
|
||||
return;
|
||||
|
||||
auto color = m_Fractorium->ui.ColorTable->item(5, 1)->backgroundColor();
|
||||
ember.m_Background.r = color.red() / 255.0;
|
||||
ember.m_Background.g = color.green() / 255.0;
|
||||
ember.m_Background.b = color.blue() / 255.0;
|
||||
@ -854,13 +871,6 @@ void FractoriumEmberController<T>::ParamsToEmber(Ember<T>& ember)
|
||||
ember.m_CamPitch = m_Fractorium->m_PitchSpin->value() * DEG_2_RAD_T;
|
||||
ember.m_CamYaw = m_Fractorium->m_YawSpin->value() * DEG_2_RAD_T;
|
||||
ember.m_CamDepthBlur = m_Fractorium->m_DepthBlurSpin->value();
|
||||
ember.m_SpatialFilterRadius = m_Fractorium->m_SpatialFilterWidthSpin->value();//Filter.
|
||||
ember.m_SpatialFilterType = eSpatialFilterType(m_Fractorium->m_SpatialFilterTypeCombo->currentIndex());
|
||||
ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value();
|
||||
ember.m_TemporalFilterType = eTemporalFilterType(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex());
|
||||
ember.m_MinRadDE = m_Fractorium->m_DEFilterMinRadiusSpin->value();
|
||||
ember.m_MaxRadDE = m_Fractorium->m_DEFilterMaxRadiusSpin->value();
|
||||
ember.m_CurveDE = m_Fractorium->m_DECurveSpin->value();
|
||||
ember.m_SubBatchSize = m_Fractorium->m_SbsSpin->value();
|
||||
ember.m_FuseCount = m_Fractorium->m_FuseSpin->value();
|
||||
ember.m_RandPointRange = m_Fractorium->m_RandRangeSpin->value();
|
||||
|
Loading…
Reference in New Issue
Block a user