protected override void RenderSelf(GXPEngine.Core.GLContext glContext) { // NB: After you insert your own extended Vec2 struct here, // it's a lot easier and clearer to implement the next lines using // methods such as Add, Scale, Length, Normalize, Rotate, etc.! Vec2 endPoint = new Vec2( startPoint.x + vector.x * drawScale, startPoint.y + vector.y * drawScale ); LineSegment.RenderLine(startPoint, endPoint, color, lineWidth, true); float length = Mathf.Sqrt(vector.x * vector.x + vector.y * vector.y); // length of vector Vec2 smallVec = new Vec2(-10 * vector.x / length, -10 * vector.y / length); // constant length 10, opposite direction of vector Vec2 left = new Vec2(-smallVec.y, smallVec.x); // rotate 90 degrees Vec2 right = new Vec2(smallVec.y, -smallVec.x); // rotate -90 degrees left.Add(smallVec); left.Add(endPoint); right.Add(smallVec); right.Add(endPoint); LineSegment.RenderLine(endPoint, left, color, lineWidth, true); LineSegment.RenderLine(endPoint, right, color, lineWidth, true); }
protected override void RenderSelf(GXPEngine.Core.GLContext glContext) { Vec2 endPoint = startPoint + vector * scaleFactor; Gizmos.RenderLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y, color, lineWidth, true); Vec2 smallVec = vector.Normalized() * -10; // constant length 10, opposite direction of vector Vec2 left = new Vec2(-smallVec.y, smallVec.x) + smallVec + endPoint; Vec2 right = new Vec2(smallVec.y, -smallVec.x) + smallVec + endPoint; Gizmos.RenderLine(endPoint.x, endPoint.y, left.x, left.y, color, lineWidth, true); Gizmos.RenderLine(endPoint.x, endPoint.y, right.x, right.y, color, lineWidth, true); }
protected override void RenderSelf(GXPEngine.Core.GLContext glContext) { if (_invalidate) { graphics.Clear(backgroundColor); if (_borderSize > 0 && _borderColor != Color.Empty) { graphics.DrawRectangle(_borderPen, 0, 0, width, height); } graphics.DrawString(_text, _font, _textBrush, 0, 0); } base.RenderSelf(glContext); }
protected override void RenderSelf(GXPEngine.Core.GLContext glContext) { if (_startPoint == null || _vector == null) { return; } Vec2 endPoint = _startPoint.Clone().Add(_vector.Clone().Scale(scale)); LineSegment.RenderLine(_startPoint, endPoint, color, lineWidth, true); Vec2 smallVec = endPoint.Clone().Sub(_startPoint).Normalize().Scale(-10); Vec2 left = new Vec2(-smallVec.y, smallVec.x); Vec2 right = new Vec2(smallVec.y, -smallVec.x); left.Add(smallVec).Add(endPoint); right.Add(smallVec).Add(endPoint); LineSegment.RenderLine(endPoint, left, color, lineWidth, true); LineSegment.RenderLine(endPoint, right, color, lineWidth, true); }