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)
|
void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
|
||||||
{
|
{
|
||||||
QGraphicsView::mousePressEvent(e);
|
QGraphicsView::mousePressEvent(e);
|
||||||
auto thresh = devicePixelRatioF() * 10;
|
auto thresh = devicePixelRatioF() * 4;
|
||||||
auto findpoint = [&](int x, int y) -> int
|
auto findpoint = [&](int x, int y, bool incThresh = false) -> int
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_Points[m_Index].size(); i++)
|
for (int i = 0; i < m_Points[m_Index].size(); i++)
|
||||||
{
|
{
|
||||||
auto item = m_Points[m_Index][i];
|
auto item = m_Points[m_Index][i];
|
||||||
auto xdist = std::abs(item->pos().x() - x);
|
auto xdist = std::abs(item->pos().x() - x);
|
||||||
auto ydist = std::abs(item->pos().y() - y);
|
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;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,7 +242,7 @@ void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
|
|||||||
if (i != -1)
|
if (i != -1)
|
||||||
emit PointRemovedSignal(m_Index, i);
|
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();
|
QRectF rect = scene()->sceneRect();
|
||||||
auto points = m_Points[m_Index];
|
auto points = m_Points[m_Index];
|
||||||
@ -272,4 +273,4 @@ void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,6 +139,10 @@ public:
|
|||||||
virtual void SequenceOpenButtonClicked() { }
|
virtual void SequenceOpenButtonClicked() { }
|
||||||
|
|
||||||
//Params.
|
//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 SetCenter(double x, double y) { }
|
||||||
virtual void FillParamTablesAndPalette() { }
|
virtual void FillParamTablesAndPalette() { }
|
||||||
virtual void BrightnessChanged(double d) { }
|
virtual void BrightnessChanged(double d) { }
|
||||||
@ -421,6 +425,10 @@ public:
|
|||||||
virtual void SequenceOpenButtonClicked() override;
|
virtual void SequenceOpenButtonClicked() override;
|
||||||
|
|
||||||
//Params.
|
//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 SetCenter(double x, double y) override;
|
||||||
virtual void FillParamTablesAndPalette() override;
|
virtual void FillParamTablesAndPalette() override;
|
||||||
virtual void BrightnessChanged(double d) 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);
|
template <typename U> void SetEmberPrivate(const Ember<U>& ember, bool verbatim, bool updatePointer);
|
||||||
|
|
||||||
//Params.
|
//Params.
|
||||||
void ParamsToEmber(Ember<T>& ember);
|
template <typename U> void ParamsToEmberPrivate(Ember<U>& ember, bool basicParams);
|
||||||
|
|
||||||
//Xforms.
|
//Xforms.
|
||||||
void SetNormalizedWeightText(Xform<T>* xform);
|
void SetNormalizedWeightText(Xform<T>* xform);
|
||||||
|
@ -828,47 +828,57 @@ void FractoriumEmberController<T>::FillParamTablesAndPalette()
|
|||||||
/// Copy all GUI widget values on the parameters tab to the passed in ember.
|
/// Copy all GUI widget values on the parameters tab to the passed in ember.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ember">The ember to copy values to.</param>
|
/// <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>
|
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_Brightness = m_Fractorium->m_BrightnessSpin->value();//Color.
|
ember.m_Gamma = m_Fractorium->m_GammaSpin->value();
|
||||||
ember.m_Gamma = m_Fractorium->m_GammaSpin->value();
|
ember.m_GammaThresh = m_Fractorium->m_GammaThresholdSpin->value();
|
||||||
ember.m_GammaThresh = m_Fractorium->m_GammaThresholdSpin->value();
|
ember.m_Vibrancy = m_Fractorium->m_VibrancySpin->value();
|
||||||
ember.m_Vibrancy = m_Fractorium->m_VibrancySpin->value();
|
ember.m_HighlightPower = m_Fractorium->m_HighlightSpin->value();
|
||||||
ember.m_HighlightPower = m_Fractorium->m_HighlightSpin->value();
|
ember.m_K2 = m_Fractorium->m_K2Spin->value();
|
||||||
ember.m_K2 = m_Fractorium->m_K2Spin->value();
|
ember.m_SpatialFilterRadius = m_Fractorium->m_SpatialFilterWidthSpin->value();//Filter.
|
||||||
ember.m_Background.r = color.red() / 255.0;
|
ember.m_SpatialFilterType = eSpatialFilterType(m_Fractorium->m_SpatialFilterTypeCombo->currentIndex());
|
||||||
ember.m_Background.g = color.green() / 255.0;
|
ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value();
|
||||||
ember.m_Background.b = color.blue() / 255.0;
|
ember.m_TemporalFilterType = eTemporalFilterType(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex());
|
||||||
ember.m_PaletteMode = ePaletteMode(m_Fractorium->m_PaletteModeCombo->currentIndex());
|
ember.m_MinRadDE = m_Fractorium->m_DEFilterMinRadiusSpin->value();
|
||||||
ember.m_FinalRasW = m_Fractorium->m_WidthSpin->value();//Geometry.
|
ember.m_MaxRadDE = m_Fractorium->m_DEFilterMaxRadiusSpin->value();
|
||||||
ember.m_FinalRasH = m_Fractorium->m_HeightSpin->value();
|
ember.m_CurveDE = m_Fractorium->m_DECurveSpin->value();
|
||||||
ember.m_CenterX = m_Fractorium->m_CenterXSpin->value();
|
|
||||||
ember.m_CenterY = ember.m_RotCenterY = m_Fractorium->m_CenterYSpin->value();
|
if(basicParams)
|
||||||
ember.m_PixelsPerUnit = m_Fractorium->m_ScaleSpin->value();
|
return;
|
||||||
ember.m_Zoom = m_Fractorium->m_ZoomSpin->value();
|
|
||||||
ember.m_Rotate = m_Fractorium->m_RotateSpin->value();
|
auto color = m_Fractorium->ui.ColorTable->item(5, 1)->backgroundColor();
|
||||||
ember.m_CamZPos = m_Fractorium->m_ZPosSpin->value();
|
ember.m_Background.r = color.red() / 255.0;
|
||||||
ember.m_CamPerspective = m_Fractorium->m_PerspectiveSpin->value();
|
ember.m_Background.g = color.green() / 255.0;
|
||||||
ember.m_CamPitch = m_Fractorium->m_PitchSpin->value() * DEG_2_RAD_T;
|
ember.m_Background.b = color.blue() / 255.0;
|
||||||
ember.m_CamYaw = m_Fractorium->m_YawSpin->value() * DEG_2_RAD_T;
|
ember.m_PaletteMode = ePaletteMode(m_Fractorium->m_PaletteModeCombo->currentIndex());
|
||||||
ember.m_CamDepthBlur = m_Fractorium->m_DepthBlurSpin->value();
|
ember.m_FinalRasW = m_Fractorium->m_WidthSpin->value();//Geometry.
|
||||||
ember.m_SpatialFilterRadius = m_Fractorium->m_SpatialFilterWidthSpin->value();//Filter.
|
ember.m_FinalRasH = m_Fractorium->m_HeightSpin->value();
|
||||||
ember.m_SpatialFilterType = eSpatialFilterType(m_Fractorium->m_SpatialFilterTypeCombo->currentIndex());
|
ember.m_CenterX = m_Fractorium->m_CenterXSpin->value();
|
||||||
ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value();
|
ember.m_CenterY = ember.m_RotCenterY = m_Fractorium->m_CenterYSpin->value();
|
||||||
ember.m_TemporalFilterType = eTemporalFilterType(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex());
|
ember.m_PixelsPerUnit = m_Fractorium->m_ScaleSpin->value();
|
||||||
ember.m_MinRadDE = m_Fractorium->m_DEFilterMinRadiusSpin->value();
|
ember.m_Zoom = m_Fractorium->m_ZoomSpin->value();
|
||||||
ember.m_MaxRadDE = m_Fractorium->m_DEFilterMaxRadiusSpin->value();
|
ember.m_Rotate = m_Fractorium->m_RotateSpin->value();
|
||||||
ember.m_CurveDE = m_Fractorium->m_DECurveSpin->value();
|
ember.m_CamZPos = m_Fractorium->m_ZPosSpin->value();
|
||||||
ember.m_SubBatchSize = m_Fractorium->m_SbsSpin->value();
|
ember.m_CamPerspective = m_Fractorium->m_PerspectiveSpin->value();
|
||||||
ember.m_FuseCount = m_Fractorium->m_FuseSpin->value();
|
ember.m_CamPitch = m_Fractorium->m_PitchSpin->value() * DEG_2_RAD_T;
|
||||||
ember.m_RandPointRange = m_Fractorium->m_RandRangeSpin->value();
|
ember.m_CamYaw = m_Fractorium->m_YawSpin->value() * DEG_2_RAD_T;
|
||||||
ember.m_Quality = m_Fractorium->m_QualitySpin->value();
|
ember.m_CamDepthBlur = m_Fractorium->m_DepthBlurSpin->value();
|
||||||
ember.m_Supersample = m_Fractorium->m_SupersampleSpin->value();
|
ember.m_SubBatchSize = m_Fractorium->m_SbsSpin->value();
|
||||||
ember.m_AffineInterp = eAffineInterp(m_Fractorium->m_AffineInterpTypeCombo->currentIndex());
|
ember.m_FuseCount = m_Fractorium->m_FuseSpin->value();
|
||||||
ember.m_Interp = eInterp(m_Fractorium->m_InterpTypeCombo->currentIndex());
|
ember.m_RandPointRange = m_Fractorium->m_RandRangeSpin->value();
|
||||||
ember.SyncSize();
|
ember.m_Quality = m_Fractorium->m_QualitySpin->value();
|
||||||
|
ember.m_Supersample = m_Fractorium->m_SupersampleSpin->value();
|
||||||
|
ember.m_AffineInterp = eAffineInterp(m_Fractorium->m_AffineInterpTypeCombo->currentIndex());
|
||||||
|
ember.m_Interp = eInterp(m_Fractorium->m_InterpTypeCombo->currentIndex());
|
||||||
|
ember.SyncSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user