diff --git a/toonz/sources/tnztools/fullcolorbrushtool.cpp b/toonz/sources/tnztools/fullcolorbrushtool.cpp index 8b4b7d2..a2f3c28 100644 --- a/toonz/sources/tnztools/fullcolorbrushtool.cpp +++ b/toonz/sources/tnztools/fullcolorbrushtool.cpp @@ -306,7 +306,7 @@ bool FullColorBrushTool::askWrite(const TRect &rect) { bool FullColorBrushTool::preLeftButtonDown() { m_modifierAssistants->drawOnly = !FullcolorAssistants; - m_inputmanager.drawPreview = false; //! m_modifierAssistants->drawOnly; + m_inputmanager.drawPreview = false; //!m_modifierAssistants->drawOnly; m_inputmanager.clearModifiers(); m_inputmanager.addModifier(TInputModifierP(m_modifierTangents.getPointer())); diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.cpp b/toonz/sources/tnztools/toonzrasterbrushtool.cpp index 488a77b..1025128 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.cpp +++ b/toonz/sources/tnztools/toonzrasterbrushtool.cpp @@ -55,6 +55,7 @@ TEnv::DoubleVar RasterBrushHardness("RasterBrushHardness", 100); TEnv::DoubleVar RasterBrushModifierSize("RasterBrushModifierSize", 0); TEnv::StringVar RasterBrushPreset("RasterBrushPreset", ""); TEnv::IntVar BrushLockAlpha("InknpaintBrushLockAlpha", 0); +TEnv::IntVar RasterBrushAssistants("RasterBrushAssistants", 0); //------------------------------------------------------------------- #define CUSTOM_WSTR L"" @@ -399,19 +400,6 @@ namespace { //------------------------------------------------------------------- -void addStrokeToImage(TTool::Application *application, const TVectorImageP &vi, - TStroke *stroke, bool breakAngles, bool frameCreated, - bool levelCreated, TXshSimpleLevel *sLevel = NULL, - TFrameId id = TFrameId::NO_FRAME) { - QMutexLocker lock(vi->getMutex()); - addStroke(application, vi.getPointer(), stroke, breakAngles, frameCreated, - levelCreated, sLevel, id); - // la notifica viene gia fatta da addStroke! - // getApplication()->getCurrentTool()->getTool()->notifyImageChanged(); -} - -//--------------------------------------------------------------------------------------------------------- - enum DrawOrder { OverAll = 0, UnderAll, PaletteOrder }; void getAboveStyleIdSet(int styleId, TPaletteP palette, @@ -630,15 +618,6 @@ double computeThickness(double pressure, const TDoublePairProperty &property) { return (thick0 + (thick1 - thick0) * t) * 0.5; } -//--------------------------------------------------------------------------------------------------------- - -int computeThickness(double pressure, const TIntPairProperty &property) { - double t = pressure * pressure * pressure; - int thick0 = property.getValue().first; - int thick1 = property.getValue().second; - return tround(thick0 + (thick1 - thick0) * t); -} - } // namespace //-------------------------------------------------------------------------------------------------- @@ -877,6 +856,7 @@ ToonzRasterBrushTool::ToonzRasterBrushTool(std::string name, int targetType) , m_pressure("Pressure", true) , m_modifierSize("ModifierSize", -3, 3, 0, true) , m_modifierLockAlpha("Lock Alpha", false) + , m_assistants("Assistants", true) , m_targetType(targetType) , m_enabled(false) , m_isPrompting(false) @@ -895,6 +875,7 @@ ToonzRasterBrushTool::ToonzRasterBrushTool(std::string name, int targetType) m_prop[0].bind(m_modifierSize); m_prop[0].bind(m_modifierLockAlpha); m_prop[0].bind(m_pencil); + m_prop[0].bind(m_assistants); m_pencil.setId("PencilMode"); m_drawOrder.addValue(L"Over All"); @@ -1118,6 +1099,7 @@ void ToonzRasterBrushTool::updateTranslation() { m_pencil.setQStringName(tr("Pencil")); m_pressure.setQStringName(tr("Pressure")); m_modifierLockAlpha.setQStringName(tr("Lock Alpha")); + m_assistants.setQStringName(tr("Assistants")); } //--------------------------------------------------------------------------------------------------- @@ -1174,8 +1156,8 @@ bool ToonzRasterBrushTool::askWrite(const TRect &rect) { bool ToonzRasterBrushTool::preLeftButtonDown() { int smoothRadius = (int)round(m_smooth.getValue()); - m_modifierAssistants->drawOnly = true; - m_inputmanager.drawPreview = !m_modifierAssistants->drawOnly; + m_modifierAssistants->drawOnly = !RasterBrushAssistants; + m_inputmanager.drawPreview = false; //!m_modifierAssistants->drawOnly; m_inputmanager.clearModifiers(); m_inputmanager.addModifier(TInputModifierP(m_modifierTangents.getPointer())); @@ -1774,6 +1756,7 @@ bool ToonzRasterBrushTool::onPropertyChanged(std::string propertyName) { RasterBrushHardness = m_hardness.getValue(); RasterBrushModifierSize = m_modifierSize.getValue(); BrushLockAlpha = m_modifierLockAlpha.getValue(); + RasterBrushAssistants = m_assistants.getValue(); // Recalculate/reset based on changed settings if (propertyName == m_rasThickness.getName()) { @@ -1781,8 +1764,6 @@ bool ToonzRasterBrushTool::onPropertyChanged(std::string propertyName) { m_maxThick = m_rasThickness.getValue().second; } - if (propertyName == m_hardness.getName()) setWorkAndBackupImages(); - if (propertyName == m_hardness.getName() || propertyName == m_rasThickness.getName()) { m_brushPad = getBrushPad(m_rasThickness.getValue().second, @@ -1845,13 +1826,12 @@ void ToonzRasterBrushTool::loadPreset() { m_pressure.setValue(preset.m_pressure); m_modifierSize.setValue(preset.m_modifierSize); m_modifierLockAlpha.setValue(preset.m_modifierLockAlpha); + m_assistants.setValue(preset.m_assistants); // Recalculate based on updated presets m_minThick = m_rasThickness.getValue().first; m_maxThick = m_rasThickness.getValue().second; - setWorkAndBackupImages(); - m_brushPad = ToolUtils::getBrushPad(preset.m_max, preset.m_hardness * 0.01); } catch (...) { } @@ -1873,6 +1853,7 @@ void ToonzRasterBrushTool::addPreset(QString name) { preset.m_pressure = m_pressure.getValue(); preset.m_modifierSize = m_modifierSize.getValue(); preset.m_modifierLockAlpha = m_modifierLockAlpha.getValue(); + preset.m_assistants = m_assistants.getValue(); // Pass the preset to the manager m_presetsManager.addPreset(preset); @@ -1911,13 +1892,12 @@ void ToonzRasterBrushTool::loadLastBrush() { m_smooth.setValue(BrushSmooth); m_modifierSize.setValue(RasterBrushModifierSize); m_modifierLockAlpha.setValue(BrushLockAlpha ? 1 : 0); + m_assistants.setValue(RasterBrushAssistants ? 1 : 0); // Recalculate based on prior values m_minThick = m_rasThickness.getValue().first; m_maxThick = m_rasThickness.getValue().second; - setWorkAndBackupImages(); - m_brushPad = getBrushPad(m_rasThickness.getValue().second, m_hardness.getValue() * 0.01); } @@ -1939,7 +1919,6 @@ void ToonzRasterBrushTool::onColorStyleChanged() { TMyPaintBrushStyle *mpbs = dynamic_cast(app->getCurrentLevelStyle()); m_isMyPaintStyleSelected = (mpbs) ? true : false; - setWorkAndBackupImages(); getApplication()->getCurrentTool()->notifyToolChanged(); } @@ -2011,8 +1990,8 @@ BrushData::BrushData() , m_opacityMax(0.0) , m_pencil(false) , m_pressure(false) - , m_modifierSize(0.0) , m_drawOrder(0) + , m_modifierSize(0.0) , m_modifierOpacity(0.0) , m_modifierEraser(0.0) , m_modifierLockAlpha(0.0) diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.h b/toonz/sources/tnztools/toonzrasterbrushtool.h index 47cfa07..681230c 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.h +++ b/toonz/sources/tnztools/toonzrasterbrushtool.h @@ -291,6 +291,7 @@ protected: TBoolProperty m_pressure; TDoubleProperty m_modifierSize; TBoolProperty m_modifierLockAlpha; + TBoolProperty m_assistants; double m_minThick, m_maxThick;