|
| CubeBaseSlide (Flags flags) |
|
bool | onChar (SkUnichar uni) override |
|
virtual void | drawFace (SkCanvas *, SkColor, int face, bool front, const SkM44 &localToWorld)=0 |
|
void | draw (SkCanvas *canvas) override |
|
Click * | onFindClickHandler (SkScalar x, SkScalar y, skui::ModifierKey modi) override |
|
bool | onClick (Click *click) override |
|
bool | animate (double nanos) override |
|
void | concatCamera (SkCanvas *canvas, const SkRect &area, SkScalar zscale) |
|
Public Member Functions inherited from ClickHandlerSlide |
bool | onMouse (SkScalar x, SkScalar y, skui::InputState clickState, skui::ModifierKey modifierKeys) final |
|
virtual SkISize | getDimensions () const |
|
virtual void | gpuTeardown () |
|
virtual void | load (SkScalar winWidth, SkScalar winHeight) |
|
virtual void | resize (SkScalar winWidth, SkScalar winHeight) |
|
virtual void | unload () |
|
virtual bool | onGetControls (SkMetaData *) |
|
virtual void | onSetControls (const SkMetaData &) |
|
const SkString & | getName () |
|
| SkRefCntBase () |
|
virtual | ~SkRefCntBase () |
|
bool | unique () const |
|
void | ref () const |
|
void | unref () const |
|
Definition at line 234 of file 3DSlide.cpp.
◆ Flags
Enumerator |
---|
kCanRunOnCPU | |
kShowLightDome | |
Definition at line 245 of file 3DSlide.cpp.
◆ CubeBaseSlide()
CubeBaseSlide::CubeBaseSlide |
( |
Flags |
flags | ) |
|
|
inline |
Definition at line 256 of file 3DSlide.cpp.
257 :
fSphere({200 + DX, 200 + DY}, 400)
259 {}
FlutterSemanticsFlag flags
◆ animate()
bool CubeBaseSlide::animate |
( |
double |
nanos | ) |
|
|
inlineoverridevirtual |
◆ draw()
void CubeBaseSlide::draw |
( |
SkCanvas * |
canvas | ) |
|
|
inlineoverridevirtual |
Implements Slide.
Definition at line 271 of file 3DSlide.cpp.
271 {
273 return;
274 }
275
278
280
282 for (bool front : {false, true}) {
283 int index = 0;
284 for (
auto f :
faces) {
286
288
290
291
292 SkM44 localToWorld =
m *
f.asM44(200) *
inv(trans);
293
294 canvas->
concat(localToWorld);
295 this->
drawFace(canvas,
f.fColor, index++, front, localToWorld);
296 }
297 }
298
300
303
305 paint.setAntiAlias(
true);
307 paint.setColor(0x40FF0000);
313 }
314 }
static SkM44 inv(const SkM44 &m)
virtual void drawFace(SkCanvas *, SkColor, int face, bool front, const SkM44 &localToWorld)=0
void translate(SkScalar dx, SkScalar dy)
virtual GrRecordingContext * recordingContext() const
void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
void concat(const SkMatrix &matrix)
void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint &paint)
static SkM44 Translate(SkScalar x, SkScalar y, SkScalar z=0)
@ kStroke_Style
set to stroke geometry
void concatCamera(SkCanvas *canvas, const SkRect &area, SkScalar zscale)
void draw(SkCanvas *canvas) const
◆ drawFace()
◆ onChar()
Reimplemented from Slide.
Definition at line 261 of file 3DSlide.cpp.
261 {
262 switch (uni) {
265 }
267 }
virtual bool onChar(SkUnichar c)
◆ onClick()
bool CubeBaseSlide::onClick |
( |
Click * |
| ) |
|
|
inlineoverridevirtual |
Override to track clicks. Return true as long as you want to track the pen/mouse.
Implements ClickHandlerSlide.
Definition at line 333 of file 3DSlide.cpp.
333 {
334 if (click->fMeta.hasS32("type", 0)) {
336 return true;
337 }
338 if (click->fMeta.hasS32("type", 1)) {
340 fRotation = fRotateAnimator.
rotation() * fRotation;
341 fRotateAnimator.
start();
342 } else {
344 {click->fOrig.fX, click->fOrig.fY},
345 {click->fCurr.fX, click->fCurr.fY});
346 fRotateAnimator.
update(axis, angle);
347 }
348 return true;
349 }
350 return true;
351 }
void update(SkV3 axis, SkScalar angle)
RotateInfo computeRotationInfo(SkV2 a, SkV2 b) const
SkV2 pinLoc(SkV2 p) const
◆ onFindClickHandler()
Return a Click object to handle the click. onClick will be called repeatedly with the latest mouse state tracked on the Click object until it returns false.
Implements ClickHandlerSlide.
Definition at line 316 of file 3DSlide.cpp.
316 {
319 Click* c = new Click();
320 c->fMeta.setS32("type", 0);
321 return c;
322 }
324 Click* c = new Click();
325 c->fMeta.setS32("type", 1);
326
327 fRotation = fRotateAnimator.
rotation() * fRotation;
328 fRotateAnimator.
reset();
329 return c;
330 }
331 return nullptr;
332 }
bool contains(SkV2 v) const
◆ fFlags
Flags CubeBaseSlide::fFlags |
|
protected |
◆ fLight
LightOnSphere CubeBaseSlide::fLight = {{200 + DX, 200 + DY}, 800, 12} |
|
protected |
Definition at line 250 of file 3DSlide.cpp.
250{{200 + DX, 200 + DY}, 800, 12};
◆ fSphere
The documentation for this class was generated from the following file: