Home | History | Annotate | Download | only in filters

Lines Matching refs:paintingData

153 inline long FETurbulence::PaintingData::random()
172 inline void FETurbulence::initPaint(PaintingData& paintingData)
177 if (paintingData.seed <= 0)
178 paintingData.seed = -(paintingData.seed % (s_randMaximum - 1)) + 1;
179 if (paintingData.seed > s_randMaximum - 1)
180 paintingData.seed = s_randMaximum - 1;
185 paintingData.latticeSelector[i] = i;
186 gradient = paintingData.gradient[channel][i];
187 gradient[0] = static_cast<float>((paintingData.random() % (2 * s_blockSize)) - s_blockSize) / s_blockSize;
188 gradient[1] = static_cast<float>((paintingData.random() % (2 * s_blockSize)) - s_blockSize) / s_blockSize;
195 int k = paintingData.latticeSelector[i];
196 int j = paintingData.random() % s_blockSize;
199 paintingData.latticeSelector[i] = paintingData.latticeSelector[j];
200 paintingData.latticeSelector[j] = k;
203 paintingData.latticeSelector[s_blockSize + i] = paintingData.latticeSelector[i];
205 paintingData.gradient[channel][s_blockSize + i][0] = paintingData.gradient[channel][i][0];
206 paintingData.gradient[channel][s_blockSize + i][1] = paintingData.gradient[channel][i][1];
219 float FETurbulence::noise2D(int channel, PaintingData& paintingData, StitchData& stitchData, const FloatPoint& noiseVector)
246 int latticeIndex = paintingData.latticeSelector[noiseX.noisePositionIntegerValue];
247 int nextLatticeIndex = paintingData.latticeSelector[(noiseX.noisePositionIntegerValue + 1) & s_blockMask];
253 int temp = paintingData.latticeSelector[latticeIndex + noiseY.noisePositionIntegerValue];
254 q = paintingData.gradient[channel][temp];
256 temp = paintingData.latticeSelector[nextLatticeIndex + noiseY.noisePositionIntegerValue];
257 q = paintingData.gradient[channel][temp];
260 temp = paintingData.latticeSelector[latticeIndex + noiseY.noisePositionIntegerValue + 1];
261 q = paintingData.gradient[channel][temp];
263 temp = paintingData.latticeSelector[nextLatticeIndex + noiseY.noisePositionIntegerValue + 1];
264 q = paintingData.gradient[channel][temp];
270 unsigned char FETurbulence::calculateTurbulenceValueForPoint(int channel, PaintingData& paintingData, StitchData& stitchData, const FloatPoint& point, float baseFrequencyX, float baseFrequencyY)
272 float tileWidth = paintingData.filterSize.width();
273 float tileHeight = paintingData.filterSize.height();
307 turbulenceFunctionResult += noise2D(channel, paintingData, stitchData, noiseVector) / ratio;
309 turbulenceFunctionResult += fabsf(noise2D(channel, paintingData, stitchData, noiseVector)) / ratio;
332 inline void FETurbulence::fillRegion(Uint8ClampedArray* pixelArray, PaintingData& paintingData, int startY, int endY, float baseFrequencyX, float baseFrequencyY)
346 pixelArray->set(indexOfPixelChannel, calculateTurbulenceValueForPoint(channel, paintingData, stitchData, filter()->mapAbsolutePointToLocalPoint(point), baseFrequencyX, baseFrequencyY));
353 parameters->filter->fillRegion(parameters->pixelArray, *parameters->paintingData, parameters->startY, parameters->endY, parameters->baseFrequencyX, parameters->baseFrequencyY);
367 PaintingData paintingData(m_seed, roundedIntSize(filterPrimitiveSubregion().size()));
368 initPaint(paintingData);
390 params.paintingData = &paintingData;
405 fillRegion(pixelArray, paintingData, 0, absolutePaintRect().height(), baseFrequencyX, baseFrequencyY);