Lines Matching +full:32 +full:- +full:particles

4  * Use of this source code is governed by a BSD-style license that can be
45 fObjects[i]->draw(canvas); in draw()
51 fObjects[i]->animate(nanos); in animate()
56 // The default impl handles +/- to add or remove N objects from the scene
63 fObjects.push_back(this->createObject()); in onChar()
67 case '-': in onChar()
70 fObjects.resize(fObjects.size() - (size_t) fObjectIncrement); in onChar()
86 fObjects.push_back(this->createObject()); in initializeObjects()
104 return fStage->onChar(uni); in onChar()
108 fStage->draw(canvas); in draw()
112 return fStage->animate(nanos); in animate()
137 float delta = newStartAngle - *startAngle; in canonicalize_angle()
145 if (!ccw && endAngle - startAngle >= 360.f) { in adjust_end_angle()
147 } else if (ccw && startAngle - endAngle >= 360.f) { in adjust_end_angle()
148 newEndAngle = startAngle - 360.f; in adjust_end_angle()
150 newEndAngle = startAngle + (360.f - SkScalarMod(startAngle - endAngle, 360.f)); in adjust_end_angle()
152 newEndAngle = startAngle - (360.f - SkScalarMod(endAngle - startAngle, 360.f)); in adjust_end_angle()
173 int circle = random->nextRangeU(0, 3); in CanvasLineSegment()
179 fLineWidth = std::pow(random->nextF(), 12) * 20 + 3; in CanvasLineSegment()
180 fOmega = random->nextF() * 3 + 0.2f; in CanvasLineSegment()
181 float theta = random->nextRangeF(0, 2*SK_ScalarPI); in CanvasLineSegment()
187 fLength += std::pow(random->nextF(), 8) * params.fLineLengthMaximum; in CanvasLineSegment()
188 fSegmentDirection = random->nextF() > 0.5 ? -1 : 1; in CanvasLineSegment()
204 canvas->drawLine(fStart, end, paint); in draw()
228 fParams.fCircleRadius = fSize.fWidth/8 - .4 * (fParams.fLineMinimum + in CanvasLineSegmentStage()
230 fParams.fCircleCenters[0] = SkPoint::Make(5.5 / 32 * fSize.fWidth, 2.1 / 3*fSize.fHeight); in CanvasLineSegmentStage()
231 fParams.fCircleCenters[1] = SkPoint::Make(12.5 / 32 * fSize.fWidth, .9 / 3*fSize.fHeight); in CanvasLineSegmentStage()
232 fParams.fCircleCenters[2] = SkPoint::Make(19.5 / 32 * fSize.fWidth, 2.1 / 3*fSize.fHeight); in CanvasLineSegmentStage()
233 fParams.fCircleCenters[3] = SkPoint::Make(26.5 / 32 * fSize.fWidth, .9 / 3*fSize.fHeight); in CanvasLineSegmentStage()
237 this->initializeObjects(); in CanvasLineSegmentStage()
243 canvas->clear(SK_ColorWHITE); in draw()
248 float colorStopStep = SkScalarInterp(-.1f, .1f, fCurrentGradientStep); in draw()
249 int brightnessStep = SkScalarRoundToInt(SkScalarInterp(32, 64, fCurrentGradientStep)); in draw()
261 {fHalfSize.fWidth - dx, fHalfSize.fHeight - dy} in draw()
272 0.8f - colorStopStep, in draw()
290 SkRect arcRect = SkRect::MakeXYWH(fParams.fCircleCenters[i].fX - fParams.fCircleRadius, in draw()
291 fParams.fCircleCenters[i].fY- fParams.fCircleRadius, in draw()
294 canvas->drawArc(arcRect, 0, 360, false, paint); in draw()
297 canvas->drawArc(arcRect, 0, 360, false, paint); in draw()
299 canvas->drawArc(arcRect, 0, 360, false, paint); in draw()
303 this->Stage::draw(canvas); in draw()
311 this->Stage::animate(nanos); in animate()
344 int randY = random->nextRangeU(0, kMaxY); in CanvasArc()
345 int randX = random->nextRangeU(0, kMaxX - 1 * (randY % 2)); in CanvasArc()
349 fRadius = 20 + std::pow(random->nextF(), 5) * (std::min(distanceX, distanceY) / 1.8f); in CanvasArc()
350 fStartAngle = random->nextRangeF(0, 2*SK_ScalarPI); in CanvasArc()
351 fEndAngle = random->nextRangeF(0, 2*SK_ScalarPI); in CanvasArc()
352 fOmega = (random->nextF() - 0.5f) * 0.3f; in CanvasArc()
353 fCounterclockwise = random->nextBool(); in CanvasArc()
358 int colorIndex = random->nextRangeU(0, 3); in CanvasArc()
360 fLineWidth = 1 + std::pow(random->nextF(), 5) * 30; in CanvasArc()
361 fDoStroke = random->nextRangeU(0, 3) != 0; in CanvasArc()
370 SkRect arcRect = SkRect::MakeXYWH(fPoint.fX - fRadius, fPoint.fY - fRadius, in draw()
378 float sweepAngle = startAngleDeg - endAngleDeg; in draw()
383 canvas->drawArc(arcRect, startAngleDeg, sweepAngle, false, paint); in draw()
388 canvas->drawArc(arcRect, startAngleDeg, sweepAngle, true, paint); in draw()
413 this->initializeObjects(); in CanvasArcStage()
419 canvas->clear(SK_ColorWHITE); in draw()
420 this->Stage::draw(canvas); in draw()
438 {-4, 0}, in setEndPoint()
440 {1, -2}, in setEndPoint()
446 SkPoint offset = kOffsets[random->nextRangeU(0, 3)]; in setEndPoint()
449 coordinate.fX -= offset.fX * 2; in setEndPoint()
451 coordinate.fY -= offset.fY * 2; in setEndPoint()
464 fColor = kColors[random->nextRangeU(0, 6)]; in CanvasLinePoint()
466 fWidth = std::pow(random->nextF(), 5) * 20 + 1; in CanvasLinePoint()
467 fIsSplit = random->nextBool(); in CanvasLinePoint()
469 this->setEndPoint(random, size, prev); in CanvasLinePoint()
475 path->lineTo(fPoint); in append()
504 fPoint2 = this->getPoint(); in CanvasQuadraticSegment()
507 this->setEndPoint(random, size, prev); in CanvasQuadraticSegment()
511 path->quadTo(fPoint2, this->getPoint()); in append()
525 fPoint2 = this->getPoint(); in CanvasBezierSegment()
528 this->setEndPoint(random, size, prev); in CanvasBezierSegment()
529 fPoint3 = this->getPoint(); in CanvasBezierSegment()
532 this->setEndPoint(random, size, prev); in CanvasBezierSegment()
536 path->cubicTo(fPoint2, fPoint3, this->getPoint()); in append()
546 int choice = random->nextRangeU(0, 3); in make_line_path()
566 this->initializeObjects(); in CanvasLinePathStage()
572 canvas->clear(SK_ColorWHITE); in draw()
581 paint.setStrokeWidth(object->getWidth()); in draw()
582 paint.setColor(object->getColor()); in draw()
583 currentPath.moveTo(object->getPoint()); in draw()
585 object->append(&currentPath); in draw()
587 if (object->isSplit()) { in draw()
588 canvas->drawPath(currentPath, paint); in draw()
590 paint.setStrokeWidth(object->getWidth()); in draw()
591 paint.setColor(object->getColor()); in draw()
593 currentPath.moveTo(object->getPoint()); in draw()
597 object->toggleIsSplit(); in draw()
601 canvas->drawPath(currentPath, paint); in draw()
614 SkPoint coord = prevObject->getCoord(); in createObject()
621 // Bouncing Particles
625 return {(float)random->nextRangeU(0, maxPosition.width()), in random_position()
626 (float)random->nextRangeU(0, maxPosition.height())}; in random_position()
630 return random->nextRangeF(0, 2*SK_FloatPI); in random_angle()
634 return random->nextRangeF(maxVelocity/8, maxVelocity); in random_velocity()
657 return Rotater(random->nextRangeF(10, 100)); in random_rotater()
670 {stageSize.fWidth - particleSize.fWidth, in BouncingParticle()
671 stageSize.fHeight - particleSize.fHeight})) in BouncingParticle()
685 // If direction is East-South, go West-South. in animate()
687 fAngle = SK_FloatPI - fAngle; in animate()
688 // If angle is East-North, go West-North. in animate()
690 fAngle = fAngle - (fAngle - SK_FloatPI / 2 * 3) * 2; in animate()
692 fPosition.fX = fStageSize.width() - fSize.width(); in animate()
697 // If angle is West-South, go East-South. in animate()
699 fAngle = SK_FloatPI - fAngle; in animate()
700 // If angle is West-North, go East-North. in animate()
702 fAngle = fAngle + (SK_FloatPI / 2 * 3 - fAngle) * 2; in animate()
711 fAngle = SK_FloatPI * 2 - fAngle; in animate()
713 fPosition.fY = fStageSize.height() - fSize.height(); in animate()
720 fAngle = fAngle - (fAngle - SK_FloatPI) * 2; in animate()
744 // The particles take delta time in animate()
749 fObjects[i]->animate(nanos - fLastTime); in animate()
758 double fLastTime = -1;
766 this->move(); in BouncingTaggedImage()
768 fRect.offset(-fSize.width()/2, -fSize.height()/2); in BouncingTaggedImage()
779 this->move(); in animate()
799 this->initializeObjects(); in BouncingTaggedImagesStage()
806 "images/brickwork-texture.jpg", in initImages()
813 auto rContext = canvas->recordingContext(); in initImages()
816 recorder = canvas->recorder(); in initImages()
824 fImages[i] = lazyYUV->refImage(recorder, in initImages()
829 fImages[i] = lazyYUV->refImage(rContext, in initImages()
837 this->initImages(canvas); in draw()
841 canvas->clear(SK_ColorWHITE); in draw()
849 canvas->save(); in draw()
850 canvas->concat(object->transform()); in draw()
851 canvas->drawImageRect(fImages[i % kImageCount], object->rect(), sampling, nullptr); in draw()
853 canvas->restore(); in draw()
911 reinterpret_cast<BouncingTaggedImagesStage*>(fStage.get())->reset(); in gpuTeardown()