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); } } } } }
public RendererViewport(HelixViewport3D sceneViewport) { RenderMode = RenderingMode.Solid; this.viewport = sceneViewport; this.visualFactory = VisualFactory; listeners = new List <RenderItemListener>(); }
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); } }
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)"); }
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))); }
/// <summary/> public override void Init(Variation v) { base.Init(v); v.AssertExistenceOf("ExpectedException", "Visual"); exceptionType = Type.GetType(v["ExpectedException"]); visual = VisualFactory.MakeVisual(v["Visual"]); }
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)"); }
public VisualGraphics DrawVisual(GraphicsBase graphics) { VisualGraphics visual = VisualFactory.Create(graphics); this.VisualList.Add(visual); this.AddVisualChild(visual); // 该函数只会把DrawableVisual和DrawableVisualLayer关联起来,在渲染的时候并不会真正渲染。关联的目的是为了做命中测试(HitTest)。 visual.Render(); return(visual); }
/// <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"]); }
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); } }
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); } }
/// <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)); }
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)"); }
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)"); }
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)"); }
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); }
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); }
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)"); }
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)"); }
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)"); }
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"); } }
public void AddDummy(AegirLib.Behaviour.World.Transform transformBehaviour) { Visual3D dummyVisual = VisualFactory.GetDummyVisual(); AddVisual(dummyVisual, transformBehaviour); }
public SceneActor ResolveRenderItem(Visual3D visual) { return(VisualFactory?.GetRenderItem(RenderMode, visual)); }