internal LinearGradientBrush(Direct2DRenderTarget renderTargetOwner, 
                                     GradientStop[] gradientStops, 
                                     ExtendMode extendMode, 
                                     PointF startPoint, 
                                     PointF endPoint)
        {
            m_renderTargetOwner = renderTargetOwner;

            var gradientStopList = new List<SlimDX.Direct2D.GradientStop>(gradientStops.Length);

            for (int i = 0; i < gradientStops.Length; i++)
            {
                gradientStopList.Add(gradientStops[i].InternalGradientStop);
            }

            var props = new LinearGradientBrushProperties();
            props.StartPoint = startPoint.InternalPointF;
            props.EndPoint = endPoint.InternalPointF;

            m_startPoint = startPoint;
            m_endPoint = endPoint;

            var internalRt = m_renderTargetOwner.InternalRenderTarget;

            m_internalGradientStopCollection = new GradientStopCollection(internalRt, 
                                                                          gradientStopList.ToArray(), 
                                                                          Gamma.Linear, 
                                                                          (SlimDX.Direct2D.ExtendMode)extendMode);

            m_internalLinearGradientBrush = new SlimDX.Direct2D.LinearGradientBrush(internalRt,
                                                                                    m_internalGradientStopCollection, 
                                                                                    props);
        }
        private static float GetDistance(PointF point1, PointF point2)
        {
            float a =(point2.X - point1.X);
            float b = (point2.Y - point1.Y);

            return (float)Math.Sqrt(a * a + b * b);
        }
Example #3
0
        public VisualElement(RectangleF area)
        {
            long ticks = stopWatch.ElapsedTicks;

            if (ticks <= m_lastTicks)
                ticks = m_lastTicks+1;

            m_random = new Random((int)ticks);

            m_lastTicks = ticks;


            m_originalPos = new PointF(area.Location.X, area.Location.Y);
            m_location = area;
            m_animationStep = m_random.Next(0, 40);
         

            float r = m_random.Next(90, 100) / 100f;
            float g = m_random.Next(90, 100) / 100f;
            float b = m_random.Next(90, 100) / 100f;
            
            //Color = new Color4(1, r, g, b);
            Color = new Color4(1, 1, 1, 1);

            m_currentPos = new PointF(m_originalPos.X, m_originalPos.Y);
        }
Example #4
0
 public void AddQuadraticBezier(PointF point1, PointF point2)
 {
     var segment = new QuadraticBezierSegment();
     segment.Point1 = point1;
     segment.Point2 = point2;
     m_geometrySink.AddQuadraticBezier(segment.InternalQuadraticBezierSegment);
 }
        internal RadialGradientBrush(Direct2DRenderTarget renderTargetOwner, 
                                     GradientStop[] gradientStops, 
                                     ExtendMode extendMode, 
                                     PointF centerPoint, 
                                     PointF gradientOriginOffset,
                                     SizeF radius)
        {
            m_renderTargetOwner = renderTargetOwner;
            m_extendMode = extendMode;
            m_radius = radius;
            m_gradientOriginOffset = gradientOriginOffset;
            m_centerPoint = centerPoint;

            var gradientStopList = new List<SlimDX.Direct2D.GradientStop>(gradientStops.Length);

            for (int i = 0; i < gradientStops.Length; i++)
            {
                gradientStopList.Add(gradientStops[i].InternalGradientStop);
            }

            var props = new RadialGradientBrushProperties();
            props.CenterPoint = centerPoint.InternalPointF;
            props.GradientOriginOffset = gradientOriginOffset.InternalPointF;
            props.HorizontalRadius = radius.Width;
            props.VerticalRadius = radius.Height;

            m_internalGradientStopCollection = new GradientStopCollection(m_renderTargetOwner.InternalRenderTarget,
                                                                          gradientStopList.ToArray(),
                                                                          Gamma.Linear,
                                                                          (SlimDX.Direct2D.ExtendMode)extendMode);

            m_internalRadialGradientBrush = new SlimDX.Direct2D.RadialGradientBrush(m_renderTargetOwner.InternalRenderTarget,
                                                                                    m_internalGradientStopCollection, props);
        }
Example #6
0
        public Ellipse(PointF center, float radiusX, float radiusY)
        {
            InternalEllipse = new SlimDX.Direct2D.Ellipse();

            Center = center;
            RadiusX = radiusX;
            RadiusY = radiusY;
        }
Example #7
0
        public void AddArc(PointF endPoint, SizeF size, float rotationAngle)
        {
            var segment = new ArcSegment();
            segment.ArcSize = ArcSize.Small;
            segment.EndPoint = endPoint.InternalPointF;
            segment.RotationAngle = rotationAngle;
            segment.Size = size.InternalSize;
            segment.SweepDirection = SweepDirection.Clockwise;

            m_geometrySink.AddArc(segment);
        }
Example #8
0
 public void AddLine(PointF point)
 {
     m_geometrySink.AddLine(point.InternalPointF);
 }
Example #9
0
 public void BeginFigure(FigureBegin figureBegin, PointF startPoint)
 {
     m_geometrySink.BeginFigure(startPoint.InternalPointF, (SlimDX.Direct2D.FigureBegin)figureBegin);
 }
Example #10
0
 private void MainWindow_TouchUp(object sender, TouchEventArgs e)
 {
     var pos = e.GetTouchPoint(this).Position;
     var point = new PointF((float)pos.X, (float)pos.Y);
     m_scene.SetInputState(e.TouchDevice.Id, InputStatus.Up, point);
     e.Handled = true;
 }
Example #11
0
 private void MainWindow_MouseUp(object sender, MouseButtonEventArgs e)
 {
     if (e.LeftButton != MouseButtonState.Pressed)
         return;
     var pos = e.GetPosition(this);
     var point = new PointF((float)pos.X, (float)pos.Y);
     m_scene.SetInputState(0, InputStatus.Up, point);
 }
 private PointF ConvertPositionToRelative(PointF position)
 {
     return new PointF(position.X / m_mainLayer.Width,
                       position.Y / m_mainLayer.Height);
 }
Example #13
0
 public RadialGradientBrush CreateRadialGradientBrush(GradientStop[] gradientStops, ExtendMode extendMode, PointF centerPoint, PointF gradientOriginOffset, SizeF radius)
 {
     return new RadialGradientBrush(m_renderTargetResourceOwner, gradientStops, extendMode, centerPoint, gradientOriginOffset, radius);
 }
Example #14
0
 public LinearGradientBrush CreateLinearGradientBrush(GradientStop[] gradientStops, ExtendMode extendMode, PointF startPoint, PointF endPoint)
 {
     return new LinearGradientBrush(m_renderTargetResourceOwner, gradientStops, extendMode, startPoint, endPoint);
 }
Example #15
0
 public virtual void SetInputState(int inputId, InputStatus status, PointF position)
 { }
Example #16
0
 /// <summary>
 /// Creates a new CreateRadialGradientBrush for creating radial gradients.
 /// </summary>
 /// <param name="gradientStops">The gradient stop points</param>
 /// <param name="extendMode">The draw extend mode</param>
 /// <param name="centerPoint">The center point of the radial gradient. </param>
 /// <param name="gradientOriginOffset">This offset to move the origin, from center, of the radial gradient</param>
 /// <param name="radius">The radius of the gradiant</param>
 /// <returns>A new instance of RadialGradientBrush</returns>
 public Brushes.RadialGradientBrush CreateRadialGradientBrush(Brushes.GradientStop[] gradientStops, Brushes.ExtendMode extendMode, PointF centerPoint, PointF gradientOriginOffset, SizeF radius)
 {
     return m_resources.CreateRadialGradientBrush(gradientStops, extendMode, centerPoint, gradientOriginOffset, radius);
 }
Example #17
0
 /// <summary>
 /// Creates a new LinearGradientBrush for creating linear gradients.
 /// </summary>
 /// <param name="gradientStops">The gradient stop points</param>
 /// <param name="extendMode">The draw extend mode</param>
 /// <param name="startPoint">The gradient start point.  This is relative to the end point if the Alignment property is a relative type</param>
 /// <param name="endPoint">The gradient stop point.  This is relative to the start point if the Alignment property is a relative type</param>
 /// <returns>A new instance of LinearGradientBrush</returns>
 public Brushes.LinearGradientBrush CreateLinearGradientBrush(Brushes.GradientStop[] gradientStops, Brushes.ExtendMode extendMode, PointF startPoint, PointF endPoint)
 {
     return m_resources.CreateLinearGradientBrush(gradientStops, extendMode, startPoint, endPoint);
 }
Example #18
0
        public void Update(bool mouseDown, PointF mousePoint)
        {
            //m_rotation.RotateX += 5;
            //m_rotation.RotateZ += 5;
            m_rotation.RotateY += m_animationStep/4f;

            PointF targetLocation;

            if (mouseDown)
            {
                targetLocation = mousePoint;
            }
            else
            {
                targetLocation = m_originalPos;
            }

            var xDistance = targetLocation.X - m_currentPos.X;

            if (xDistance < 0)
            {
                m_currentPos.X -= m_animationStep;
            }
            else if (xDistance > 0)
            {
                m_currentPos.X += m_animationStep;
            }

            var yDistance = targetLocation.Y - m_currentPos.Y;

            if (yDistance < 0)
            {
                m_currentPos.Y -= m_animationStep;
            }
            else if (yDistance > 0)
            {
                m_currentPos.Y += m_animationStep;
            }

            DestArea = new RectangleF(m_currentPos.X, m_currentPos.Y, m_location.Width, m_location.Height);

            SourceArea = m_location;
        }
Example #19
0
 public override void SetInputState(int inputId, InputStatus status, PointF position)
 {
     m_mousedown = status == InputStatus.Down;
     m_mousePosition = position;
 }
Example #20
0
 private void MainWindow_PreviewMouseMove(object sender, MouseEventArgs e)
 {
     var pos = e.GetPosition(this);
     var point = new PointF((float)pos.X, (float)pos.Y);
     var status = InputStatus.Up;
     if (e.LeftButton == MouseButtonState.Pressed)
         status = InputStatus.Down;
     m_scene.SetInputState(0, status, point);
 }
        public override void SetInputState(int inputId, InputStatus status, PointF position)
        {
            if (status == InputStatus.Down)
            {
                if (!m_ripples.ContainsKey(inputId))
                {

                    m_ripples.Add(inputId, new RippleSettings() { Center = ConvertPositionToRelative(position)});
                }
                else
                {
                    m_ripples[inputId].Center = ConvertPositionToRelative(position);
                }
            }
            else if (m_ripples.ContainsKey(inputId))
            {
                m_ripples.Remove(inputId);
            }
            
        }
Example #22
0
 public override void SetInputState(int inputId, InputStatus status, PointF position)
 {
     if (status == InputStatus.Down)
     {
         if (!m_positions.ContainsKey(inputId))
         {
             m_positions.Add(inputId, position);
         }
         else
         {
             m_positions[inputId] = position;
         }
     }
     else if (m_positions.ContainsKey(inputId))
     {
         m_positions.Remove(inputId);
     }
 }