.. | .. |
---|
15 | 15 | { |
---|
16 | 16 | this(0, 0); |
---|
17 | 17 | } |
---|
18 | | - |
---|
| 18 | + |
---|
19 | 19 | void SaveSupports() |
---|
20 | 20 | { |
---|
21 | 21 | transientsupport = support; |
---|
.. | .. |
---|
497 | 497 | return dist2; |
---|
498 | 498 | } |
---|
499 | 499 | |
---|
500 | | - static Vertex vertextemp = new Vertex(); |
---|
501 | | - static Vertex vertextemp2 = new Vertex(); |
---|
| 500 | + static Vertex vertextemp = new Vertex(true); |
---|
| 501 | + static Vertex vertextemp2 = new Vertex(true); |
---|
502 | 502 | |
---|
503 | | - static double SEUIL = 0.1; // 0.1 for rag doll; 0.07; |
---|
| 503 | + static double SEUIL = 0.1f; // 0.1 for rag doll; 0.07; |
---|
504 | 504 | |
---|
505 | 505 | // Compute weight of point w/r to this |
---|
506 | 506 | float ComputeWeight(Vertex v, double[][] toRoot, int k) |
---|
.. | .. |
---|
570 | 570 | |
---|
571 | 571 | if (dot > distmax) |
---|
572 | 572 | dot = distmax; |
---|
| 573 | + //return 0; // patch for strange behavior |
---|
573 | 574 | if (dot < -distmax) |
---|
574 | 575 | dot = -distmax; |
---|
| 576 | + //return 0; // patch for strange behavior |
---|
575 | 577 | |
---|
576 | 578 | // v3 = GetVertex(this.startvertices[subsupport] + 16); |
---|
577 | 579 | // |
---|
.. | .. |
---|
609 | 611 | |
---|
610 | 612 | float dist2 = (float)Distance2(v, v2, 1E10, toRoot, k); |
---|
611 | 613 | |
---|
612 | | - if (dist2 >= 2 * SEUIL*SEUIL) // && !CameraPane.CROWD) // weightmode |
---|
| 614 | + double seuil = SEUIL * 2; |
---|
| 615 | + |
---|
| 616 | + if (dist2 >= 2 * seuil*seuil) // && !CameraPane.CROWD) // weightmode |
---|
613 | 617 | return 0; |
---|
614 | 618 | |
---|
615 | | - dist2 /= 2 * SEUIL*SEUIL; // multiplied by two because center of support |
---|
| 619 | + dist2 /= 2 * seuil*seuil; // multiplied by two because center of support |
---|
616 | 620 | // could be far from closest point |
---|
617 | 621 | |
---|
618 | 622 | // dist2 = Math.pow(dist2, 2); |
---|
.. | .. |
---|
786 | 790 | v.weights[k] = other.ComputeWeight(v, toRoot, k); // (float)(supportsize * normalweight * nz / Math.pow(tx*tx+ty*ty+tz*tz, 1)); |
---|
787 | 791 | v.totalweight += v.weights[k]; |
---|
788 | 792 | |
---|
789 | | - if (CameraPane.CROWD) |
---|
| 793 | + if (Globals.CROWD) |
---|
790 | 794 | { |
---|
791 | 795 | // System.out.print("weight = " + v.weights[k]); |
---|
792 | 796 | // System.out.println("; totalweight = " + v.totalweight); |
---|
.. | .. |
---|
946 | 950 | |
---|
947 | 951 | int nbsupports; |
---|
948 | 952 | |
---|
949 | | - SEUIL = 0.1; // aout 2013 |
---|
| 953 | + // sept 2017 SEUIL = 0.1; // aout 2013 |
---|
950 | 954 | |
---|
951 | 955 | supports = InitConnections(other); |
---|
952 | 956 | |
---|
.. | .. |
---|
982 | 986 | |
---|
983 | 987 | int subsupports = 0; |
---|
984 | 988 | |
---|
985 | | - SEUIL = 0.1; // aout 2013 |
---|
| 989 | + // sept 2017 SEUIL = 0.1; // aout 2013 |
---|
986 | 990 | |
---|
987 | 991 | while (subsupports == 0) |
---|
988 | 992 | { |
---|
.. | .. |
---|
1006 | 1010 | |
---|
1007 | 1011 | vect.set(v); |
---|
1008 | 1012 | vect.sub(vect2); |
---|
| 1013 | + |
---|
| 1014 | +// vertextemp.x = other.averagepoints[c*3]; |
---|
| 1015 | +// vertextemp.y = other.averagepoints[c*3+1]; |
---|
| 1016 | +// vertextemp.z = other.averagepoints[c*3+2]; |
---|
| 1017 | +// |
---|
| 1018 | +// Vertex v3 = vertextemp2; |
---|
| 1019 | +// v3.x = other.extremepoints[c*3]; |
---|
| 1020 | +// v3.y = other.extremepoints[c*3+1]; |
---|
| 1021 | +// v3.z = other.extremepoints[c*3+2]; |
---|
| 1022 | +// |
---|
| 1023 | +// vect3.set(v3); // "X" axis apex |
---|
| 1024 | +// vect3.sub(vertextemp); // origin (center) |
---|
| 1025 | +// |
---|
| 1026 | +// double distmax = vect3.length(); |
---|
| 1027 | +// |
---|
| 1028 | +// vect3.set(v2); // "X" axis apex |
---|
| 1029 | +// vect3.sub(vertextemp); // origin (center) |
---|
| 1030 | +// |
---|
| 1031 | +// if (vect3.length() >= distmax) |
---|
| 1032 | +// continue; |
---|
1009 | 1033 | |
---|
1010 | 1034 | if (mindistance > vect.dot(vect)) |
---|
1011 | 1035 | { |
---|
.. | .. |
---|
1017 | 1041 | |
---|
1018 | 1042 | subsupports = v.closestsupport==-1 ? 0 : supports[v.closestsupport].Length(); |
---|
1019 | 1043 | |
---|
1020 | | - SEUIL *= 2; |
---|
| 1044 | + // previously for "contains", now for weights. |
---|
| 1045 | + assert(subsupports > 0); |
---|
| 1046 | + //SEUIL *= 2; |
---|
1021 | 1047 | } |
---|
1022 | 1048 | |
---|
1023 | 1049 | assert(subsupports > 0); |
---|
.. | .. |
---|
2635 | 2661 | if (false) // slow && stepout && onein) |
---|
2636 | 2662 | { |
---|
2637 | 2663 | // sound |
---|
2638 | | - cVector eye = CameraPane.theRenderer.eyeCamera.location; |
---|
| 2664 | + cVector eye = Globals.theRenderer.EyeCamera().location; |
---|
2639 | 2665 | |
---|
2640 | 2666 | Vertex v = GetVertex(0); |
---|
2641 | 2667 | |
---|
2642 | 2668 | tmp.set(v); |
---|
2643 | 2669 | tmp.sub(eye); |
---|
2644 | 2670 | |
---|
2645 | | - if (CameraPane.framecount - lastsoundtime > 30) // 0.25 secs |
---|
| 2671 | + if (Globals.framecount - lastsoundtime > 30) // 0.25 secs |
---|
2646 | 2672 | { |
---|
2647 | 2673 | GrafreeD.wav.play((Math.random()+0.5)/Math.max(tmp.length2(),0.2)); //, 1); |
---|
2648 | 2674 | |
---|
2649 | | - lastsoundtime = CameraPane.framecount; |
---|
| 2675 | + lastsoundtime = Globals.framecount; |
---|
2650 | 2676 | } |
---|
2651 | 2677 | |
---|
2652 | 2678 | stepout = false; |
---|
.. | .. |
---|
3776 | 3802 | for (int i = 0; i < VertexCount(); i++) |
---|
3777 | 3803 | { |
---|
3778 | 3804 | Vertex v = GetVertex(i); |
---|
| 3805 | + |
---|
| 3806 | + vertextemp.set(v); |
---|
| 3807 | + |
---|
3779 | 3808 | //if (v.norm.x == 0 && v.norm.y == 0 && v.norm.z == 0) |
---|
3780 | 3809 | { |
---|
3781 | | - GenerateNormal(i, v); |
---|
3782 | | - SetVertex(v, i); |
---|
| 3810 | + if (!GenerateNormal(i, vertextemp)) |
---|
| 3811 | + continue; |
---|
| 3812 | + |
---|
| 3813 | + if (v.norm.dot(vertextemp.norm) < 0) |
---|
| 3814 | + vertextemp.norm.mul(-1); |
---|
| 3815 | + |
---|
| 3816 | + if (v.norm.dot(vertextemp.norm) < 0.9) |
---|
| 3817 | + SetVertex(vertextemp, i); |
---|
3783 | 3818 | } |
---|
3784 | 3819 | } |
---|
3785 | 3820 | |
---|
.. | .. |
---|
3790 | 3825 | static cVector temp2 = new cVector(); |
---|
3791 | 3826 | static cVector temp3 = new cVector(); |
---|
3792 | 3827 | |
---|
3793 | | - void GenerateNormal(int index, Vertex v) |
---|
| 3828 | + boolean GenerateNormal(int index, Vertex v) |
---|
3794 | 3829 | { |
---|
3795 | 3830 | //System.out.println("Old normal = " + v.norm); |
---|
3796 | 3831 | LA.setVector(v.norm, 0, 0, 0); |
---|
.. | .. |
---|
3819 | 3854 | LA.vecSub(p/*.pos*/, v/*.pos*/, temp1); |
---|
3820 | 3855 | LA.vecSub(q/*.pos*/, v/*.pos*/, temp2); |
---|
3821 | 3856 | } |
---|
| 3857 | + else |
---|
| 3858 | + { |
---|
| 3859 | + continue; |
---|
| 3860 | + } |
---|
3822 | 3861 | |
---|
3823 | 3862 | //LA.vecNormalize(temp1); |
---|
3824 | 3863 | //LA.vecNormalize(temp2); |
---|
.. | .. |
---|
3829 | 3868 | double s = temp3.length(); |
---|
3830 | 3869 | //double c = temp2.dot(temp1); |
---|
3831 | 3870 | |
---|
| 3871 | + if (s == 0) |
---|
| 3872 | + return false; |
---|
| 3873 | + |
---|
3832 | 3874 | float angle = 1; // (float) Math.atan2(s, c); |
---|
3833 | 3875 | //if(angle < 0) angle = -angle; |
---|
3834 | 3876 | |
---|
3835 | 3877 | //LA.vecNormalize(temp3); |
---|
3836 | 3878 | LA.vecScale(temp3, angle / s); |
---|
3837 | 3879 | |
---|
| 3880 | +// if (temp3.dot(v.norm) < 0) |
---|
| 3881 | +// assert(temp3.dot(v.norm) >= 0); |
---|
| 3882 | + |
---|
3838 | 3883 | LA.vecAdd(temp3, v.norm, v.norm); |
---|
3839 | 3884 | } |
---|
3840 | 3885 | |
---|
3841 | 3886 | LA.vecNormalize(v.norm); |
---|
3842 | 3887 | //System.out.println("New normal = " + v.norm); |
---|
| 3888 | + |
---|
| 3889 | + return true; |
---|
3843 | 3890 | } |
---|
3844 | 3891 | |
---|
3845 | 3892 | double Arccos(double x) |
---|
.. | .. |
---|
4413 | 4460 | // june 2014 |
---|
4414 | 4461 | // Camera parentcam = cam; |
---|
4415 | 4462 | // |
---|
4416 | | -// if (cam == CameraPane.theRenderer.cameras[0]) |
---|
| 4463 | +// if (cam == Globals.theRenderer.cameras[0]) |
---|
4417 | 4464 | // { |
---|
4418 | | -// parentcam = CameraPane.theRenderer.cameras[1]; |
---|
| 4465 | +// parentcam = Globals.theRenderer.cameras[1]; |
---|
4419 | 4466 | // } |
---|
4420 | 4467 | // |
---|
4421 | | -// if (cam == CameraPane.theRenderer.cameras[1]) |
---|
| 4468 | +// if (cam == Globals.theRenderer.cameras[1]) |
---|
4422 | 4469 | // { |
---|
4423 | | -// parentcam = CameraPane.theRenderer.cameras[0]; |
---|
| 4470 | +// parentcam = Globals.theRenderer.cameras[0]; |
---|
4424 | 4471 | // } |
---|
4425 | 4472 | |
---|
4426 | 4473 | gl.glGetDoublev(gl.GL_MODELVIEW_MATRIX, CameraPane.tempmat, 0); |
---|
.. | .. |
---|
4846 | 4893 | return verticesCopy; |
---|
4847 | 4894 | } |
---|
4848 | 4895 | |
---|
4849 | | - void PreprocessOcclusion(CameraPane cp, double[][] transform) |
---|
| 4896 | + void PreprocessOcclusion(iCameraPane cp, double[][] transform) |
---|
4850 | 4897 | { |
---|
4851 | 4898 | if (//!trimmed || |
---|
4852 | 4899 | AOdone) |
---|
.. | .. |
---|
4855 | 4902 | return; |
---|
4856 | 4903 | } |
---|
4857 | 4904 | |
---|
4858 | | - Camera keep = cp.renderCamera; |
---|
4859 | | - cp.renderCamera = localcamera; |
---|
4860 | | - |
---|
4861 | | - if (trimmed) |
---|
4862 | | - { |
---|
4863 | | - float[] colors = new float[positions.length / 3]; |
---|
4864 | | - |
---|
4865 | | - int i3 = 0; |
---|
4866 | | - for (int i = 0; i < positions.length / 3; i++, i3 += 3) |
---|
4867 | | - { |
---|
4868 | | - if (normals[i3] == 0 && normals[i3+1] == 0 && normals[i3+2] == 0) |
---|
4869 | | - continue; |
---|
4870 | | - |
---|
4871 | | - from.set(positions[i3], positions[i3 + 1], positions[i3 + 2]); |
---|
4872 | | - to.set(positions[i3] + normals[i3], |
---|
4873 | | - positions[i3 + 1] + normals[i3 + 1], |
---|
4874 | | - positions[i3 + 2] + normals[i3 + 2]); |
---|
4875 | | - LA.xformPos(from, transform, from); |
---|
4876 | | - LA.xformPos(to, transform, to); // RIGID ONLY |
---|
4877 | | - localcamera.setAim(from, to); |
---|
4878 | | - |
---|
4879 | | - CameraPane.occlusionbuffer.display(); |
---|
4880 | | - |
---|
4881 | | - if (CameraPane.DEBUG_OCCLUSION) |
---|
4882 | | - cp.display(); // debug |
---|
4883 | | - |
---|
4884 | | - colors[i] = cp.vertexOcclusion.r; |
---|
4885 | | - //colors[i3 + 1] = cp.vertexOcclusion.g; |
---|
4886 | | - //colors[i3 + 2] = cp.vertexOcclusion.b; |
---|
4887 | | - |
---|
4888 | | - if ((i % 1000) == 0 && i != 0) |
---|
4889 | | - { |
---|
4890 | | - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
4891 | | - //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done"); |
---|
4892 | | - System.out.println((int) (100.0 * i / (positions.length / 3)) + "% (" + i + " of " + (positions.length / 3) + ")"); |
---|
4893 | | - } |
---|
4894 | | - } |
---|
4895 | | - |
---|
4896 | | - this.colors = colors; |
---|
4897 | | - } |
---|
4898 | | - else |
---|
4899 | | - { |
---|
4900 | | - for (int i = 0; i < VertexCount(); i++) |
---|
4901 | | - { |
---|
4902 | | - Vertex v = GetVertex(i); |
---|
4903 | | - |
---|
4904 | | - if (v.norm.x == 0 && v.norm.y == 0 && v.norm.z == 0) |
---|
4905 | | - continue; |
---|
4906 | | - |
---|
4907 | | - from.set(v.x, v.y, v.z); |
---|
4908 | | - to.set(v.x+v.norm.x, v.y+v.norm.y, v.z+v.norm.z); |
---|
4909 | | - LA.xformPos(from, transform, from); |
---|
4910 | | - LA.xformPos(to, transform, to); // RIGID ONLY |
---|
4911 | | - localcamera.setAim(from, to); |
---|
4912 | | - |
---|
4913 | | - CameraPane.occlusionbuffer.display(); |
---|
4914 | | - |
---|
4915 | | - if (CameraPane.DEBUG_OCCLUSION) |
---|
4916 | | - cp.display(); // debug |
---|
4917 | | - |
---|
4918 | | - v.AO = cp.vertexOcclusion.r; |
---|
4919 | | - |
---|
4920 | | - if ((i % 1000) == 0 && i != 0) |
---|
4921 | | - { |
---|
4922 | | - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
4923 | | - //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done"); |
---|
4924 | | - System.out.println((int) (100.0 * i / VertexCount()) + "% (" + i + " of " + VertexCount() + ")"); |
---|
4925 | | - } |
---|
4926 | | - } |
---|
4927 | | - } |
---|
4928 | | - |
---|
4929 | | - System.out.println("done."); |
---|
4930 | | - |
---|
4931 | | - cp.renderCamera = keep; |
---|
| 4905 | + cp.PrepOcclusion(this, transform); |
---|
4932 | 4906 | |
---|
4933 | 4907 | AOdone = true; |
---|
4934 | 4908 | } |
---|
.. | .. |
---|
7075 | 7049 | assert(f2.contains(i)); |
---|
7076 | 7050 | assert(f3.contains(i)); |
---|
7077 | 7051 | |
---|
| 7052 | + // when r is the "center", p is along the boundary |
---|
7078 | 7053 | while (f0.r != i) |
---|
7079 | 7054 | { |
---|
7080 | 7055 | int t = f0.p; |
---|
.. | .. |
---|
7131 | 7106 | f0 = f3; |
---|
7132 | 7107 | f3 = t; |
---|
7133 | 7108 | } |
---|
7134 | | - atleastone = true; |
---|
7135 | 7109 | |
---|
| 7110 | + int va = f0.q; |
---|
| 7111 | + int vb = f0.r; |
---|
| 7112 | + int vc = -1; |
---|
| 7113 | + |
---|
| 7114 | + Face toremove1 = null; |
---|
| 7115 | + Face toremove2 = null; |
---|
| 7116 | + |
---|
| 7117 | + // f0 is the buffer for the first new triangle, |
---|
| 7118 | + // and otherf is the other upper one. |
---|
7136 | 7119 | Face otherf = null; |
---|
7137 | 7120 | |
---|
7138 | 7121 | if (f1.contains(f0.p)) |
---|
7139 | 7122 | { |
---|
7140 | 7123 | if (f1.p == f0.p) |
---|
7141 | 7124 | { |
---|
| 7125 | + assert(false); |
---|
7142 | 7126 | f0.r = f1.q; |
---|
7143 | 7127 | } |
---|
7144 | 7128 | else |
---|
7145 | 7129 | { |
---|
7146 | 7130 | assert(f1.q == f0.p); |
---|
7147 | | - f0.r = f1.p; |
---|
| 7131 | + vc = f1.p; |
---|
7148 | 7132 | } |
---|
7149 | 7133 | |
---|
7150 | 7134 | otherf = f2; |
---|
7151 | | - faces.remove(f1); |
---|
7152 | | - faces.remove(f3); |
---|
| 7135 | + toremove1 = f1; |
---|
| 7136 | + toremove2 = f3; |
---|
7153 | 7137 | } |
---|
7154 | 7138 | else |
---|
7155 | 7139 | if (f2.contains(f0.p)) |
---|
7156 | 7140 | { |
---|
7157 | 7141 | if (f2.p == f0.p) |
---|
7158 | 7142 | { |
---|
| 7143 | + assert(false); |
---|
7159 | 7144 | f0.r = f2.q; |
---|
7160 | 7145 | } |
---|
7161 | 7146 | else |
---|
7162 | 7147 | { |
---|
7163 | 7148 | assert(f2.q == f0.p); |
---|
7164 | | - f0.r = f2.p; |
---|
| 7149 | + vc = f2.p; |
---|
7165 | 7150 | } |
---|
7166 | 7151 | |
---|
7167 | 7152 | otherf = f3; |
---|
7168 | | - faces.remove(f1); |
---|
7169 | | - faces.remove(f2); |
---|
| 7153 | + toremove1 = f1; |
---|
| 7154 | + toremove2 = f2; |
---|
7170 | 7155 | } |
---|
7171 | 7156 | if (f3.contains(f0.p)) |
---|
7172 | 7157 | { |
---|
7173 | 7158 | if (f3.p == f0.p) |
---|
7174 | 7159 | { |
---|
| 7160 | +// assert(false); |
---|
| 7161 | + new Exception().printStackTrace(); |
---|
7175 | 7162 | f0.r = f3.q; |
---|
7176 | 7163 | } |
---|
7177 | 7164 | else |
---|
7178 | 7165 | { |
---|
7179 | 7166 | assert(f3.q == f0.p); |
---|
7180 | | - f0.r = f3.p; |
---|
| 7167 | + vc = f3.p; |
---|
7181 | 7168 | } |
---|
7182 | 7169 | |
---|
7183 | 7170 | otherf = f1; |
---|
7184 | | - faces.remove(f2); |
---|
7185 | | - faces.remove(f3); |
---|
| 7171 | + toremove1 = f2; |
---|
| 7172 | + toremove2 = f3; |
---|
7186 | 7173 | } |
---|
| 7174 | + |
---|
| 7175 | + vertextemp.set(vertices.get(va)); |
---|
| 7176 | + vertextemp.sub(vertices.get(vb)); |
---|
| 7177 | + vertextemp.normalize(); |
---|
| 7178 | + vertextemp2.set(vertices.get(vc)); |
---|
| 7179 | + vertextemp2.sub(vertices.get(vb)); |
---|
| 7180 | + vertextemp2.normalize(); |
---|
| 7181 | + |
---|
| 7182 | + if (vertextemp.dot(vertextemp2) > -0.95) |
---|
| 7183 | + { |
---|
| 7184 | + continue; |
---|
| 7185 | + } |
---|
| 7186 | + |
---|
| 7187 | + atleastone = true; |
---|
| 7188 | + |
---|
| 7189 | + f0.r = vc; |
---|
| 7190 | + |
---|
| 7191 | + faces.remove(toremove1); |
---|
| 7192 | + faces.remove(toremove2); |
---|
7187 | 7193 | |
---|
7188 | 7194 | if (!f0.contains(otherf.p)) |
---|
7189 | 7195 | { |
---|
.. | .. |
---|
7554 | 7560 | s3 = new cVector(); |
---|
7555 | 7561 | } |
---|
7556 | 7562 | |
---|
7557 | | - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
| 7563 | + Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
7558 | 7564 | |
---|
7559 | 7565 | try |
---|
7560 | 7566 | { |
---|
.. | .. |
---|
7649 | 7655 | { |
---|
7650 | 7656 | if (i++%100 == 0) |
---|
7651 | 7657 | { |
---|
7652 | | - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
| 7658 | + Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); |
---|
7653 | 7659 | System.out.println("#faces = " + faces.size()); |
---|
7654 | 7660 | // if (i != 1) |
---|
7655 | 7661 | // break; |
---|
.. | .. |
---|
7693 | 7699 | //Trim(true,cJME.gennormals,true,false); // doesn't work |
---|
7694 | 7700 | Trim(true,false,false,false,false); |
---|
7695 | 7701 | |
---|
7696 | | - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR)); |
---|
| 7702 | + Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR)); |
---|
7697 | 7703 | } |
---|
7698 | 7704 | |
---|
7699 | 7705 | void UpdateIndices(Face face, Face minface) |
---|
.. | .. |
---|
8275 | 8281 | return "trim = " + trimmed + "; stripped = " + stripified + "; colors = " + colors + "; faces = " + (faces!=null?faces.size():null) + "; triangles = " + (triangles!=null?triangles.length:null) + "; indices = " + indices; |
---|
8276 | 8282 | } |
---|
8277 | 8283 | |
---|
8278 | | - static Camera localcamera = new Camera(); |
---|
8279 | | - static cVector from = new cVector(); |
---|
8280 | | - static cVector to = new cVector(); |
---|
8281 | 8284 | boolean trimmed = false; |
---|
8282 | 8285 | boolean stripified = false; |
---|
8283 | 8286 | transient boolean AOdone = false; |
---|
.. | .. |
---|
8285 | 8288 | /*transient*/ int maxIndexV = 0; |
---|
8286 | 8289 | /*transient*/ int bufV, bufF; |
---|
8287 | 8290 | // Raw version |
---|
8288 | | - private float[] positions; |
---|
8289 | | - private float[] normals; |
---|
| 8291 | + //private |
---|
| 8292 | + float[] positions; |
---|
| 8293 | + //private |
---|
| 8294 | + float[] normals; |
---|
8290 | 8295 | float[] colors; |
---|
8291 | 8296 | private float[] uvmap; |
---|
8292 | 8297 | private int[] triangles; |
---|