Exemple #1
0
 /// <summary>
 /// Assigns the default values to core.
 /// </summary>
 /// <param name="core">The core.</param>
 protected override void AssignDefaultValuesToSceneNode(SceneNode core)
 {
     material.LineColor  = Color.ToColor4();
     material.Thickness  = (float)Thickness;
     material.Smoothness = (float)Smoothness;
     material.FixedSize  = FixedSize;
     base.AssignDefaultValuesToSceneNode(core);
 }
Exemple #2
0
        public override void DrawText(string text, Font font, TextLayout layout, Rectangle bounds, Color color)
        {
            var format = Format(font, layout);

            //TextLayoutDW d = new TextLayoutDW(FactoryDW, text, format, 10, 100);
            //d.HitTestPoint();
            SolidColorBrush.Color = color.ToColor4();
            DeviceContext.DrawText(text, format, bounds.ToRectangleF(), SolidColorBrush);
        }
Exemple #3
0
 public void ShouldConvertToColor4()
 {
     var color = new Color(0.1f, 0.2f, 0.3f, 0.4f);
     var color4 = color.ToColor4();
     Assert.AreEqual(color.R, color4.R, "Red component mismatch!");
     Assert.AreEqual(color.G, color4.G, "Green component mismatch!");
     Assert.AreEqual(color.B, color4.B, "Blue component mismatch!");
     Assert.AreEqual(color.A, color4.A, "Alpha component mismatch!");
 }
Exemple #4
0
 public static void Uniform(int shader, ref Matrix4 projection, Color ambient)
 {
     lock (MasterRenderer.GLLock)
     {
         GL.UseProgram(shader);
         GL.UniformMatrix4(GetLocation(shader, "projection"), false, ref projection);
         GL.Uniform4(GetLocation(shader, "proximityColor"), ambient.ToColor4());
     }
 }
Exemple #5
0
 /// <summary>
 /// Assigns the default values to core.
 /// </summary>
 /// <param name="core">The core.</param>
 protected override void AssignDefaultValuesToSceneNode(SceneNode core)
 {
     if (core is LineNode n)
     {
         n.Color      = Color.ToColor4();
         n.Thickness  = (float)Thickness;
         n.Smoothness = (float)Smoothness;
     }
     base.AssignDefaultValuesToSceneNode(core);
 }
Exemple #6
0
        public void ShouldConvertToColor4()
        {
            var color  = new Color(0.1f, 0.2f, 0.3f, 0.4f);
            var color4 = color.ToColor4();

            Assert.AreEqual(color.R, color4.R, "Red component mismatch!");
            Assert.AreEqual(color.G, color4.G, "Green component mismatch!");
            Assert.AreEqual(color.B, color4.B, "Blue component mismatch!");
            Assert.AreEqual(color.A, color4.A, "Alpha component mismatch!");
        }
Exemple #7
0
        public override void FillRoundedRectangle(Rectangle bounds, Vector2 radius, Color color)
        {
            var roundedRectangle = new RoundedRectangle()
            {
                RadiusX = radius.X,
                RadiusY = radius.Y,
                Rect    = bounds.ToRectangleF(),
            };

            SolidColorBrush.Color = color.ToColor4();
            DeviceContext.FillRoundedRectangle(roundedRectangle, SolidColorBrush);
        }
        private void Update(bool forceUpdate = false)
        {
            if (isUpdated || forceUpdate)
            {
                isUpdated = false;

                strokeBrush?.Dispose();
                strokeBrush = new d2.SolidColorBrush(Renderer.Device, _stroke.ToColor4());

                strokeStyle?.Dispose();
                strokeStyle = new d2.StrokeStyle(Renderer.Factory, _strokeStyleProp);
            }
        }
 protected override MaterialCore OnCreateCore()
 {
     return(new LineMaterialCore()
     {
         Name = Name,
         LineColor = Color.ToColor4(),
         Smoothness = (float)Smoothness,
         Thickness = (float)Thickness,
         EnableDistanceFading = EnableDistanceFading,
         FadingNearDistance = (float)FadingNearDistance,
         FadingFarDistance = (float)FadingFarDistance
     });
 }
Exemple #10
0
        public void ShouldReturnValidArgbValue()
        {
            var color    = new Color(0.1f, 0.2f, 0.3f, 0.4f);
            var color4   = color.ToColor4();
            var argb     = color4.ToArgb();
            var expected =
                (uint)(color4.A * byte.MaxValue) << 24 |
                    (uint)(color4.R * byte.MaxValue) << 16 |
                    (uint)(color4.G * byte.MaxValue) << 8 |
                    (uint)(color4.B * byte.MaxValue);

            Assert.AreEqual(unchecked ((int)expected), argb);
        }
Exemple #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="rectangle"></param>
        public void SetClipRectangle(int index, Rectangle rectangle, Color color)
        {
            if (index < 0 || index >= MaxSpriteFrames)
            {
                throw new ArgumentOutOfRangeException("index", "must be greater or equal to zero and less than MaxClipRectangles (" + MaxSpriteFrames.ToString() + ")");
            }

            var rect   = new RectangleF(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
            var color4 = color.ToColor4();

            framesData[index] = new SpriteFrame(rect, color4);

            dirty = true;
        }
Exemple #12
0
 protected override MaterialCore OnCreateCore()
 {
     return(new CustomPointMaterialCore()
     {
         PointColor = Color.ToColor4(),
         Width = (float)Size.Width,
         Height = (float)Size.Height,
         Figure = Figure,
         FigureRatio = (float)FigureRatio,
         Name = Name,
         EnableDistanceFading = EnableDistanceFading,
         FadingNearDistance = (float)FadingNearDistance,
         FadingFarDistance = (float)FadingFarDistance
     });
 }
Exemple #13
0
        public void SetOspMaterial()
        {
            if (DiffuseColor != null)
            {
                this.Material = new PhongMaterial();

                Color4Collection colors = new Color4Collection();

                for (int i = 0; i < this.Geometry.Positions.Count; i++)
                {
                    colors.Add(DiffuseColor.ToColor4());
                }

                this.Geometry.Colors = colors;
            }
        }
 protected override MaterialCore OnCreateCore()
 {
     return(new LineMaterialCore()
     {
         Name = Name,
         LineColor = Color.ToColor4(),
         Smoothness = (float)Smoothness,
         Thickness = (float)Thickness,
         EnableDistanceFading = EnableDistanceFading,
         FadingNearDistance = (float)FadingNearDistance,
         FadingFarDistance = (float)FadingFarDistance,
         Texture = Texture,
         TextureScale = (float)TextureScale,
         SamplerDescription = SamplerDescription,
         FixedSize = FixedSize
     });
 }
Exemple #15
0
        public CGizmoSelectionRegion(OrientedBoundingBox bounds, EGizmoAxis axis, Color drawColor)
        {
            BoundingBox = bounds;
            TargetAxis  = axis;

            if (TargetAxis.HasFlag(EGizmoAxis.X))
            {
                NumAxis++;
            }

            if (TargetAxis.HasFlag(EGizmoAxis.Y))
            {
                NumAxis++;
            }

            if (TargetAxis.HasFlag(EGizmoAxis.Z))
            {
                NumAxis++;
            }

            DrawColor = drawColor.ToColor4();
        }
        private void Update(bool forceUpdate = false)
        {
            if (isUpdated || forceUpdate)
            {
                isUpdated = false;

                geometry?.Dispose();
                geometry = new d2.PathGeometry(Renderer.Factory);

                var s = geometry.Open();

                s.BeginFigure(Points[0], d2.FigureBegin.Filled);
                s.AddLines(Points.Select(v2 => new mi.RawVector2(v2.X, v2.Y)).ToArray());
                s.EndFigure(d2.FigureEnd.Closed);
                s.Close();

                strokeBrush?.Dispose();
                strokeBrush = new d2.SolidColorBrush(Renderer.Device, _stroke.ToColor4());

                fillBrush?.Dispose();
                fillBrush = new d2.SolidColorBrush(Renderer.Device, _fill.ToColor4());
            }
        }
		public void DrawLine(DVector3 pos0, DVector3 pos1, Color color)
		{
			lines.Add(new Gis.CartPoint {
				X = pos0.X,
				Y = pos0.Y,
				Z = pos0.Z,
				Tex0	= Vector4.Zero,
				Color	= color.ToColor4()
			});
			lines.Add(new Gis.CartPoint {
				X = pos1.X,
				Y = pos1.Y,
				Z = pos1.Z,
				Tex0	= Vector4.Zero,
				Color	= color.ToColor4()
			});

			isDirty = true;
		}
 public VertexPosColTex(Vector4 position, Color color, TextureCoordinate textureCoordinate)
     : this(position, color.ToColor4(), textureCoordinate)
 {
 }
 public override void Clear(Color color)
 {
     GL.ClearColor(color.ToColor4());
     GL.Clear(ClearBufferMask.ColorBufferBit);
 }
Exemple #20
0
 public void ShouldReturnValidArgbValue()
 {
     var color = new Color(0.1f, 0.2f, 0.3f, 0.4f);
     var color4 = color.ToColor4();
     var argb = color4.ToArgb();
     var expected =
         (uint) (color4.A * byte.MaxValue) << 24 |
         (uint) (color4.R * byte.MaxValue) << 16 |
         (uint) (color4.G * byte.MaxValue) << 8 |
         (uint) (color4.B * byte.MaxValue);
     Assert.AreEqual(unchecked((int) expected), argb);
 }
Exemple #21
0
 public override void Clear(Color color)
 {
     _renderTarget.Clear(color.ToColor4());
     TextBackgroundColor = color;
 }
Exemple #22
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="index"></param>
		/// <param name="rectangle"></param>
		public void SetClipRectangle ( int index, Rectangle rectangle, Color color )
		{
			if (index<0 || index>=MaxSpriteFrames) {
				throw new ArgumentOutOfRangeException("index", "must be greater or equal to zero and less than MaxClipRectangles (" + MaxSpriteFrames.ToString() + ")");
			}

			var rect	=	new RectangleF( rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height );
			var color4	=	color.ToColor4();
			
			framesData[ index ] = new SpriteFrame( rect, color4 );

			dirty	=	true;
		}
Exemple #23
0
        public Cylinder(Device device,
                        GraphicsCommandList commandList,
                        PrimitiveTopology primitiveTopology,
                        Vector3 startPoint,
                        Vector3 endPoint,
                        float bottomRadius,
                        float topRadius,
                        int sliceCount,
                        int stackCount,
                        Color color,
                        ref int index,
                        string name = "Default")
        {
            base.CommandList       = commandList;
            base.PrimitiveTopology = primitiveTopology;
            base.Name = name;

            var vertices = new List <Vertex>();
            var indices  = new List <short>();

            var height      = MathHelper.DistanceBetweenVector(startPoint, endPoint);
            var stackHeight = height / stackCount;
            var radiusStep  = (topRadius - bottomRadius) / stackCount;
            var ringCount   = stackCount + 1;

            for (int i = 0; i < ringCount; i++)
            {
                var y      = -0.5f * height + i * stackHeight;
                var r      = bottomRadius + i * radiusStep;
                var dTheta = 2.0f * MathUtil.Pi / sliceCount;

                for (var j = 0; j <= sliceCount; j++)
                {
                    var c = MathHelper.Cosf(j * dTheta);
                    var s = MathHelper.Sinf(j * dTheta);

                    var pos     = new Vector3(r * c, y, r * s);
                    var uv      = new Vector2((float)j / sliceCount, 1f - (float)i / stackCount);
                    var tangent = new Vector3(-s, 0.0f, c);

                    var dr        = bottomRadius - topRadius;
                    var bitangent = new Vector3(dr * c, -height, dr * s);

                    var normal = Vector3.Cross(tangent, bitangent);
                    normal.Normalize();
                    vertices.Add(new Vertex {
                        Position = pos, Color = color.ToColor4()
                    });
                }
            }

            var ringVertexCount = sliceCount + 1;

            for (var i = 0; i < stackCount; i++)
            {
                for (var j = 0; j < sliceCount; j++)
                {
                    indices.Add((short)(i * ringVertexCount + j));
                    indices.Add((short)((i + 1) * ringVertexCount + j));
                    indices.Add((short)((i + 1) * ringVertexCount + j + 1));

                    indices.Add((short)(i * ringVertexCount + j));
                    indices.Add((short)((i + 1) * ringVertexCount + j + 1));
                    indices.Add((short)(i * ringVertexCount + j + 1));
                }
            }

            var baseIndex = vertices.Count;
            var dtheta    = 2.0f * MathUtil.Pi / sliceCount;

            for (var i = 0; i <= sliceCount; i++)
            {
                var x = topRadius * MathHelper.Cosf(i * dtheta);
                var z = topRadius * MathHelper.Sinf(i * dtheta);
                var u = x / height + 0.5f;
                var v = z / height + 0.5f;

                vertices.Add(new Vertex {
                    Position = new Vector3(x, 0.5f * height, z), Color = color.ToColor4()
                });
            }

            vertices.Add(new Vertex {
                Position = new Vector3(0, 0.5f * height, 0), Color = color.ToColor4()
            });

            var centerIndex = vertices.Count - 1;

            for (int i = 0; i < sliceCount; i++)
            {
                indices.Add((short)centerIndex);
                indices.Add((short)(baseIndex + i + 1));
                indices.Add((short)(baseIndex + i));
            }

            baseIndex = vertices.Count;
            for (var i = 0; i <= sliceCount; i++)
            {
                var x = bottomRadius * MathHelper.Cosf(i * dtheta);
                var z = bottomRadius * MathHelper.Sinf(i * dtheta);
                var u = x / height + 0.5f;
                var v = z / height + 0.5f;

                vertices.Add(new Vertex {
                    Position = new Vector3(x, -0.5f * height, z), Color = color.ToColor4()
                });
            }


            vertices.Add(new Vertex {
                Position = new Vector3(0, -0.5f * height, 0), Color = color.ToColor4()
            });

            centerIndex = vertices.Count - 1;

            for (var i = 0; i < sliceCount; i++)
            {
                indices.Add((short)centerIndex);
                indices.Add((short)(baseIndex + i + 1));
                indices.Add((short)(baseIndex + i));
            }

            var vz = new Vector3(0, 1, 0);

            var p = startPoint - endPoint;

            p.Normalize();
            var t = Vector3.Cross(vz, p);

            var angle  = 180 / Math.PI * Math.Acos(Vector3.Dot(vz, p) / p.Length());
            var middle = MathHelper.Middle2Vector(startPoint, endPoint);

            World = Matrix.RotationAxis(new Vector3(t.X, t.Y, t.Z), MathHelper.DegreeToRadian((float)angle)) *
                    Matrix.Translation(middle);

            this.Initialize(device, ref index, vertices, indices);
        }
Exemple #24
0
 protected override void AssignDefaultValuesToSceneNode(SceneNode core)
 {
     (core as LightNode).Color = Color.ToColor4();
     base.AssignDefaultValuesToSceneNode(core);
 }
Exemple #25
0
 public VertexPosColTex(Vector4 position, Color color, TextureCoordinate textureCoordinate)
     : this(position, color.ToColor4(), textureCoordinate)
 {
 }
Exemple #26
0
        private void InitPlotter(Vector.FxVectorF vec, PlotType plotType, Color color)
        {
            // init the lists
            listPlotsGeometry = new List<PlotGeometry>();

            // set the position and the size of the element
            this.Position = new Vector.FxVector2f(0);
            this.Size = new Vector.FxVector2f(750, 500);

            // add the vector to the list
            PlotGeometry plot = new PlotGeometry();
            plot.OrigVectorY = vec;
            plot.Color = color.ToColor4();
            plot.Type = plotType;
            plot.StepType = XStepType.ZeroToMax;

            // add the plot to the list
            listPlotsGeometry.Add(plot);

            // set the origin position
            {
                float max = vec.Max();
                float min = vec.Min();
                float orig_y = Size.Y / 2;
                if(max >0 && min<0)
                {
                    orig_y = Size.Y * (min / (max - min));
                }

                if(max >0 && min >= 0)
                {
                    orig_y = -min;
                }

                if(max <=0 && min <0)
                {
                    orig_y = Size.Y + max;
                }
                OriginPosition = new Vector.FxVector2f(5, orig_y);
            }

            // allocate scale
            _scale = new Vector.FxVector2f(1.0f);

            // fit the plots to the view
            FitPlots();

            // set the x_step base on the size of vec and the width
            X_Space = this.Size.x / vec.Size;

            // init format
            _TextFormat = new TextElementFormat();
            _TextFormat.familyName = "Calibri";
            _TextFormat.weight = SharpDX.DirectWrite.FontWeight.Black;
            _TextFormat.fontStyle = SharpDX.DirectWrite.FontStyle.Normal;
            _TextFormat.fontStretch = SharpDX.DirectWrite.FontStretch.Normal;
            _TextFormat.fontSize = 8.0f;

            // init toolstrip
            InitToolStrips();
        }