SK3dView Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A utility class that can be used to create 3D transformations.
public class SK3dView : SkiaSharp.SKObject
- Inheritance
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:
Constructors
SK3dView() |
Creates a new instance of SK3dView. |
Properties
Handle |
Gets or sets the handle to the underlying native object. (Inherited from SKObject) |
IgnorePublicDispose |
Gets or sets a value indicating whether the call the public Dispose() should be no-op. (Inherited from SKNativeObject) |
IsDisposed |
Gets or sets a value indicating whether the object has already been disposed. (Inherited from SKNativeObject) |
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() |
Releases all resources used by this SKNativeObject. (Inherited from SKNativeObject) |
Dispose(Boolean) |
Releases the unmanaged resources used by the SK3dView and optionally releases the managed resources. |
DisposeInternal() |
Triggers a dispose, ignoring the value of IgnorePublicDispose. (Inherited from SKNativeObject) |
DisposeManaged() |
Implemented by derived SKObject types to destroy any managed objects. (Inherited from SKObject) |
DisposeNative() |
Implemented by derived SKObject types to destroy any native objects. |
DisposeNative() |
Implemented by derived SKObject types to destroy any native objects. (Inherited from SKObject) |
DisposeUnownedManaged() | (Inherited from SKObject) |
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. |