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); }
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); }
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); }
public Ellipse(PointF center, float radiusX, float radiusY) { InternalEllipse = new SlimDX.Direct2D.Ellipse(); Center = center; RadiusX = radiusX; RadiusY = radiusY; }
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); }
public void AddLine(PointF point) { m_geometrySink.AddLine(point.InternalPointF); }
public void BeginFigure(FigureBegin figureBegin, PointF startPoint) { m_geometrySink.BeginFigure(startPoint.InternalPointF, (SlimDX.Direct2D.FigureBegin)figureBegin); }
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; }
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); }
public RadialGradientBrush CreateRadialGradientBrush(GradientStop[] gradientStops, ExtendMode extendMode, PointF centerPoint, PointF gradientOriginOffset, SizeF radius) { return new RadialGradientBrush(m_renderTargetResourceOwner, gradientStops, extendMode, centerPoint, gradientOriginOffset, radius); }
public LinearGradientBrush CreateLinearGradientBrush(GradientStop[] gradientStops, ExtendMode extendMode, PointF startPoint, PointF endPoint) { return new LinearGradientBrush(m_renderTargetResourceOwner, gradientStops, extendMode, startPoint, endPoint); }
public virtual void SetInputState(int inputId, InputStatus status, PointF position) { }
/// <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); }
/// <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); }
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; }
public override void SetInputState(int inputId, InputStatus status, PointF position) { m_mousedown = status == InputStatus.Down; m_mousePosition = position; }
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); } }
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); } }