Beispiel #1
0
        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());
        }
Beispiel #3
0
        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());
 }
Beispiel #7
0
 private void _UI_Update(Size?renderSize, SceneView3D xform, Record3D scene)
 {
     _DeviceContext2D.DrawScene(_VectorDrawing, renderSize, xform, scene);
     _VectorImage.Drawing = _VectorDrawing.Drawing;
 }