MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / addMesh

Method addMesh

src/main/java/field/graphics/MeshBuilder.java:778–852  ·  view source on GitHub ↗
(List<Vec3> vertex, List<int[]> faces)

Source from the content-addressed store, hash-verified

776 int here = vertexCursor;
777 vertex.forEach(x -> v(x));
778
779 if (target.elements == null) {
780 return this;
781 }
782
783 if (target.elements.getDimension() == 2) {
784 int origin = vertexCursor - here;
785
786 for (int[] f : faces) {
787 for (int i = 0; i < f.length; i++) {
788 int a = f[i];
789 int b = f[(i + 1) % f.length];
790
791 b = origin - b;
792 a = origin - a;
793
794 e(a, b);
795 }
796 }
797 return this;
798 }
799
800 if (target.elements.getDimension() == 4) {
801 int origin = vertexCursor - here;
802
803 for (int[] f : faces) {
804 for (int i = 0; i < f.length; i++) {
805 int a0 = f[(i - 1 + f.length) % f.length];
806 int a = f[i];
807 int b = f[(i + 1) % f.length];
808 int b0 = f[(i + 2) % f.length];
809
810 b0 = origin - b0;
811 a0 = origin - a0;
812 b = origin - b;
813 a = origin - a;
814
815 e(a0, a, b, b0);
816 }
817 }
818 return this;
819 }
820
821 if (target.elements.getDimension() == 3) {
822
823 int origin = vertexCursor - here;
824 for (int[] f : faces) {
825
826 if (f.length == 3) {
827 e(origin - f[0], origin - f[1], origin - f[2]);
828 continue;
829 }
830 if (f.length == 4) {
831 e(origin - f[0], origin - f[1], origin - f[2]);
832 e(origin - f[0], origin - f[2], origin - f[3]);
833 continue;
834 }
835 if (f.length < 3)

Callers

nothing calls this directly

Calls 5

vMethod · 0.95
eMethod · 0.95
getDimensionMethod · 0.65
forEachMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected