From 526ddd3e4e40b6c62cd36c1c6686904f440fc552 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Aug 09 2023 05:10:39 +0000 Subject: #assistants: toonzraster: m_painting.tileSet --- diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.cpp b/toonz/sources/tnztools/toonzrasterbrushtool.cpp index 86e1cc1..7b0bcd1 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.cpp +++ b/toonz/sources/tnztools/toonzrasterbrushtool.cpp @@ -1207,7 +1207,7 @@ void ToonzRasterBrushTool::onDeactivate() { /*--- * ドラッグ中にツールが切り替わった場合に備え、onDeactivateにもMouseReleaseと同じ処理を行う * ---*/ - if (m_tileSaver) { + if (m_painting.tileSaver) { bool isValid = m_enabled && m_painting.active; m_enabled = false; m_painting.active = false; @@ -1231,7 +1231,7 @@ bool ToonzRasterBrushTool::askWrite(const TRect &rect) { m_strokeRect += rect; m_strokeSegmentRect += rect; updateWorkAndBackupRasters(rect); - m_tileSaver->save(rect); + m_painting.tileSaver->save(rect); return true; } @@ -1296,8 +1296,8 @@ void ToonzRasterBrushTool::leftButtonDown(const TPointD &pos, TRasterCM32P ras = ri->getRaster(); if (ras) { TPointD rasCenter = ras->getCenterD(); - m_tileSet = new TTileSetCM32(ras->getSize()); - m_tileSaver = new TTileSaverCM32(ras, m_tileSet); + m_painting.tileSet = new TTileSetCM32(ras->getSize()); + m_painting.tileSaver = new TTileSaverCM32(ras, m_painting.tileSet); double maxThick = m_rasThickness.getValue().second; double thickness = (m_pressure.getValue()) ? computeThickness(pressure, m_rasThickness) * 2 @@ -1378,7 +1378,7 @@ void ToonzRasterBrushTool::leftButtonDown(const TPointD &pos, if (drawOrder == PaletteOrder) m_rasterTrack->setAboveStyleIds(aboveStyleIds); - m_tileSaver->save(m_rasterTrack->getLastRect()); + m_painting.tileSaver->save(m_rasterTrack->getLastRect()); if (!m_painting.isStraight) m_rasterTrack->generateLastPieceOfStroke(m_pencil.getValue()); @@ -1401,7 +1401,7 @@ void ToonzRasterBrushTool::leftButtonDown(const TPointD &pos, m_strokeRect = m_bluredBrush->getBoundFromPoints(m_points); updateWorkAndBackupRasters(m_strokeRect); - m_tileSaver->save(m_strokeRect); + m_painting.tileSaver->save(m_strokeRect); m_bluredBrush->addPoint(point, 1); if (!m_painting.isStraight) m_bluredBrush->updateDrawing(ri->getRaster(), m_backupRas, m_strokeRect, @@ -1533,7 +1533,7 @@ void ToonzRasterBrushTool::leftButtonDrag(const TPointD &pos, for (size_t i = 0; i < pts.size(); ++i) { const TThickPoint &thickPoint = pts[i]; m_rasterTrack->add(thickPoint); - m_tileSaver->save(m_rasterTrack->getLastRect()); + m_painting.tileSaver->save(m_rasterTrack->getLastRect()); m_rasterTrack->generateLastPieceOfStroke(m_pencil.getValue()); std::vector brushPoints = m_rasterTrack->getPointsSequence(); int m = (int)brushPoints.size(); @@ -1577,7 +1577,7 @@ void ToonzRasterBrushTool::leftButtonDrag(const TPointD &pos, points.push_back(mid); bbox = m_bluredBrush->getBoundFromPoints(points); updateWorkAndBackupRasters(bbox + m_lastRect); - m_tileSaver->save(bbox); + m_painting.tileSaver->save(bbox); m_bluredBrush->addArc(pa, (mid + pa) * 0.5, mid, 1, 1); m_lastRect += bbox; } else { @@ -1586,7 +1586,7 @@ void ToonzRasterBrushTool::leftButtonDrag(const TPointD &pos, points.push_back(mid); bbox = m_bluredBrush->getBoundFromPoints(points); updateWorkAndBackupRasters(bbox + m_lastRect); - m_tileSaver->save(bbox); + m_painting.tileSaver->save(bbox); m_bluredBrush->addArc(m_points[m - 4], old, mid, 1, 1); m_lastRect += bbox; } @@ -1693,10 +1693,10 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, m_lastRect.empty(); m_workRas->unlock(); - if (m_tileSet->getTileCount() > 0) { + if (m_painting.tileSet->getTileCount() > 0) { TRasterCM32P subras = ras->extract(m_strokeRect)->clone(); TUndoManager::manager()->add(new MyPaintBrushUndo( - m_tileSet, simLevel.getPointer(), frameId, m_isFrameCreated, + m_painting.tileSet, simLevel.getPointer(), frameId, m_isFrameCreated, m_isLevelCreated, subras, m_strokeRect.getP00())); } @@ -1728,7 +1728,7 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, for (size_t i = 0; i < pts.size(); ++i) { const TThickPoint &thickPoint = pts[i]; m_rasterTrack->add(thickPoint); - m_tileSaver->save(m_rasterTrack->getLastRect(m_painting.isStraight)); + m_painting.tileSaver->save(m_rasterTrack->getLastRect(m_painting.isStraight)); m_rasterTrack->generateLastPieceOfStroke(m_pencil.getValue(), true, m_painting.isStraight); @@ -1751,9 +1751,9 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, } invalidate(invalidateRect.enlarge(2)); - if (m_tileSet->getTileCount() > 0) { + if (m_painting.tileSet->getTileCount() > 0) { TUndoManager::manager()->add(new RasterBrushUndo( - m_tileSet, m_rasterTrack->getPointsSequence(), + m_painting.tileSet, m_rasterTrack->getPointsSequence(), m_rasterTrack->getStyleId(), m_rasterTrack->isSelective(), simLevel.getPointer(), frameId, m_pencil.getValue(), m_isFrameCreated, m_isLevelCreated, m_rasterTrack->isPaletteOrder(), @@ -1799,7 +1799,7 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, points.push_back(mid); bbox = m_bluredBrush->getBoundFromPoints(points); updateWorkAndBackupRasters(bbox + m_lastRect); - m_tileSaver->save(bbox); + m_painting.tileSaver->save(bbox); m_bluredBrush->addArc(pa, (mid + pa) * 0.5, mid, 1, 1); m_lastRect += bbox; } else { @@ -1808,7 +1808,7 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, points.push_back(mid); bbox = m_bluredBrush->getBoundFromPoints(points); updateWorkAndBackupRasters(bbox + m_lastRect); - m_tileSaver->save(bbox); + m_painting.tileSaver->save(bbox); m_bluredBrush->addArc(m_points[m - 4], old, mid, 1, 1); m_lastRect += bbox; } @@ -1843,7 +1843,7 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, } TRect bbox = m_bluredBrush->getBoundFromPoints(points); updateWorkAndBackupRasters(bbox); - m_tileSaver->save(bbox); + m_painting.tileSaver->save(bbox); m_bluredBrush->addArc(points[0], points[1], points[2], 1, 1); m_bluredBrush->updateDrawing(ti->getRaster(), m_backupRas, bbox, m_painting.styleId, m_drawOrder.getIndex(), @@ -1860,17 +1860,16 @@ void ToonzRasterBrushTool::finishRasterBrush(const TPointD &pos, delete m_bluredBrush; m_bluredBrush = 0; - if (m_tileSet->getTileCount() > 0) { + if (m_painting.tileSet->getTileCount() > 0) { TUndoManager::manager()->add(new RasterBluredBrushUndo( - m_tileSet, m_points, m_painting.styleId, (DrawOrder)m_drawOrder.getIndex(), + m_painting.tileSet, m_points, m_painting.styleId, (DrawOrder)m_drawOrder.getIndex(), m_modifierLockAlpha.getValue(), simLevel.getPointer(), frameId, m_rasThickness.getValue().second, m_hardness.getValue() * 0.01, m_isFrameCreated, m_isLevelCreated, m_painting.isStraight)); } } - delete m_tileSaver; - - m_tileSaver = 0; + delete m_painting.tileSaver; + m_painting.tileSaver = 0; /*-- FIdを指定して、描画中にフレームが動いても、   描画開始時のFidのサムネイルが更新されるようにする。--*/ @@ -2271,7 +2270,7 @@ bool ToonzRasterBrushTool::isPencilModeActive() { void ToonzRasterBrushTool::onColorStyleChanged() { // in case the style switched while drawing - if (m_tileSaver) { + if (m_painting.tileSaver) { bool isValid = m_enabled && m_painting.active; m_enabled = false; if (isValid) { diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.h b/toonz/sources/tnztools/toonzrasterbrushtool.h index 5089398..ee0d933 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.h +++ b/toonz/sources/tnztools/toonzrasterbrushtool.h @@ -177,9 +177,15 @@ protected: } m_stroke; struct Painting { + // initial painting input bool active = false; int styleId = 0; + // common variables + TTileSetCM32 *tileSet = nullptr; + TTileSaverCM32 *tileSaver = nullptr; + + // straight variables bool isStraight = false; TPointD firstPoint; TPointD lastPoint; @@ -199,8 +205,6 @@ protected: TBoolProperty m_modifierLockAlpha; RasterStrokeGenerator *m_rasterTrack; - TTileSetCM32 *m_tileSet; - TTileSaverCM32 *m_tileSaver; double m_minThick, m_maxThick; int m_targetType;