]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/LineRenderer.java
66f26cc633537129ebf46f63b175c6c0c35d6031
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / LineRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
4 import com.irtimaled.bbor.client.config.ConfigManager;
5 import com.irtimaled.bbor.client.models.BoundingBoxLine;
6
7 import java.awt.*;
8 import java.util.Arrays;
9
10 public class LineRenderer extends AbstractRenderer<BoundingBoxLine> {
11     @Override
12     public void render(BoundingBoxLine boundingBox) {
13         Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
14
15         if (boundingBox.getWidth() == 0) {
16             OffsetPoint startPoint = new OffsetPoint(boundingBox.getMinPoint()).offset(0, 0.001f, 0);
17             OffsetPoint endPoint = new OffsetPoint(boundingBox.getMaxPoint()).offset(0, 0.001f, 0);
18             renderLine(startPoint, endPoint, color);
19             return;
20         }
21
22         OffsetPoint[] cornerPoints = Arrays.stream(boundingBox.getCorners()).
23                 map(point -> new OffsetPoint(point).offset(0, 0.001f, 0)).
24                 toArray(OffsetPoint[]::new);
25
26         RenderHelper.polygonModeLine();
27         Renderer.startQuads()
28                 .setColor(color)
29                 .addPoints(cornerPoints)
30                 .render();
31
32         if (!ConfigManager.fill.get()) return;
33
34         RenderHelper.polygonModeFill();
35         RenderHelper.enableBlend();
36         Renderer.startQuads()
37                 .setColor(color)
38                 .setAlpha(30)
39                 .addPoints(cornerPoints)
40                 .render();
41         RenderHelper.disableBlend();
42         RenderHelper.enablePolygonOffsetLine();
43         RenderHelper.polygonOffsetMinusOne();
44     }
45 }