SK3dView Class

Definition

Warning

This API is now obsolete.

A utility class that can be used to create 3D transformations.

[System.Obsolete("Use SKMatrix44 instead.", true)]
public class SK3dView : SkiaSharp.SKObject
Inheritance
Attributes

Examples

var info = new SKImageInfo(256, 256);
using (var surface = SKSurface.Create(info)) {
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.White);

    // center the entire drawing
    canvas.Translate(128, 128);

    // the "3D camera"
    var view = new SK3dView();

    // rotate to a nice 3D view
    view.RotateXDegrees(-25);
    view.RotateYDegrees(45);

    // move the origin of the 3D view
    view.Translate(-50, 50, 50);

    // define the cube face
    var face = SKRect.Create(0, 0, 100, 100);

    // draw the left face
    using (new SKAutoCanvasRestore(canvas, true)) {
        // get the face in the correct location
        view.Save();
        view.RotateYDegrees(-90);
        view.ApplyToCanvas(canvas);
        view.Restore();

        // draw the face
        var leftFace = new SKPaint {
            Color = SKColors.LightGray,
            IsAntialias = true
        };
        canvas.DrawRect(face, leftFace);
    }

    // draw the right face
    using (new SKAutoCanvasRestore(canvas, true)) {
        // get the face in the correct location
        view.Save();
        view.TranslateZ(-100);
        view.ApplyToCanvas(canvas);
        view.Restore();

        // draw the face
        var rightFace = new SKPaint {
            Color = SKColors.Gray,
            IsAntialias = true
        };
        canvas.DrawRect(face, rightFace);
    }

    // draw the top face
    using (new SKAutoCanvasRestore(canvas, true)) {
        // get the face in the correct location
        view.Save();
        view.RotateXDegrees(90);
        view.ApplyToCanvas(canvas);
        view.Restore();

        // draw the face
        var topFace = new SKPaint {
            Color = SKColors.DarkGray,
            IsAntialias = true
        };
        canvas.DrawRect(face, topFace);
    }
}

The example above produces the following:

3D View

Constructors

SK3dView()

Creates a new instance of SK3dView.

Properties

Handle

Gets or sets the handle to the underlying native object.

(Inherited from SKObject)
Matrix

Gets the current transformation as a matrix.

OwnsHandle

Gets a value indicating whether this object should destroy the underlying native object.

(Inherited from SKObject)

Methods

ApplyToCanvas(SKCanvas)

Applies the current transformation to the specified canvas.

Dispose() Inherited from SKNativeObject
Dispose(Boolean)
DotWithNormal(Single, Single, Single)

Returns the dot product of the current transformation and the specified normal.

GetMatrix(SKMatrix)

Stores the current transformation in the specified matrix.

Restore()

Restores the transformation to the last saved with Save().

RotateXDegrees(Single)

Rotates the transformation along the x-axis by the specified degrees.

RotateXRadians(Single)

Rotates the transformation along the x-axis by the specified radians.

RotateYDegrees(Single)

Rotates the transformation along the y-axis by the specified degrees.

RotateYRadians(Single)

Rotates the transformation along the y-axis by the specified radians.

RotateZDegrees(Single)

Rotates the transformation along the z-axis by the specified degrees.

RotateZRadians(Single)

Rotates the transformation along the z-axis by the specified radians.

Save()

Saves the current transformation so that it can be restored later using Restore().

Translate(Single, Single, Single)

Translates the transformation.

TranslateX(Single)

Translates the transformation along the x-axis.

TranslateY(Single)

Translates the transformation along the y-axis.

TranslateZ(Single)

Translates the transformation along the z-axis.

Applies to