コード例 #1
0
ファイル: Viewport.xaml.cs プロジェクト: trymnilsen/Aegir
        private void Viewport_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Left)
            {
                DebugUtil.LogWithLocation("Clicked on viewport");
                HelixViewport3D viewport   = (HelixViewport3D)sender;
                var             overlayHit = viewport.Viewport
                                             .FindHits(e.GetPosition(Overlay))
                                             .FirstOrDefault();

                if (overlayHit != null)
                {
                    //do something
                }
                else
                {
                    //no hit in overlay
                    //check if this hits anything in the underlaying viewport
                    var scenehit = viewport.Viewport
                                   .FindHits(e.GetPosition(Scene))
                                   .FirstOrDefault();
                    if (scenehit != null)
                    {
                        SceneActor selectedActor
                            = VisualFactory?.GetRenderItem(RenderingMode.Solid, scenehit.Visual);
                        if (selectedActor != null)
                        {
                            ActorClicked?.Invoke(selectedActor.Transform.Parent);
                        }
                    }
                }
            }
        }
コード例 #2
0
 public RendererViewport(HelixViewport3D sceneViewport)
 {
     RenderMode         = RenderingMode.Solid;
     this.viewport      = sceneViewport;
     this.visualFactory = VisualFactory;
     listeners          = new List <RenderItemListener>();
 }
コード例 #3
0
ファイル: Viewport.xaml.cs プロジェクト: trymnilsen/Aegir
        public void RenderActor(SceneActor item)
        {
            if (VisualFactory == null)
            {
                DebugUtil.LogWithLocation("No visual factory provided for viewport");
            }
            else
            {
                Visual3D visual;
                //Check if we need to use a dummy visual
                if (item.Geometry != null)
                {
                    visual = VisualFactory.GetVisual(RenderingMode.Solid, item);
                }
                else
                {
                    visual = VisualFactory.GetDummyVisual();
                }

                actorsVisuals.Add(new Tuple <LibTransform, Visual3D>(item.Transform, visual));

                //Set a position for the visual
                AegirLib.MathType.Matrix m = item.Transform.TransformMatrix;
                Matrix3D matrix            = new Matrix3D(m.M11, m.M12, m.M13, m.M14,
                                                          m.M21, m.M22, m.M23, m.M24,
                                                          m.M31, m.M32, m.M33, m.M34,
                                                          m.M41, m.M42, m.M43, m.M44);

                MatrixTransform3D matrixTransform = new MatrixTransform3D(matrix);
                visual.Transform = matrixTransform;

                Scene.Children.Add(visual);
            }
        }
コード例 #4
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseSetTransformAndSize()
        {
            tlog.Debug(tag, $"VisualBaseSetTransformAndSize START");

            try
            {
                VisualFactory visualfactory = VisualFactory.Instance;

                PropertyMap propertyMap = new PropertyMap();
                propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                propertyMap.Insert(Visual.Property.Type, new PropertyValue("Hello Goodbye"));

                var testingTarget = visualfactory.CreateVisual(propertyMap);
                Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

                using (Vector2 vec2 = new Vector2(2.0f, 0.8f))
                {
                    testingTarget.SetTransformAndSize(propertyMap, vec2);
                }

                testingTarget.Dispose();
            }
            catch (Exception e)
            {
                tlog.Error(tag, "Caught Exception" + e.ToString());
                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                Assert.IsTrue(e is ArgumentException, "Argument Exception Not Recieved");
            }

            tlog.Debug(tag, $"VisualBaseSetTransformAndSize END (OK)");
        }
コード例 #5
0
 public override IVisualEdge CreateSinkEdge(IGraph <IThing, ILink> source, IGraph <IVisual, IVisualEdge> sink, ILink a)
 {
     //if (a.Marker == null) { // this should never happen!:
     //    a.Marker = CommonSchema.EmptyMarker;
     //}
     return(VisualFactory.CreateEdge(ThingDataToDisplay(source, a.Marker)));
 }
コード例 #6
0
        /// <summary/>
        public override void Init(Variation v)
        {
            base.Init(v);
            v.AssertExistenceOf("ExpectedException", "Visual");

            exceptionType = Type.GetType(v["ExpectedException"]);
            visual        = VisualFactory.MakeVisual(v["Visual"]);
        }
コード例 #7
0
        public void VisualFactoryConstructor()
        {
            tlog.Debug(tag, $"VisualFactoryConstructor START");

            var testingTarget = new VisualFactory();

            Assert.IsInstanceOf <VisualFactory>(testingTarget, "CreateVisual Should return VisualFactory instance.");

            testingTarget?.Dispose();
            tlog.Debug(tag, $"VisualFactoryConstructor END (OK)");
        }
コード例 #8
0
ファイル: DiagramCanvas.cs プロジェクト: 294797392/DrawingPad
        public VisualGraphics DrawVisual(GraphicsBase graphics)
        {
            VisualGraphics visual = VisualFactory.Create(graphics);

            this.VisualList.Add(visual);

            this.AddVisualChild(visual);    // 该函数只会把DrawableVisual和DrawableVisualLayer关联起来,在渲染的时候并不会真正渲染。关联的目的是为了做命中测试(HitTest)。

            visual.Render();

            return(visual);
        }
コード例 #9
0
ファイル: ReferenceTest.cs プロジェクト: dotnet/wpf-test
        /// <summary/>
        public override void Init(Variation v)
        {
            base.Init(v);
            v.AssertExistenceOf("RenderingMode", "Visual", "ReferenceWindowPosition");

            renderingMode = v["RenderingMode"];

            // Create two copies so that we don't have aliasing problems
            firstVisual  = VisualFactory.MakeVisual(v["Visual"]);
            secondVisual = VisualFactory.MakeVisual(v["Visual"]);
            firstPass    = true;

            referenceWindowPosition = StringConverter.ToPoint(v["ReferenceWindowPosition"]);
        }
コード例 #10
0
 public void AddRenderItemToView(SceneActor renderItem)
 {
     if (VisualFactory == null)
     {
         string viewPortName = "NAMENOTDEFINED";
         if (viewport.Name != null && viewport.Name != string.Empty)
         {
             viewPortName = viewport.Name;
         }
         Aegir.Util.DebugUtil.LogWithLocation($"No visual factory provided for viewport {viewPortName}");
     }
     else
     {
         Visual3D visual = VisualFactory.GetVisual(RenderMode, renderItem);
         AddVisual(visual, renderItem.Transform);
     }
 }
コード例 #11
0
ファイル: TestWorld.cs プロジェクト: raymondBporter/OpenGL
        public TestWorld()
        {
            _scene = new Batch();



            _polyLines[0] = new PolyLine(
                IntervalStep(1, 10, 0.1f)
                .Select(j => j * Vector2.FromAngle(j))
                .ToArray())
            {
                Thickness = 0.7f
            };


            _polyLines[1] = new PolyLine(
                IntervalStep(1, 60, 0.05f)
                .Select(j => new Vector2(
                            j / 10.0f,
                            Cos(j / 10)
                            ))
                .ToArray())
            {
                Thickness = 0.8f
            };



            for (var i = 0; i < NumVisuals; i++)
            {
                _polygons[i] = new ConvexPolygon(VisualFactory.CircleVertices(7.0f, (int)Rand(6) + 3), Rand01 * 3.0f);
                _bodies[i]   = new Body
                {
                    Position      = (Rand(-20, 20), Rand(-20, 20)),
                    Velocity      = Rand(3.0f) * RandomUnitVector,
                    Angle         = 0, //RandomAngle;
                    AngleVelocity = 0  // 1.5f + Rand01;
                };
                _colors[i] = new Color4(Rand(1.0f), Rand(1.0f), Rand(1.0f), 1.0f);
                _color2[i] = new Color4(Rand(1.0f), Rand(1.0f), Rand(1.0f), 1.0f);
            }
        }
コード例 #12
0
        /// <summary>
        /// Determines if the item should be virtualized.
        /// </summary>
        /// <returns>True if the item should be virtualized.</returns>
        private bool ShouldVirtualize(ISpatialItem item)
        {
            if (this.Items == null || !item.IsVisible)
            {
                return(true);
            }

            UIElement visual = VisualFromItem(item) as UIElement;

            if (visual == null)
            {
                return(true);
            }
            else if (visual.IsMouseCaptureWithin || visual.IsKeyboardFocusWithin || visual.IsFocused)
            {
                return(false);
            }

            return(VisualFactory == null || VisualFactory.Virtualize(visual));
        }
コード例 #13
0
        public void VisualFactoryCreateVisual()
        {
            tlog.Debug(tag, $"VisualFactoryCreateVisual START");

            VisualFactory visualfactory = VisualFactory.Instance;

            using (PropertyMap propertyMap = new PropertyMap())
            {
                propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                propertyMap.Insert(TextVisualProperty.Text, new PropertyValue("Hello Goodbye"));

                var testingTarget = visualfactory.CreateVisual(propertyMap);
                Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                Assert.IsInstanceOf <VisualBase>(testingTarget, "CreateVisual Should return VisualBase instance.");

                testingTarget.Dispose();
            }

            visualfactory.Dispose();
            tlog.Debug(tag, $"VisualFactoryCreateVisual END (OK)");
        }
コード例 #14
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseName()
        {
            tlog.Debug(tag, $"VisualBaseName START");

            VisualFactory visualfactory = VisualFactory.Instance;

            PropertyMap propertyMap = new PropertyMap();

            propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
            propertyMap.Insert(TextVisualProperty.Text, new PropertyValue("Hello Goodbye"));

            var testingTarget = visualfactory.CreateVisual(propertyMap);

            Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
            Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

            testingTarget.Name = "VisualBase1";
            Assert.AreEqual("VisualBase1", testingTarget.Name, "Name function does not work, return incorrect name.");

            testingTarget.Dispose();
            tlog.Debug(tag, $"VisualBaseName END (OK)");
        }
コード例 #15
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseGetWidthForHeight()
        {
            tlog.Debug(tag, $"VisualBaseGetWidthForHeight START");

            VisualFactory visualfactory = VisualFactory.Instance;

            using (PropertyMap propertyMap = new PropertyMap())
            {
                propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                propertyMap.Insert(Visual.Property.Type, new PropertyValue(""));

                var testingTarget = visualfactory.CreateVisual(propertyMap);
                Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

                Assert.AreEqual(0.0f, testingTarget.GetWidthForHeight(0.0f), "The Width got from GetWidthForHeight is not correct.");

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"VisualBaseGetWidthForHeight END (OK)");
        }
コード例 #16
0
ファイル: FactoryParser.cs プロジェクト: dotnet/wpf-test
        private static Visual3D MakeViewportVisual3D(Variation v, string visualName)
        {
            Viewport2DVisual3D visual = new Viewport2DVisual3D();

            string visualContent = v[visualName];
            string materialName  = visualName.Replace("Visual", "Material");
            //Back Material is intentionally omitted
            string modelTransformName = visualName.Replace("Visual", "VisualTransform");
            string modelChildName     = visualName.Replace("Visual", "Child");

            //Only Geometry, Material and child are accepted, not general Model3D's.
            visual.Geometry = MeshFactory.MakeMesh(visualContent);
            Material material = MakeMaterial(v, materialName);

            //Material can be null.
            if (material != null)
            {
                //
                material.SetValue(Viewport2DVisual3D.IsVisualHostMaterialProperty, true);
                visual.Material = material;
            }
            visual.Transform = TransformFactory.MakeTransform(v[modelTransformName]);

            //

            //This operates at the same tree level as the parent, as it has
            //a one-to-one parent relationship.

            if (v[modelChildName] != null)
            {
                Visual childVisual = VisualFactory.MakeVisual(v[modelChildName]);
                if (childVisual != null)
                {
                    visual.Visual = childVisual;
                }
            }
            return(visual);
        }
コード例 #17
0
        public override IVisual CreateSinkItem(IGraph <IThing, ILink> source,
                                               IGraph <IVisual, IVisualEdge> sink, IThing a)
        {
            var result = VisualFactory.CreateItem(ThingDataToDisplay(source, a));

            if (SchemaFacade.DescriptionableThing(a))
            {
                if (a is IThing <Stream> )
                {
                    result.Shape = ShapeFactory.Create <IBezierRectangleShape> ();
                }
                else
                {
                    result.Shape = ShapeFactory.Create <IRectangleShape> ();
                }
            }
            else
            {
                result.Shape = ShapeFactory.Create <IRoundedRectangleShape> ();
            }

            return(result);
        }
コード例 #18
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseCreation()
        {
            tlog.Debug(tag, $"VisualBaseCreation START");

            try
            {
                VisualFactory visualfactory = VisualFactory.Instance;

                using (PropertyMap propertyMap = new PropertyMap())
                {
                    propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                    propertyMap.Insert(TextVisualProperty.Text, new PropertyValue("Hello"));
                    propertyMap.Insert(TextVisualProperty.PointSize, new PropertyValue(10.0f));

                    var testingTarget = visualfactory.CreateVisual(propertyMap);
                    Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                    Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

                    var result = testingTarget.Creation;
                    Assert.IsNotNull(result, "Can't create success object VisualBase");
                    Assert.IsInstanceOf <PropertyMap>(result, "Should return PropertyMap instance.");

                    testingTarget.Dispose();
                    result.Dispose();
                }

                visualfactory.Dispose();
            }
            catch (Exception e)
            {
                tlog.Error(tag, "Caught Exception" + e.ToString());
                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                Assert.IsTrue(e is ArgumentException, "Argument Exception Not Recieved");
            }

            tlog.Debug(tag, $"VisualBaseCreation END (OK)");
        }
コード例 #19
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseGetNaturalSize()
        {
            tlog.Debug(tag, $"VisualBaseGetNaturalSize START");

            try
            {
                VisualFactory visualfactory = VisualFactory.Instance;

                using (PropertyMap propertyMap = new PropertyMap())
                {
                    propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));

                    var testingTarget = visualfactory.CreateVisual(propertyMap);
                    Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                    Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

                    using (Size2D size2d = new Size2D(1, 2))
                    {
                        testingTarget.GetNaturalSize(size2d);
                        Assert.AreEqual(0.0f, size2d.Height, "The Height got from GetNaturalSize is not right");
                        Assert.AreEqual(0.0f, size2d.Width, "The Width got from GetNaturalSize is not right");
                    }

                    testingTarget.Dispose();
                }

                visualfactory.Dispose();
            }
            catch (Exception e)
            {
                tlog.Error(tag, "Caught Exception" + e.ToString());
                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                Assert.Fail("Caught Exception" + e.ToString());
            }

            tlog.Debug(tag, $"VisualBaseGetNaturalSize END (OK)");
        }
コード例 #20
0
ファイル: TSVisualBase.cs プロジェクト: yunmiha/TizenFX
        public void VisualBaseDepthIndex()
        {
            tlog.Debug(tag, $"VisualBaseDepthIndex START");

            VisualFactory visualfactory = VisualFactory.Instance;

            using (PropertyMap propertyMap = new PropertyMap())
            {
                propertyMap.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                propertyMap.Insert(Visual.Property.Type, new PropertyValue("Hello Goodbye"));

                var testingTarget = visualfactory.CreateVisual(propertyMap);
                Assert.IsNotNull(testingTarget, "Can't create success object VisualBase");
                Assert.IsInstanceOf <VisualBase>(testingTarget, "Should return VisualBase instance.");

                testingTarget.DepthIndex = 1;
                Assert.AreEqual(1, testingTarget.DepthIndex, "The DepthIndex got from DepthIndex is not right");

                testingTarget.Dispose();
            }

            visualfactory.Dispose();
            tlog.Debug(tag, $"VisualBaseDepthIndex END (OK)");
        }
コード例 #21
0
ファイル: test1.cs プロジェクト: yunmiha/TizenFX
        public void VisualTest2()
        {
            try
            {
                Tizen.Log.Debug("NUI", "##### VisualTest2() start! ######");

                VisualFactory visualfactory = VisualFactory.Instance;
                PropertyMap   textMap1      = new PropertyMap();
                textMap1.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
                textMap1.Insert(TextVisualProperty.Text, new PropertyValue("Hello"));
                textMap1.Insert(TextVisualProperty.PointSize, new PropertyValue(10.0f));

                PropertyMap textMap2    = new PropertyMap();
                VisualBase  textVisual1 = visualfactory.CreateVisual(textMap1);
                textVisual1.Creation = textMap2;
            }
            catch (Exception e)
            {
                Tizen.Log.Error("NUI", "Caught Exception" + e.ToString());
                throw new System.InvalidOperationException("visual test2 error!!!");
                //LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                //Assert.IsTrue(e is ArgumentException, "Argument Exception Not Recieved");
            }
        }
コード例 #22
0
        public void AddDummy(AegirLib.Behaviour.World.Transform transformBehaviour)
        {
            Visual3D dummyVisual = VisualFactory.GetDummyVisual();

            AddVisual(dummyVisual, transformBehaviour);
        }
コード例 #23
0
 public SceneActor ResolveRenderItem(Visual3D visual)
 {
     return(VisualFactory?.GetRenderItem(RenderMode, visual));
 }