private void CalculateThickBorderPoints() { PrimitiveFactory.PolyBorderDirection borderDir = _borderRenderDesc.Direction == Shape2DBorderDirection.Inward ? PrimitiveFactory.PolyBorderDirection.Inward : PrimitiveFactory.PolyBorderDirection.Outward; _thickCwBorderPoints = PrimitiveFactory.Generate2DPolyBorderPointsCW(_cwPolyPoints, borderDir, _borderRenderDesc.Thickness, _isClosed); _isThickBorderDirty = false; }
public override void RenderBorder(Camera camera) { if (_borderRenderDesc.BorderType == Shape2DBorderType.Thin) GLRenderer.DrawLines2D(_cwPolyPoints, camera); else { if (_isThickBorderDirty) CalculateThickBorderPoints(); if (_borderRenderDesc.FillMode == ThickBorderFillMode.Border) { GLRenderer.DrawLines2D(_cwPolyPoints, camera); GLRenderer.DrawLines2D(_thickCwBorderPoints, camera); } else { PrimitiveFactory.PolyBorderDirection borderDir = _borderRenderDesc.Direction == Shape2DBorderDirection.Inward ? PrimitiveFactory.PolyBorderDirection.Inward : PrimitiveFactory.PolyBorderDirection.Outward; List<Vector2> quadPts = PrimitiveFactory.Generate2DPolyBorderQuadsCW(_cwPolyPoints, _thickCwBorderPoints, borderDir, _isClosed); GLRenderer.DrawQuads2D(quadPts, camera); } } }