Пример #1
0
        void Initialize()
        {
            Window.Instance.KeyEvent       += OnKeyEvent;
            Window.Instance.BackgroundColor = Color.Black;

            View _mainView = new View();

            _mainView.Size2D = Window.Instance.WindowSize;
            Window.Instance.Add(_mainView);

            VisualView _visualView = new VisualView();

            _visualView.BackgroundColor        = new Color(0.88f, 0.88f, 0.88f, 1.0f);
            _visualView.Size2D                 = new Size2D(650, 950);
            _visualView.ParentOrigin           = ParentOrigin.Center;
            _visualView.PositionUsesPivotPoint = true;
            _visualView.PivotPoint             = PivotPoint.Center;

            SVGVisual _svgVisual = new SVGVisual();

            _svgVisual.URL          = _imageUrl + "tiger.svg";
            _svgVisual.Origin       = Visual.AlignType.BottomEnd;
            _svgVisual.AnchorPoint  = Visual.AlignType.BottomEnd;
            _svgVisual.RelativeSize = new RelativeVector2(0.5f, 0.5f);

            _visualView.AddVisual("SVG-Image", _svgVisual);

            _mainView.Add(_visualView);
        }
Пример #2
0
        public void SVGVisualConstructor()
        {
            tlog.Debug(tag, $"SVGVisualConstructor START");

            var testingTarget = new SVGVisual();

            Assert.IsNotNull(testingTarget, "Can't create success object SVGVisual");
            Assert.IsInstanceOf <SVGVisual>(testingTarget, "Should be an instance of SVGVisual type.");

            testingTarget.Dispose();
            tlog.Debug(tag, $"SVGVisualConstructor END (OK)");
        }
Пример #3
0
        public void SVGVisualURL()
        {
            tlog.Debug(tag, $"SVGVisualURL START");

            var testingTarget = new SVGVisual();

            Assert.IsNotNull(testingTarget, "Can't create success object SVGVisual");
            Assert.IsInstanceOf <SVGVisual>(testingTarget, "Should be an instance of SVGVisual type.");

            testingTarget.URL = image_path;
            Assert.AreEqual(image_path, testingTarget.URL, "Retrieved URL should be equal to set value");

            testingTarget.Dispose();
            tlog.Debug(tag, $"SVGVisualURL END (OK)");
        }
Пример #4
0
        /// <summary>
        /// The method to create visual map for different kinds of primitives
        /// </summary>
        /// <param name="visualType"> The Visual type </param>
        /// <returns> The VisualMap to the Visual of the given type </returns>
        private VisualMap CreateVisualMap(string visualType)
        {
            VisualMap ThisVisualMap = null;

            switch (visualType)
            {
            case "Border":
                BorderVisual ThisBorderVisual = new BorderVisual();
                /// obligatory properties
                ThisBorderVisual.Color      = Color.Blue;
                ThisBorderVisual.BorderSize = 15.0f;
                ThisVisualMap = ThisBorderVisual;
                break;

            case "Color":
                ColorVisual ThisColorVisual = new ColorVisual();
                /// obligatory properties
                ThisColorVisual.MixColor = new Color(0.2f, 0.0f, 1.0f, 0.7f);
                /// optional properties
                ThisColorVisual.CornerRadius = 35.0f;
                ThisVisualMap = ThisColorVisual;
                break;

            case "RadialGradient":
                GradientVisual ThisRadialGradientVisual = new GradientVisual();
                /// obligatory properties
                /// coordinate system: top-left - (-0.5,-0.5); bottom-right - (0.5,0.5)
                ThisRadialGradientVisual.Center = new Vector2(0.0f, 0.0f);
                ThisRadialGradientVisual.Radius = 0.9f;
                /// optional properties
                PropertyArray ThisStopColor = new PropertyArray();
                ThisStopColor.Add(new PropertyValue(Color.Yellow));
                ThisStopColor.Add(new PropertyValue(Color.Blue));
                ThisStopColor.Add(new PropertyValue(new Color(0.0f, 1.0f, 0.0f, 1.0f)));
                ThisStopColor.Add(new PropertyValue(new Vector4(120.0f, 0.0f, 255.0f, 255.0f) / 255.0f));
                ThisRadialGradientVisual.StopColor = ThisStopColor;
                PropertyArray ThisStopOffset = new PropertyArray();
                ThisStopOffset.Add(new PropertyValue(0.0f));
                ThisStopOffset.Add(new PropertyValue(0.2f));
                ThisStopOffset.Add(new PropertyValue(0.4f));
                ThisStopOffset.Add(new PropertyValue(0.6f));
                ThisRadialGradientVisual.StopOffset = ThisStopOffset;
                ThisVisualMap = ThisRadialGradientVisual;
                break;

            case "LinearGradient":
                GradientVisual ThisLinearGradientVisual = new GradientVisual();
                /// obligatory properties
                /// coordinate system: top-left - (-0.5,-0.5); bottom-right - (0.5,0.5)
                ThisLinearGradientVisual.StartPosition = new Vector2(-0.5f, 0.5f);
                ThisLinearGradientVisual.EndPosition   = new Vector2(0.5f, -0.5f);
                /// optional properties
                ThisLinearGradientVisual.StopColor = new PropertyArray();
                ThisLinearGradientVisual.StopColor.Add(new PropertyValue(Color.Green));
                ThisLinearGradientVisual.StopColor.Add(new PropertyValue(Color.Blue));
                ThisVisualMap = ThisLinearGradientVisual;
                break;

            case "Image":
                ImageVisual ThisImageVisual = new ImageVisual();
                /// obligatory properties
                ThisImageVisual.URL = ImageUrl + "belt.jpg";
                /// optional properties
                ThisImageVisual.Origin           = Visual.AlignType.TopBegin;
                ThisImageVisual.AnchorPoint      = Visual.AlignType.TopBegin;
                ThisImageVisual.RelativePosition = new RelativeVector2(0.1f, 0.1f);
                ThisVisualMap = ThisImageVisual;
                break;

            case "NPatch":
                NPatchVisual ThisNPatchVisual = new NPatchVisual();
                /// obligatory properties
                ThisNPatchVisual.URL = ImageUrl + "heartsframe.png";
                /// optional properties (for all visual types)
                ThisNPatchVisual.Origin           = Visual.AlignType.Center;
                ThisNPatchVisual.AnchorPoint      = Visual.AlignType.Center;
                ThisNPatchVisual.RelativePosition = new RelativeVector2(0.0f, 0.0f);
                ThisVisualMap = ThisNPatchVisual;
                break;

            case "SVG":
                SVGVisual ThisSvgVisual = new SVGVisual();
                /// obligatory properties
                ThisSvgVisual.URL = ImageUrl + "tiger.svg";
                /// optional properties (for all visual types)
                ThisSvgVisual.Origin           = Visual.AlignType.BottomBegin;
                ThisSvgVisual.AnchorPoint      = Visual.AlignType.BottomBegin;
                ThisSvgVisual.RelativePosition = new RelativeVector2(0.1f, -0.1f);
                ThisVisualMap = ThisSvgVisual;
                break;

            case "Animated":
                AnimatedImageVisual ThisAnimatedVisual = new AnimatedImageVisual();
                /// obligatory properties
                ThisAnimatedVisual.URL = ImageUrl + "buble.gif";
                /// optional properties (for all visual types)
                ThisAnimatedVisual.Origin           = Visual.AlignType.TopEnd;
                ThisAnimatedVisual.AnchorPoint      = Visual.AlignType.TopEnd;
                ThisAnimatedVisual.RelativePosition = new RelativeVector2(-0.1f, 0.1f);
                ThisVisualMap = ThisAnimatedVisual;
                break;

            case "Mesh":
                MeshVisual ThisMeshVisual = new MeshVisual();
                /// obligatory properties
                ThisMeshVisual.ObjectURL    = ImageUrl + "Dino.obj";
                ThisMeshVisual.MaterialtURL = ImageUrl + "Dino.mtl";
                ThisMeshVisual.TexturesPath = ImageUrl + "textures/";
                /// optional properties (for all visual map types)
                ThisMeshVisual.Origin           = Visual.AlignType.BottomEnd;
                ThisMeshVisual.AnchorPoint      = Visual.AlignType.BottomEnd;
                ThisMeshVisual.RelativePosition = new RelativeVector2(0, -0.03f);
                ThisVisualMap = ThisMeshVisual;
                break;
            }

            /// properties common for visuals groups
            switch (visualType)
            {
            case "Border":
            case "Color":
            case "RadialGradient":
            case "LinearGradient":
                ThisVisualMap.RelativeSize = new RelativeVector2(0.3f, 0.2f);
                ThisVisualMap.Origin       = Visual.AlignType.TopBegin;
                ThisVisualMap.AnchorPoint  = Visual.AlignType.TopBegin;
                break;

            case "Image":
            case "NPatch":
            case "SVG":
            case "Animated":
                ThisVisualMap.RelativeSize = new RelativeVector2(ImageRelativeWidth, ImageRelativeHeight);
                break;

            case "Mesh":
                ThisVisualMap.RelativeSize = new RelativeVector2(2 * ImageRelativeWidth, 2 * ImageRelativeHeight);
                break;

            case "Sphere":
            case "ConicalFrustum":
            case "Cone":
            case "Cylinder":
            case "BeveledCube":
            case "Octahedron":
            case "Cube":
                ThisVisualMap = CreatePrimitiveVisual(visualType);
                ThisVisualMap.RelativeSize = new RelativeVector2(PrimitiveRelativeWidth, PrimitiveRelativeHeight);
                ThisVisualMap.Origin       = Visual.AlignType.TopCenter;
                ThisVisualMap.AnchorPoint  = Visual.AlignType.Center;
                break;
            }

            return(ThisVisualMap);
        }
        /// <summary>
        /// Visual Sample Application initialisation.
        /// </summary>
        private void Initialize()
        {
            Window.Instance.BackgroundColor = Color.White;
            // Show Visuals Type.
            // There are 11 Visuals will be marked with text
            // Color visual will be used to _visualView's Background
            // TextVisual don't need use it.
            text = new TextLabel[11];

            // Create a visual view.
            // Make it fill to Window.
            // Visuals will put on it.
            _visualView = new VisualView();
            _visualView.PositionUsesPivotPoint = true;
            _visualView.ParentOrigin           = ParentOrigin.TopLeft;
            _visualView.PivotPoint             = PivotPoint.TopLeft;
            _visualView.Size2D = Window.Instance.Size;

            // color visual.
            // color.R/G/B/A range 0 - 1(contain 0 and 1)
            // Renders a color to the visual's quad geometry.
            ColorVisual colorVisual = new ColorVisual();

            colorVisual.Color      = new Color(0.8f, 0.8f, 0.8f, 1.0f);
            _visualView.Background = colorVisual.OutputVisualMap;
            Window.Instance.GetDefaultLayer().Add(_visualView);

            // Create the text mark normal image visual.
            text[0] = CreateTextLabel("normal image visual", new Position2D(20, 20));
            Window.Instance.GetDefaultLayer().Add(text[0]);
            // normal image visual.
            // Renders a raster image ( jpg, png etc.) into the visual's quad geometry.
            ImageVisual imageVisual = new ImageVisual();

            imageVisual.URL            = image_jpg;
            imageVisual.Size           = new Size2D(200, 200);
            imageVisual.Position       = new Vector2(20.0f, 120.0f);
            imageVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            imageVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            imageVisual.Origin         = Visual.AlignType.TopBegin;
            imageVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _visualView.AddVisual("imageVisual", imageVisual);

            // Create the text mark normal image visual.
            text[1] = CreateTextLabel("svg image visual", new Position2D(340, 20));
            Window.Instance.GetDefaultLayer().Add(text[1]);
            // svg image visual.
            // Renders a svg image into the visual's quad geometry
            _svgVisuallView        = new VisualView();
            _svgVisuallView.Size2D = new Vector2(200, 200);
            _svgVisuallView.PositionUsesPivotPoint = true;
            _svgVisuallView.ParentOrigin           = ParentOrigin.TopLeft;
            _svgVisuallView.PivotPoint             = PivotPoint.TopLeft;
            _svgVisuallView.Position = new Position(340, 120, 0);
            Window.Instance.GetDefaultLayer().Add(_svgVisuallView);
            SVGVisual svgVisual = new SVGVisual();

            svgVisual.URL            = image_svg;
            svgVisual.Size           = new Vector2(200, 200);
            svgVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            svgVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            svgVisual.Origin         = Visual.AlignType.Center;
            svgVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _svgVisuallView.AddVisual("svgVisual", svgVisual);

            // Create the text mark npatch image visual.
            text[2] = CreateTextLabel("npatch image visual", new Position2D(680, 20));
            Window.Instance.GetDefaultLayer().Add(text[2]);
            // n patch image visual.
            // Renders an npatch or a 9patch image. Uses nonquad
            // geometry. Both geometry and texture are cached to
            // reduce memory consumption if the same npatch image
            // is used elsewhere.
            NPatchVisual nPatchVisual = new NPatchVisual();

            nPatchVisual.URL            = image_9patch;
            nPatchVisual.Size           = new Vector2(200, 200);
            nPatchVisual.Position       = new Vector2(680, 120);
            nPatchVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            nPatchVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            nPatchVisual.Origin         = Visual.AlignType.TopBegin;
            nPatchVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _visualView.AddVisual("nPatchVisual", nPatchVisual);

            // Create the text mark animated image visual.
            text[3] = CreateTextLabel("animated image visual", new Position2D(1000, 20));
            Window.Instance.GetDefaultLayer().Add(text[3]);
            // animated image visual.
            // Renders an animated image into the visual's quad geometry.
            // Currently, only the GIF format is supported.
            AnimatedImageVisual animatedImageVisual = new AnimatedImageVisual();

            animatedImageVisual.URL            = image_gif;
            animatedImageVisual.Size           = new Size2D(200, 200);
            animatedImageVisual.Position       = new Vector2(1000.0f, 120.0f);
            animatedImageVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            animatedImageVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            animatedImageVisual.Origin         = Visual.AlignType.TopBegin;
            animatedImageVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _visualView.AddVisual("animatedImageVisual", animatedImageVisual);

            // text visual.
            TextVisual textVisual = new TextVisual();

            textVisual.Text                = "This is a TextVisual";
            textVisual.PointSize           = 5.0f;
            textVisual.Size                = new Vector2(400.0f, 100.0f);
            textVisual.Position            = new Vector2(1150.0f, 60.0f);
            textVisual.PositionPolicy      = VisualTransformPolicyType.Absolute;
            textVisual.SizePolicy          = VisualTransformPolicyType.Absolute;
            textVisual.Origin              = Visual.AlignType.TopBegin;
            textVisual.AnchorPoint         = Visual.AlignType.TopBegin;
            textVisual.HorizontalAlignment = HorizontalAlignment.Center;
            _visualView.AddVisual("textVisual", textVisual);

            // Create the text mark border visual.
            text[4] = CreateTextLabel("border visual", new Position2D(20, 450));
            Window.Instance.GetDefaultLayer().Add(text[4]);
            // borderVisual
            // Renders a color as an internal border to the visual's geometry.
            BorderVisual borderVisual = new BorderVisual();

            borderVisual.Color          = Color.Red;
            borderVisual.BorderSize     = 5.0f;
            borderVisual.Size           = new Vector2(200.0f, 200.0f);
            borderVisual.Position       = new Vector2(20.0f, 550.0f);
            borderVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            borderVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            borderVisual.Origin         = Visual.AlignType.TopBegin;
            borderVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _visualView.AddVisual("borderVisual", borderVisual);

            // Create the text mark gradient visual.
            text[5] = CreateTextLabel("gradient visual", new Position2D(240, 450));
            Window.Instance.GetDefaultLayer().Add(text[5]);
            // gradient visual
            // Renders a smooth transition of colors to the visual's quad geometry.
            // Both Linear and Radial gradients are supported.
            GradientVisual gradientVisual = new GradientVisual();
            // Create the PropertyArray of stopOffset.
            PropertyArray stopOffset = new PropertyArray();

            stopOffset.Add(new PropertyValue(0.0f));
            stopOffset.Add(new PropertyValue(0.3f));
            stopOffset.Add(new PropertyValue(0.6f));
            stopOffset.Add(new PropertyValue(0.8f));
            stopOffset.Add(new PropertyValue(1.0f));
            gradientVisual.StopOffset = stopOffset;
            // Create the PropertyArray of stopColor.
            PropertyArray stopColor = new PropertyArray();

            stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 255.0f) / 255.0f));
            stopColor.Add(new PropertyValue(new Vector4(196.0f, 198.0f, 71.0f, 122.0f) / 255.0f));
            stopColor.Add(new PropertyValue(new Vector4(214.0f, 37.0f, 139.0f, 191.0f) / 255.0f));
            stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 150.0f) / 255.0f));
            stopColor.Add(new PropertyValue(Color.Yellow));
            // Set the color at the stop offsets.
            // At least 2 values required to show a gradient.
            gradientVisual.StopColor = stopColor;
            // Set the start position of a linear gradient.
            gradientVisual.StartPosition = new Vector2(0.5f, 0.5f);
            // Set the end position of a linear gradient.
            gradientVisual.EndPosition = new Vector2(-0.5f, -0.5f);
            // Set the center point of a radial gradient.
            gradientVisual.Center = new Vector2(0.5f, 0.5f);
            // Set the size of the radius of a radial gradient.
            gradientVisual.Radius         = 1.414f;
            gradientVisual.Size           = new Vector2(200.0f, 200.0f);
            gradientVisual.Position       = new Vector2(240.0f, 550.0f);
            gradientVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            gradientVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            gradientVisual.Origin         = Visual.AlignType.TopBegin;
            gradientVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            _visualView.AddVisual("gradientVisual1", gradientVisual);

            // Create the text mark gradient visual.
            text[6] = CreateTextLabel("primitive visual: Cone", new Position2D(460, 450));
            Window.Instance.GetDefaultLayer().Add(text[6]);
            // primitive visual: Cone
            // Renders a simple 3D shape, such as a cube or sphere. Scaled to fit the control.
            // The shapes are generated with clockwise winding and backface culling on by default.
            // Cone : Equivalent to a conical frustrum with top radius of zero.
            PrimitiveVisual primitiveVisual1 = new PrimitiveVisual();

            primitiveVisual1.Shape           = PrimitiveVisualShapeType.Cone;
            primitiveVisual1.BevelPercentage = 0.3f;
            primitiveVisual1.BevelSmoothness = 0.0f;
            primitiveVisual1.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
            primitiveVisual1.MixColor        = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
            primitiveVisual1.Size            = new Vector2(200.0f, 200.0f);
            primitiveVisual1.Position        = new Vector2(460.0f, 550.0f);
            primitiveVisual1.PositionPolicy  = VisualTransformPolicyType.Absolute;
            primitiveVisual1.SizePolicy      = VisualTransformPolicyType.Absolute;
            primitiveVisual1.Origin          = Visual.AlignType.TopBegin;
            primitiveVisual1.AnchorPoint     = Visual.AlignType.TopBegin;
            _visualView.AddVisual("primitiveVisual1", primitiveVisual1);

            // Create the text mark primitive visual: Sphere.
            text[7] = CreateTextLabel("primitive visual: Sphere", new Position2D(680, 450));
            Window.Instance.GetDefaultLayer().Add(text[7]);
            // primitive visual: Sphere
            // Sphere : Default.
            PrimitiveVisual primitiveVisual2 = new PrimitiveVisual();

            primitiveVisual2.Shape           = PrimitiveVisualShapeType.Sphere;
            primitiveVisual2.BevelPercentage = 0.3f;
            primitiveVisual2.BevelSmoothness = 0.0f;
            primitiveVisual2.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
            primitiveVisual2.MixColor        = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
            primitiveVisual2.Size            = new Vector2(200.0f, 200.0f);
            primitiveVisual2.Position        = new Vector2(680.0f, 550.0f);
            primitiveVisual2.PositionPolicy  = VisualTransformPolicyType.Absolute;
            primitiveVisual2.SizePolicy      = VisualTransformPolicyType.Absolute;
            primitiveVisual2.Origin          = Visual.AlignType.TopBegin;
            primitiveVisual2.AnchorPoint     = Visual.AlignType.TopBegin;
            _visualView.AddVisual("primitiveVisual2", primitiveVisual2);

            // Create the text mark primitive visual: Cylinder.
            text[8] = CreateTextLabel("primitive visual: Cylinder", new Position2D(1000, 450));
            Window.Instance.GetDefaultLayer().Add(text[8]);
            // primitive visual: Cylinder
            // Cylinder : Equivalent to a conical frustrum with
            // equal radii for the top and bottom circles.
            PrimitiveVisual primitiveVisual3 = new PrimitiveVisual();

            primitiveVisual3.Shape           = PrimitiveVisualShapeType.Cylinder;
            primitiveVisual3.BevelPercentage = 0.3f;
            primitiveVisual3.BevelSmoothness = 0.0f;
            primitiveVisual3.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
            primitiveVisual3.MixColor        = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
            primitiveVisual3.Size            = new Vector2(200.0f, 200.0f);
            primitiveVisual3.Position        = new Vector2(1000.0f, 550.0f);
            primitiveVisual3.PositionPolicy  = VisualTransformPolicyType.Absolute;
            primitiveVisual3.SizePolicy      = VisualTransformPolicyType.Absolute;
            primitiveVisual3.Origin          = Visual.AlignType.TopBegin;
            primitiveVisual3.AnchorPoint     = Visual.AlignType.TopBegin;
            _visualView.AddVisual("primitiveVisual3", primitiveVisual3);

            // Create the text mark primitive visual: ConicalFrustrum.
            text[9] = CreateTextLabel("primitive visual: ConicalFrustrum", new Position2D(1220, 450));
            Window.Instance.GetDefaultLayer().Add(text[9]);
            // primitive visual: ConicalFrustrum
            // ConicalFrustrum : The area bound between two circles,
            // i.e. a cone with the tip removed.
            PrimitiveVisual primitiveVisual4 = new PrimitiveVisual();

            primitiveVisual4.Shape           = PrimitiveVisualShapeType.ConicalFrustrum;
            primitiveVisual4.BevelPercentage = 0.3f;
            primitiveVisual4.BevelSmoothness = 0.0f;
            primitiveVisual4.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
            primitiveVisual4.MixColor        = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
            primitiveVisual4.Size            = new Vector2(200.0f, 200.0f);
            primitiveVisual4.Position        = new Vector2(1220.0f, 550.0f);
            primitiveVisual4.PositionPolicy  = VisualTransformPolicyType.Absolute;
            primitiveVisual4.SizePolicy      = VisualTransformPolicyType.Absolute;
            primitiveVisual4.Origin          = Visual.AlignType.TopBegin;
            primitiveVisual4.AnchorPoint     = Visual.AlignType.TopBegin;
            _visualView.AddVisual("primitiveVisual4", primitiveVisual4);

            // Create the text mark primitive visual: ConicalFrustrum.
            text[10] = CreateTextLabel("primitive visual: Cube", new Position2D(1460, 450));
            Window.Instance.GetDefaultLayer().Add(text[10]);
            // primitive visual: Cube
            // Cube : Equivalent to a bevelled cube with a
            // bevel percentage of zero.
            PrimitiveVisual primitiveVisual5 = new PrimitiveVisual();

            primitiveVisual5.Shape           = PrimitiveVisualShapeType.Cube;
            primitiveVisual5.BevelPercentage = 0.3f;
            primitiveVisual5.BevelSmoothness = 0.0f;
            primitiveVisual5.ScaleDimensions = new Vector3(1.0f, 1.0f, 0.3f);
            primitiveVisual5.MixColor        = new Vector4((245.0f / 255.0f), (188.0f / 255.0f), (73.0f / 255.0f), 1.0f);
            primitiveVisual5.Size            = new Vector2(200.0f, 200.0f);
            primitiveVisual5.Position        = new Vector2(1460.0f, 550.0f);
            primitiveVisual5.PositionPolicy  = VisualTransformPolicyType.Absolute;
            primitiveVisual5.SizePolicy      = VisualTransformPolicyType.Absolute;
            primitiveVisual5.Origin          = Visual.AlignType.TopBegin;
            primitiveVisual5.AnchorPoint     = Visual.AlignType.TopBegin;
            _visualView.AddVisual("primitiveVisual5", primitiveVisual5);

            Window.Instance.KeyEvent += AppBack;
        }
        /// <summary>
        /// Create VisualMap
        /// </summary>
        /// <param name="type">A string that denote visual type</param>
        /// <param name="position">A position of the created visual</param>
        /// <returns>VisualView</returns>
        private VisualView CreateVisualMap(string type, Vector2 position)
        {
            // Visual Map declaration
            VisualMap visualMap = null;
            // TextVisual declaration
            TextVisual textVisual = null;

            switch (type)
            {
            // Image Visual
            case "Image":
                ImageVisual imageVisual = new ImageVisual();
                // Set Visual URL
                imageVisual.URL = mImageJpgUrl;
                visualMap       = imageVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "Color":
                ColorVisual colorVisual = new ColorVisual();
                // Set Visual Color
                colorVisual.Color = new Color(43.0f / 255.0f, 145.0f / 255.0f, 175.0f / 255.0f, 1.0f);
                visualMap         = colorVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "NPatch":
                NPatchVisual nPatchVisual = new NPatchVisual();
                // Set Visual URL
                nPatchVisual.URL = mImageNpatchUrl;
                visualMap        = nPatchVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "SVG":
                SVGVisual svgVisual = new SVGVisual();
                // Set Visual URL
                svgVisual.URL = mImageSvgUrl;
                visualMap     = svgVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "Animated":
                AnimatedImageVisual animatedImageVisual = new AnimatedImageVisual();
                // Set Visual URL
                animatedImageVisual.URL = mImageGifUrl;
                visualMap = animatedImageVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "Border":
                BorderVisual borderVisual = new BorderVisual();
                // Set Visual Color
                borderVisual.Color = Color.White;
                // Set Visual Size
                borderVisual.BorderSize = 5.0f;
                visualMap = borderVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "Gradient":
                // Set GradientVisual properties
                GradientVisual gradientVisual = new GradientVisual();
                PropertyArray  stopOffset     = new PropertyArray();
                stopOffset.Add(new PropertyValue(0.0f));
                stopOffset.Add(new PropertyValue(0.3f));
                stopOffset.Add(new PropertyValue(0.6f));
                stopOffset.Add(new PropertyValue(0.8f));
                stopOffset.Add(new PropertyValue(1.0f));
                gradientVisual.StopOffset = stopOffset;
                // Create the PropertyArray of stopColor.
                PropertyArray stopColor = new PropertyArray();
                stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 255.0f) / 255.0f));
                stopColor.Add(new PropertyValue(new Vector4(196.0f, 198.0f, 71.0f, 122.0f) / 255.0f));
                stopColor.Add(new PropertyValue(new Vector4(214.0f, 37.0f, 139.0f, 191.0f) / 255.0f));
                stopColor.Add(new PropertyValue(new Vector4(129.0f, 198.0f, 193.0f, 150.0f) / 255.0f));
                stopColor.Add(new PropertyValue(Color.Yellow));
                // Set the color at the stop offsets.
                // At least 2 values required to show a gradient.
                gradientVisual.StopColor = stopColor;
                // Set the start position of a linear gradient.
                gradientVisual.StartPosition = new Vector2(0.5f, 0.5f);
                // Set the end position of a linear gradient.
                gradientVisual.EndPosition = new Vector2(-0.5f, -0.5f);
                // Set the center point of a radial gradient.
                gradientVisual.Center = new Vector2(0.5f, 0.5f);
                // Set the size of the radius of a radial gradient.
                gradientVisual.Radius = 1.414f;
                visualMap             = gradientVisual;
                // Create TextVisual
                textVisual = CreateTextVisual(type + " Visual");
                break;

            case "Cone":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.Cone);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "Sphere":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.Sphere);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "Cylinder":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.Cylinder);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "ConicalFrustrum":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.ConicalFrustrum);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "Cube":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.Cube);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "Octahedron":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.Octahedron);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            case "BevelledCube":
                visualMap = CreatePrimitiveVisual(PrimitiveVisualShapeType.BevelledCube);
                // Create TextVisual
                textVisual = CreateTextVisual("PrimitiveVisual(" + type + ")");
                break;

            default:
                break;
            }
            if (visualMap != null)
            {
                // Set the common properties
                visualMap.Size           = mVisualSize;
                visualMap.Position       = new Vector2(0.0f, 0.0f);
                visualMap.PositionPolicy = VisualTransformPolicyType.Absolute;
                visualMap.SizePolicy     = VisualTransformPolicyType.Absolute;
                visualMap.Origin         = Visual.AlignType.Center;
                visualMap.AnchorPoint    = Visual.AlignType.Center;
            }
            if (textVisual != null)
            {
                textVisual.Position = new Vector2(0.0f, mVisualSize.Height / 2 + 25);
            }

            VisualView subVisualView = new VisualView();

            subVisualView.PositionUsesPivotPoint = true;
            subVisualView.ParentOrigin           = ParentOrigin.CenterLeft;
            subVisualView.PivotPoint             = PivotPoint.Center;
            subVisualView.Position2D             = position;
            subVisualView.Size2D = mVisualSize;

            subVisualView.AddVisual(type + "Visual", visualMap);
            subVisualView.AddVisual(type + "TextVisual", textVisual);

            return(subVisualView);
        }
Пример #7
0
        void CreateLayout()
        {
            window = Window.Instance;
            window.SetTransparency(true);
            window.BackgroundColor = new Color(1.0f, 1.0f, 1.0f, 0.7f);

            titleLayout      = new TableView(2, 1);
            titleLayout.Name = ("TitleLayout");
            titleLayout.PositionUsesPivotPoint = true;
            titleLayout.ParentOrigin           = ParentOrigin.Center;
            titleLayout.PivotPoint             = PivotPoint.Center;
            var layoutSizeWidth  = window.Size.Width * 0.7f;
            var layoutSizeHeight = window.Size.Height * 0.7f;

            titleLayout.Size2D = new Size2D((int)(layoutSizeWidth), (int)(layoutSizeHeight));
            titleLayout.SetCellPadding(new Size2D(10, 10));
            titleLayout.BackgroundColor = Color.Cyan;
            window.Add(titleLayout);

            title      = new TextLabel("Visual Transition / SVG / AGIF Example");
            title.Name = ("Title");
            title.SetStyleName("Title");
            title.WidthResizePolicy   = ResizePolicyType.FillToParent;
            title.HeightResizePolicy  = ResizePolicyType.UseNaturalSize;
            title.HorizontalAlignment = HorizontalAlignment.Center;
            titleLayout.AddChild(title, new TableView.CellPosition(0, 0));
            titleLayout.SetFitHeight(0);

            contentLayout      = new TableView(3, 2);
            contentLayout.Name = ("ContentLayout");
            contentLayout.WidthResizePolicy  = ResizePolicyType.FillToParent;
            contentLayout.HeightResizePolicy = ResizePolicyType.FillToParent;
            contentLayout.PivotPoint         = PivotPoint.TopLeft;
            contentLayout.SetCellPadding(new Size2D(10, 10));
            contentLayout.BackgroundColor = Color.Magenta;
            titleLayout.AddChild(contentLayout, new TableView.CellPosition(1, 0));

            //////////////////////////////////////////////////////////////////////
            // Create a content view
            contentView = new VisualView();
            contentView.WidthResizePolicy  = ResizePolicyType.SizeRelativeToParent;
            contentView.HeightResizePolicy = ResizePolicyType.SizeRelativeToParent;
            //contentView.Size2D = new Size2D(250, 250);
            contentView.BackgroundImage = _resPath + "/images/background-blocks.jpg";

            icon                = new ImageVisual();
            icon.URL            = _resPath + "/images/application-icon-0.png";
            icon.DepthIndex     = 1;
            icon.Size           = new Size2D(50, 50);
            icon.SizePolicy     = VisualTransformPolicyType.Absolute;
            icon.Position       = new Position2D(5, 5);
            icon.PositionPolicy = VisualTransformPolicyType.Absolute;
            icon.Origin         = Visual.AlignType.TopBegin;
            icon.AnchorPoint    = Visual.AlignType.TopBegin;
            icon.MixColor       = new Color(0, 1, 0, 0.5f);
            icon.Opacity        = 0.5f;
            contentView.AddVisual("icon_visual1", icon);

            contentLayout.AddChild(contentView, new TableView.CellPosition(0, 0));

            button1              = new PushButton();
            button1.LabelText    = "Toggle Transition";
            button1.Name         = ("ToggleTransition");
            button1.ParentOrigin = ParentOrigin.Center;
            button1.PivotPoint   = PivotPoint.Center;
            button1.Clicked     += (obj, ev) =>
            {
                active = !active;
                StartTransition(active);
                return(true);
            };
            button1.WidthResizePolicy  = ResizePolicyType.FillToParent;
            button1.HeightResizePolicy = ResizePolicyType.FillToParent;
            button1.Focusable          = true;
            button1.UpFocusableView    = button3;
            button1.DownFocusableView  = button2;
            contentLayout.AddChild(button1, new TableView.CellPosition(0, 1));

            //////////////////////////////////////////////////////////////////////
            // make NPatch visual test
            NPatchVisual npatch1 = new NPatchVisual();

            npatch1.URL            = _resPath + "/images/gallery-2.jpg";
            npatch1.Size           = new Size2D(400, 400);
            npatch1.SizePolicy     = VisualTransformPolicyType.Absolute;
            npatch1.Position       = new Position2D(400, 0);
            npatch1.PositionPolicy = VisualTransformPolicyType.Absolute;
            npatch1.Origin         = Visual.AlignType.TopBegin;
            npatch1.AnchorPoint    = Visual.AlignType.TopBegin;
            npatch1.Border         = new Rectangle(100, 100, 100, 100);
            npatch1.DepthIndex     = 2;
            npatch1.MixColor       = new Color(1, 0, 0, 1);
            npatch1.Opacity        = 0.5f;
            contentView.AddVisual("npatchImageVisual1", npatch1);

            //////////////////////////////////////////////////////////////////////
            // make SVG visual test
            visualView1 = new VisualView();
            visualView1.WidthResizePolicy  = ResizePolicyType.FillToParent;
            visualView1.HeightResizePolicy = ResizePolicyType.FillToParent;
            visualView1.BackgroundColor    = Color.Black;
            contentLayout.AddChild(visualView1, new TableView.CellPosition(1, 0));

            svgVisual                = new SVGVisual();
            svgVisual.URL            = _resPath + "/images/Kid1.svg";
            svgVisual.Size           = new Size2D(300, 300);
            svgVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            svgVisual.Position       = new Position2D(0, 0);
            svgVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            svgVisual.Origin         = Visual.AlignType.TopBegin;
            svgVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            visualView1.AddVisual("svg_visual1", svgVisual);

            button2                    = new PushButton();
            button2.LabelText          = "SVG Visual Test";
            button2.Name               = ("svg_visual_test");
            button2.PivotPoint         = PivotPoint.Center;
            button2.WidthResizePolicy  = ResizePolicyType.FillToParent;
            button2.HeightResizePolicy = ResizePolicyType.FillToParent;
            button2.Clicked           += (obj, ev) =>
            {
                cnt1++;
                if (cnt1 % 2 == 0)
                {
                    svgVisual.URL = _resPath + "/images/World.svg";
                }
                else
                {
                    svgVisual.URL = _resPath + "/images/Mail.svg";
                }
                Tizen.Log.Fatal(TAG, "svg button clicked!");
                return(true);
            };
            button2.Focusable         = true;
            button2.UpFocusableView   = button1;
            button2.DownFocusableView = button2;
            contentLayout.AddChild(button2, new TableView.CellPosition(1, 1));

            //////////////////////////////////////////////////////////////////////
            // make AnimatedImage visual test
            visualView2 = new VisualView();
            visualView2.WidthResizePolicy  = ResizePolicyType.FillToParent;
            visualView2.HeightResizePolicy = ResizePolicyType.FillToParent;
            visualView2.BackgroundColor    = Color.Blue;
            contentLayout.AddChild(visualView2, new TableView.CellPosition(2, 0));

            gifVisual                = new AnimatedImageVisual();
            gifVisual.URL            = _resPath + "/images/dog-anim.gif";
            gifVisual.Size           = new Size2D(200, 200);
            gifVisual.SizePolicy     = VisualTransformPolicyType.Absolute;
            gifVisual.Position       = new Position2D(0, 0);
            gifVisual.PositionPolicy = VisualTransformPolicyType.Absolute;
            gifVisual.Origin         = Visual.AlignType.TopBegin;
            gifVisual.AnchorPoint    = Visual.AlignType.TopBegin;
            visualView2.AddVisual("gif_visual", gifVisual);

            button3                    = new PushButton();
            button3.LabelText          = "AnimatedImage Visual Test";
            button3.Name               = ("gif_visual_test");
            button3.PivotPoint         = PivotPoint.Center;
            button3.WidthResizePolicy  = ResizePolicyType.FillToParent;
            button3.HeightResizePolicy = ResizePolicyType.FillToParent;
            button3.Clicked           += (obj, ev) =>
            {
                Tizen.Log.Fatal(TAG, "gif button clicked!");
                cnt2++;
                int gifNum = cnt2 % 15;
                gifVisual.URL     = _resPath + "/images/anim-gif/" + gifNum + ".gif";
                button3.LabelText = "file:" + gifNum + ".gif";
                return(true);
            };
            button3.Focusable         = true;
            button3.DownFocusableView = button1;
            button3.UpFocusableView   = button2;
            contentLayout.AddChild(button3, new TableView.CellPosition(2, 1));

            FocusManager.Instance.SetCurrentFocusView(button1);
        }