public void Draw(IDrawingBrush <IScene3D> drawable, CameraTransform3D camera) { if (!(drawable is Record3D record)) { record = new Record3D(); drawable.DrawTo(record); } Draw((dc, size) => record.DrawTo((dc, size.X, size.Y), camera)); }
public static Plot ConvertToPlot(Record3D srcModel) { var dst = new PlotlyDocumentBuilder(); using (var dc = dst.CreateScene3DContext()) { srcModel.DrawTo(dc); } return(dst.ToPlot()); }
public void Update(Size?renderSize, SceneView3D xform, Record3D scene) { if (CheckAccess()) { _UI_Update(renderSize, xform, scene); return; } scene.CopyTo(_SafeClone3D); this.Dispatcher.Invoke(() => _UI_Update(renderSize, xform, _SafeClone3D)); }
protected override void OnSceneChanged(IDrawingBrush <IScene3D> scene) { if (scene == null) { _Camera = CameraTransform3D.Identity; } else { var record = new Record3D(); scene.DrawTo(record); _Camera = CameraView3D.CreateDefaultFrom(record.BoundingMatrix); } }
protected override void OnPrepareScene(Record3D scene) { scene.DrawFloorXY((-50, -50, -5), (100, 100), 10, System.Drawing.Color.LightGreen, System.Drawing.Color.LimeGreen); scene.DrawPivot((-2, 0, 0), 2); // animated var tmp = (DateTime.UtcNow - DateTime.Today).TotalSeconds; var pos = (5, 10, 5 + (float)Math.Cos(tmp) * 10); scene.DrawSphere(pos, 2, System.Drawing.Color.Yellow); var fontXform = System.Numerics.Matrix4x4.CreateScale(0.1f, -0.1f, 1) * System.Numerics.Matrix4x4.CreateTranslation(((Point3)pos).XYZ); scene.DrawTextLine(fontXform, $"Height:{tmp}", System.Drawing.Color.Black); }
public static Retyped.dom.HTMLElement ConvertToHtml(Record3D srcModel) { return(ConvertToPlot(srcModel).Render()); }
private void _UI_Update(Size?renderSize, SceneView3D xform, Record3D scene) { _DeviceContext2D.DrawScene(_VectorDrawing, renderSize, xform, scene); _VectorImage.Drawing = _VectorDrawing.Drawing; }