| BoundaryRep.java | ●●●●● patch | view | raw | blame | history | |
| CSG.java | ●●●●● patch | view | raw | blame | history | |
| CameraPane.java | ●●●●● patch | view | raw | blame | history | |
| CameraScroller.java | ●●●●● patch | view | raw | blame | history | |
| Composite.java | ●●●●● patch | view | raw | blame | history | |
| Globals.java | ●●●●● patch | view | raw | blame | history | |
| Merge.java | ●●●●● patch | view | raw | blame | history | |
| Mocap.java | ●●●●● patch | view | raw | blame | history | |
| ObjEditor.java | ●●●●● patch | view | raw | blame | history | |
| Object3D.java | ●●●●● patch | view | raw | blame | history | |
| PointFlow.java | ●●●●● patch | view | raw | blame | history | |
| cLinker.java | ●●●●● patch | view | raw | blame | history | |
| iCameraPane.java | ●●●●● patch | view | raw | blame | history | 
BoundaryRep.java
.. .. @@ -15,7 +15,7 @@ 15 15 { 16 16 this(0, 0); 17 17 } 18  -18  +19 19 void SaveSupports() 20 20 { 21 21 transientsupport = support; .. .. @@ -4893,7 +4893,7 @@ 4893 4893 return verticesCopy; 4894 4894 } 4895 4895 4896  - void PreprocessOcclusion(CameraPane cp, double[][] transform)4896  + void PreprocessOcclusion(iCameraPane cp, double[][] transform)4897 4897 { 4898 4898 if (//!trimmed || 4899 4899 AOdone) .. .. @@ -4902,80 +4902,7 @@ 4902 4902 return; 4903 4903 } 4904 4904 4905  - Camera keep = cp.renderCamera;4906  - cp.renderCamera = localcamera;4907  -4908  - if (trimmed)4909  - {4910  - float[] colors = new float[positions.length / 3];4911  -4912  - int i3 = 0;4913  - for (int i = 0; i < positions.length / 3; i++, i3 += 3)4914  - {4915  - if (normals[i3] == 0 && normals[i3+1] == 0 && normals[i3+2] == 0)4916  - continue;4917  -4918  - from.set(positions[i3], positions[i3 + 1], positions[i3 + 2]);4919  - to.set(positions[i3] + normals[i3],4920  - positions[i3 + 1] + normals[i3 + 1],4921  - positions[i3 + 2] + normals[i3 + 2]);4922  - LA.xformPos(from, transform, from);4923  - LA.xformPos(to, transform, to); // RIGID ONLY4924  - localcamera.setAim(from, to);4925  -4926  - CameraPane.occlusionbuffer.display();4927  -4928  - if (CameraPane.DEBUG_OCCLUSION)4929  - cp.display(); // debug4930  -4931  - colors[i] = cp.vertexOcclusion.r;4932  - //colors[i3 + 1] = cp.vertexOcclusion.g;4933  - //colors[i3 + 2] = cp.vertexOcclusion.b;4934  -4935  - if ((i % 100) == 0 && i != 0)4936  - {4937  - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));4938  - //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");4939  - System.out.println((int) (100.0 * i / (positions.length / 3)) + "% (" + i + " of " + (positions.length / 3) + ")");4940  - }4941  - }4942  -4943  - this.colors = colors;4944  - }4945  - else4946  - {4947  - for (int i = 0; i < VertexCount(); i++)4948  - {4949  - Vertex v = GetVertex(i);4950  -4951  - if (v.norm == null || v.norm.x == 0 && v.norm.y == 0 && v.norm.z == 0)4952  - continue;4953  -4954  - from.set(v.x, v.y, v.z);4955  - to.set(v.x+v.norm.x, v.y+v.norm.y, v.z+v.norm.z);4956  - LA.xformPos(from, transform, from);4957  - LA.xformPos(to, transform, to); // RIGID ONLY4958  - localcamera.setAim(from, to);4959  -4960  - CameraPane.occlusionbuffer.display();4961  -4962  - if (CameraPane.DEBUG_OCCLUSION)4963  - cp.display(); // debug4964  -4965  - v.AO = cp.vertexOcclusion.r;4966  -4967  - if ((i % 100) == 0 && i != 0)4968  - {4969  - CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));4970  - //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");4971  - System.out.println((int) (100.0 * i / VertexCount()) + "% (" + i + " of " + VertexCount() + ")");4972  - }4973  - }4974  - }4975  -4976  - //System.out.println("done.");4977  -4978  - cp.renderCamera = keep;4905  + cp.PrepOcclusion(this, transform);4979 4906 4980 4907 AOdone = true; 4981 4908 } .. .. @@ -8354,9 +8281,6 @@ 8354 8281 return "trim = " + trimmed + "; stripped = " + stripified + "; colors = " + colors + "; faces = " + (faces!=null?faces.size():null) + "; triangles = " + (triangles!=null?triangles.length:null) + "; indices = " + indices; 8355 8282 } 8356 8283 8357  - static Camera localcamera = new Camera();8358  - static cVector from = new cVector();8359  - static cVector to = new cVector();8360 8284 boolean trimmed = false; 8361 8285 boolean stripified = false; 8362 8286 transient boolean AOdone = false; .. .. @@ -8364,8 +8288,10 @@ 8364 8288 /*transient*/ int maxIndexV = 0; 8365 8289 /*transient*/ int bufV, bufF; 8366 8290 // Raw version 8367  - private float[] positions;8368  - private float[] normals;8291  + //private8292  + float[] positions;8293  + //private8294  + float[] normals;8369 8295 float[] colors; 8370 8296 private float[] uvmap; 8371 8297 private int[] triangles; CSG.java
.. .. @@ -132,7 +132,7 @@ 132 132 } 133 133 134 134 /**/ 135  - void draw(CameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)135  + void draw(iCameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)136 136 { 137 137 if (csgType == UNION || !link2master) // || csgType == MERGE) 138 138 { .. .. @@ -154,7 +154,7 @@ 154 154 } 155 155 /**/ 156 156 157  - void PreprocessOcclusion(CameraPane cp)157  + void PreprocessOcclusion(iCameraPane cp)158 158 { 159 159 if (csgType == UNION) // || csgType == MERGE) 160 160 { CameraPane.java
.. .. @@ -149,8 +149,9 @@ 149 149 defaultcaps.setAccumBlueBits(16); 150 150 defaultcaps.setAccumAlphaBits(16); 151 151 } 152  +152 153 static CameraPane theRenderer; 153  -154  +154 155 void SetAsGLRenderer(boolean b) 155 156 { 156 157 isRenderer = b; .. .. @@ -236,9 +237,14 @@ 236 237 return this.ambientOcclusion; 237 238 } 238 239 240  + public boolean IsDebugSelection()241  + {242  + return DEBUG_SELECTION;243  + }244  +239 245 public boolean IsFrozen() 240 246 { 241  - boolean selectmode = this.DrawMode() == SELECTION || CameraPane.DEBUG_SELECTION;247  + boolean selectmode = this.DrawMode() == SELECTION || this.IsDebugSelection();242 248 243 249 return !selectmode && cameracount == 0; // != 0; 244 250 } .. .. @@ -259,9 +265,19 @@ 259 265 return lightCamera; 260 266 } 261 267 268  + public Camera ManipCamera()269  + {270  + return manipCamera;271  + }272  +262 273 public Camera RenderCamera() 263 274 { 264 275 return renderCamera; 276  + }277  +278  + public Camera[] Cameras()279  + {280  + return cameras;265 281 } 266 282 267 283 public void PushMaterial(Object3D obj, boolean selected) .. .. @@ -408,7 +424,7 @@ 408 424 409 425 javax.media.opengl.GL gl = display.GetGL(); 410 426 411  - boolean selectmode = display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION;427  + boolean selectmode = display.DrawMode() == display.SELECTION || display.IsDebugSelection();412 428 413 429 //System.out.println("p = " + pv + "; q = " + qv + "; r = " + rv); 414 430 if (!selectmode) // display.drawMode != display.SELECTION) // && display.drawMode != display.SHADOW) // (attributes & FILL) != 0) .. .. @@ -760,6 +776,291 @@ 760 776 //// tris.postdraw(this); 761 777 } 762 778 779  + static Camera localcamera = new Camera();780  + static cVector from = new cVector();781  + static cVector to = new cVector();782  +783  + public void PrepOcclusion(BoundaryRep br, double[][] transform)784  + {785  + CameraPane cp = this;786  +787  + Camera keep = cp.RenderCamera();788  + cp.renderCamera = localcamera;789  +790  + if (br.trimmed)791  + {792  + float[] colors = new float[br.positions.length / 3];793  +794  + int i3 = 0;795  + for (int i = 0; i < br.positions.length / 3; i++, i3 += 3)796  + {797  + if (br.normals[i3] == 0 && br.normals[i3+1] == 0 && br.normals[i3+2] == 0)798  + continue;799  +800  + from.set(br.positions[i3], br.positions[i3 + 1], br.positions[i3 + 2]);801  + to.set(br.positions[i3] + br.normals[i3],802  + br.positions[i3 + 1] + br.normals[i3 + 1],803  + br.positions[i3 + 2] + br.normals[i3 + 2]);804  + LA.xformPos(from, transform, from);805  + LA.xformPos(to, transform, to); // RIGID ONLY806  + localcamera.setAim(from, to);807  +808  + CameraPane.occlusionbuffer.display();809  +810  + if (CameraPane.DEBUG_OCCLUSION)811  + cp.display(); // debug812  +813  + colors[i] = cp.vertexOcclusion.r;814  + //colors[i3 + 1] = cp.vertexOcclusion.g;815  + //colors[i3 + 2] = cp.vertexOcclusion.b;816  +817  + if ((i % 100) == 0 && i != 0)818  + {819  + CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));820  + //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");821  + System.out.println((int) (100.0 * i / (br.positions.length / 3)) + "% (" + i + " of " + (br.positions.length / 3) + ")");822  + }823  + }824  +825  + br.colors = colors;826  + }827  + else828  + {829  + for (int i = 0; i < br.VertexCount(); i++)830  + {831  + Vertex v = br.GetVertex(i);832  +833  + if (v.norm == null || v.norm.x == 0 && v.norm.y == 0 && v.norm.z == 0)834  + continue;835  +836  + from.set(v.x, v.y, v.z);837  + to.set(v.x+v.norm.x, v.y+v.norm.y, v.z+v.norm.z);838  + LA.xformPos(from, transform, from);839  + LA.xformPos(to, transform, to); // RIGID ONLY840  + localcamera.setAim(from, to);841  +842  + CameraPane.occlusionbuffer.display();843  +844  + if (CameraPane.DEBUG_OCCLUSION)845  + cp.display(); // debug846  +847  + v.AO = cp.vertexOcclusion.r;848  +849  + if ((i % 100) == 0 && i != 0)850  + {851  + CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));852  + //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");853  + System.out.println((int) (100.0 * i / br.VertexCount()) + "% (" + i + " of " + br.VertexCount() + ")");854  + }855  + }856  + }857  +858  + //System.out.println("done.");859  +860  + cp.renderCamera = keep;861  + }862  +863  + void DrawPointFLow(PointFlow pointFlow, Object3D /*Composite*/ root, boolean selected, boolean blocked)864  + {865  + CameraPane display = this;866  + pointFlow.CreateHT();867  +868  + float r = display.modelParams0[0];869  + float g = display.modelParams0[1];870  + float b = display.modelParams0[2];871  + float opacity = display.modelParams5[1];872  +873  + //final GL gl = GLU.getCurrentGL();874  + GL gl = display.GetGL(); // getGL();875  +876  + int s = pointFlow.points.size();877  +878  + boolean cf = gl.glIsEnabled(gl.GL_CULL_FACE);879  + gl.glEnable(gl.GL_CULL_FACE);880  +881  + for (int i=s; --i>=0;)882  + //for (int i=0; i<s; i++)883  + {884  + cVector v = pointFlow.points.get(i);885  +886  + double mindist = Double.MAX_VALUE;887  +888  + double size = pointFlow.minimumSize;889  +890  + double distancenext = 0;891  +892  + if (i > 0)893  + {894  + cVector w = pointFlow.points.get(i-1);895  +896  + double dist = w.distance(v);897  +898  + distancenext = dist;899  +900  + if (mindist > dist)901  + {902  + mindist = dist;903  + size = mindist*pointFlow.resizefactor;904  + }905  + }906  +907  + if (i < s-1)908  + {909  + cVector w = pointFlow.points.get(i+1);910  +911  + double dist = w.distance(v);912  +913  + if (mindist > dist)914  + {915  + mindist = dist;916  + size = mindist*pointFlow.resizefactor;917  + }918  + }919  +920  + if (size < pointFlow.minimumSize)921  + size = pointFlow.minimumSize;922  + if (size > pointFlow.maximumSize)923  + size = pointFlow.maximumSize;924  +925  + double tx = v.x;926  + double ty = v.y;927  + double tz = v.z;928  +929  + // if (tx == 0 && ty == 0 && tz == 0)930  + // continue;931  +932  + gl.glMatrixMode(gl.GL_TEXTURE);933  + gl.glPushMatrix();934  + pointFlow.texmat[12] = pointFlow.texmat[13] = pointFlow.texmat[14] = i;935  +936  + gl.glMultMatrixf(pointFlow.texmat, 0);937  +938  + gl.glMatrixMode(gl.GL_MODELVIEW);939  + gl.glPushMatrix();940  +941  + gl.glTranslated(tx,ty,tz);942  +943  + gl.glScaled(size,size,size);944  +945  +// float cr = colorBuf.get(index4);946  +// float cg = colorBuf.get(index4+1);947  +// float cb = colorBuf.get(index4+2);948  +// float ca = colorBuf.get(index4+3);949  +//950  +// display.modelParams0[0] = r * cr;951  +// display.modelParams0[1] = g * cg;952  +// display.modelParams0[2] = b * cb;953  +//954  +// display.modelParams5[1] = opacity * ca;955  +//956  +// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);957  +// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);958  +//959  +// RandomNode.globalseed = (int)sizeBuf.get(index3+2); // i;960  +// RandomNode.globalseed2 = RandomNode.globalseed;961  +//962  +//// gl.glColor4f(cr,cg,cb,ca);963  +// // gl.glScalef(1024/16,1024/16,1024/16);964  + pointFlow.geo.Draw/*Node*/(display,null,selected, blocked);965  +966  + gl.glPopMatrix();967  +968  + double step = size/4; //969  +970  + if (i == 0 || size == 0 || distancenext > 8*size || distancenext < step)971  + continue;972  +973  + int nbsteps = (int)(distancenext/step);974  +975  + step = distancenext/nbsteps;976  +977  + cVector next = pointFlow.points.get(i-1);978  +979  + tmp.set(next);980  + tmp.sub(v);981  + tmp.normalize();982  + tmp.mul(step);983  +984  + // calculate next size985  + mindist = Double.MAX_VALUE;986  +987  + double nextsize = pointFlow.minimumSize;988  +989  + if (i > 1)990  + {991  + cVector w = pointFlow.points.get(i-2);992  +993  + double dist = w.distance(next);994  +995  + if (mindist > dist)996  + {997  + mindist = dist;998  + nextsize = mindist*pointFlow.resizefactor;999  + }1000  + }1001  +1002  + double dist = v.distance(next);1003  +1004  + if (mindist > dist)1005  + {1006  + mindist = dist;1007  + nextsize = mindist*pointFlow.resizefactor;1008  + }1009  +1010  + if (nextsize < pointFlow.minimumSize)1011  + nextsize = pointFlow.minimumSize;1012  + if (nextsize > pointFlow.maximumSize)1013  + nextsize = pointFlow.maximumSize;1014  + //1015  +1016  + double count = 0;1017  +1018  + while (distancenext > 0.000000001) // step1019  + {1020  + gl.glPushMatrix();1021  +1022  + gl.glTranslated(tx + tmp.x*count, ty + tmp.y*count, tz + tmp.z*count);1023  +1024  + double K = count/nbsteps;1025  +1026  + double intersize = K*nextsize + (1-K)*size;1027  +1028  + gl.glScaled(intersize,intersize,intersize);1029  +1030  + pointFlow.geo.Draw/*Node*/(display,null,selected,blocked);1031  +1032  + count++;1033  +1034  + distancenext -= step;1035  +1036  + gl.glPopMatrix();1037  + }1038  +1039  + if (count != nbsteps)1040  + assert(count == nbsteps);1041  +1042  + // gl.glScalef(16.0f/1024,16.0f/1024,16.0f/1024);1043  + //gl.glTranslatef(-tx,-ty,-tz);1044  +1045  + gl.glMatrixMode(gl.GL_TEXTURE);1046  + gl.glPopMatrix();1047  + }1048  +1049  + if (!cf)1050  + gl.glDisable(gl.GL_CULL_FACE);1051  +1052  +// display.modelParams0[0] = r;1053  +// display.modelParams0[1] = g;1054  +// display.modelParams0[2] = b;1055  +//1056  +// display.modelParams5[1] = opacity;1057  +//1058  +// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);1059  +// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);1060  +1061  + gl.glMatrixMode(gl.GL_MODELVIEW);1062  + }1063  +763 1064 /// INTERFACE 764 1065 765 1066 void SetColor(Object3D obj, Vertex p0) .. .. @@ -10340,7 +10641,7 @@ 10340 10641 fragmentMode |= (lightslot - 64) << 2; // 1; // first bit is available for aniso 10341 10642 //System.out.println("fragmentMode = " + fragmentMode); 10342 10643 10343  - if (DrawMode() == DEFAULT || DrawMode() == SELECTION || DEBUG_SELECTION)10644  + if (DrawMode() == DEFAULT || DrawMode() == SELECTION || IsDebugSelection())10344 10645 { 10345 10646 /* 10346 10647 if (CULLFACE || (ambientOcclusion && OCCLUSION_CULLING)) .. .. @@ -10641,7 +10942,7 @@ 10641 10942 callist = gl.glGenLists(1); 10642 10943 } 10643 10944 10644  - boolean selectmode = DrawMode() == SELECTION || CameraPane.DEBUG_SELECTION;10945  + boolean selectmode = DrawMode() == SELECTION || IsDebugSelection();10645 10946 10646 10947 boolean active = !selectmode; // DrawMode() != SELECTION; // mouseDown; 10647 10948 .. .. @@ -13115,6 +13416,11 @@ 13115 13416 cVector tmp = new cVector(); 13116 13417 cVector tmp2 = new cVector(); 13117 13418 boolean isMoving; 13419  +13420  + public cVector TargetLookAt()13421  + {13422  + return targetLookAt;13423  + }13118 13424 13119 13425 class PingThread extends Thread 13120 13426 { .. .. @@ -15966,7 +16272,6 @@ 15966 16272 15967 16273 class AntialiasBuffer implements GLEventListener 15968 16274 { 15969  -15970 16275 CameraPane parent = null; 15971 16276 15972 16277 AntialiasBuffer(CameraPane p) .. .. @@ -16359,7 +16664,7 @@ 16359 16664 } 16360 16665 } 16361 16666 16362  - static void DrawPoints(CameraPane cpane)16667  + static void DrawPoints(iCameraPane cpane)16363 16668 { 16364 16669 for (int i=0; i<8; i++) // first and last are red 16365 16670 { CameraScroller.java
.. .. @@ -15,10 +15,10 @@ 15 15 //horizCenter = imageWidth / 2; 16 16 //vertCenter = imageHeight / 2; 17 17 setLayout(new BorderLayout()); 18  - cameraPane = new CameraPane(null, null, false);18  +// TODO cameraPane = new CameraPane(null, null, false);19 19 //JScrollPane pain = new JScrollPane(cameraPane); 20 20 /*add("North", (*/ caption = new Label("", 0); //); 21  - add("Center", cameraPane);21  +// TODO add("Center", cameraPane);22 22 //add("East", vScroll = new Scrollbar(1)); 23 23 //add("South", hScroll = new Scrollbar(0)); 24 24 //add("Center", cameraPane = new CameraPane()); .. .. @@ -124,7 +124,7 @@ 124 124 } 125 125 */ 126 126 127  - CameraPane cameraPane;127  +// TODO CameraPane cameraPane;128 128 //Scrollbar vScroll; 129 129 //Scrollbar hScroll; 130 130 Label caption; Composite.java
.. .. @@ -837,7 +837,7 @@ 837 837 } 838 838 839 839 if ((//display.drawMode == CameraPane.SHADOW || 840  - display.DrawMode() == CameraPane.SELECTION || CameraPane.DEBUG_SELECTION) &&840  + display.DrawMode() == CameraPane.SELECTION || display.IsDebugSelection()) &&841 841 //HasTransparency()) 842 842 // SERIAL PATCH 843 843 // if (viewCode == -1) .. .. @@ -855,7 +855,7 @@ 855 855 856 856 cTexture tex = null; 857 857 858  - boolean selectmode = display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION;858  + boolean selectmode = display.DrawMode() == display.SELECTION || display.IsDebugSelection();859 859 860 860 if (//display.drawMode != display.SHADOW && 861 861 !selectmode // display.drawMode != display.SELECTION .. .. @@ -994,7 +994,7 @@ 994 994 // } 995 995 // } 996 996 997  - void drawSelfOld(CameraPane display, Object3D /*Composite*/ root, boolean selected)997  + void drawSelfOld(iCameraPane display, Object3D /*Composite*/ root, boolean selected)998 998 { 999 999 // if (count <= 0) // || display.IsFreezed()) 1000 1000 // { Globals.java
.. .. @@ -1,12 +1,20 @@ 1 1 2 2 public class Globals 3 3 { 4  -static boolean CROWD = false;5  - static public int drawMode = iCameraPane.DEFAULT; // WARNING6  - static public boolean lighttouched = false; // WARNING7  -8  - static int framecount = 0; // general-purpose global count9 4 private static boolean LIVE = false; 5  +6  + static boolean CROWD = false;7  + static public int drawMode = iCameraPane.DEFAULT; // WARNING8  +9  + static public boolean lighttouched = false;10  + static public boolean ANIMATION = false;11  + static public int imagecount = 0;12  + static public String filename;13  +14  + static public boolean fromscript = false;15  + static public boolean fullreset = false;16  +17  + static int framecount = 0; // general-purpose global count10 18 static boolean ONESTEP = false; // do LIVE once 11 19 12 20 public static boolean isLIVE() Merge.java
.. .. @@ -396,9 +396,9 @@ 396 396 397 397 } 398 398 399  - public void drawCube(CameraPane display, float extent)399  + public void drawCube(iCameraPane display, float extent)400 400 { 401  - GL gl = display.getGL();401  + GL gl = display.GetGL();402 402 403 403 extent = extent * 0.5f; 404 404  Mocap.java
.. .. @@ -1519,7 +1519,7 @@ 1519 1519 // mywave = currentwave++; 1520 1520 // } 1521 1521 // sound 1522  - cVector eye = CameraPane.theRenderer.eyeCamera.location;1522  + cVector eye = CameraPane.theRenderer.EyeCamera().location;1523 1523 1524 1524 // if (sourcenode.parent.parent != null) 1525 1525 // sourcenode.parent.parent.TransformToWorld(floor, tmp); ObjEditor.java
.. .. @@ -3297,25 +3297,25 @@ 3297 3297 3298 3298 void ToggleAnimation() 3299 3299 { 3300  - if (!CameraPane.ANIMATION)3300  + if (!Globals.ANIMATION)3301 3301 { 3302 3302 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE); 3303 3303 browser.show(); 3304 3304 String filename = browser.getFile(); 3305 3305 if (filename != null && filename.length() > 0) 3306 3306 { 3307  - CameraPane.filename = browser.getDirectory() + filename;3307  + Globals.filename = browser.getDirectory() + filename;3308 3308 //CameraPane.framecount = 0; 3309  - CameraPane.imagecount = 0;3309  + Globals.imagecount = 0;3310 3310 3311  - CameraPane.ANIMATION ^= true;3311  + Globals.ANIMATION ^= true;3312 3312 3313 3313 GrafreeD.wav.cursor = 0; 3314 3314 GrafreeD.wav.loop = 0; 3315 3315 } 3316 3316 } else 3317 3317 { 3318  - CameraPane.ANIMATION ^= true;3318  + Globals.ANIMATION ^= true;3319 3319 } 3320 3320 } 3321 3321  Object3D.java
.. .. @@ -430,16 +430,16 @@ 430 430 { 431 431 Object3D copy = this; 432 432 433  - Camera parentcam = CameraPane.theRenderer.manipCamera;433  + Camera parentcam = CameraPane.theRenderer.ManipCamera();434 434 435  - if (CameraPane.theRenderer.manipCamera == CameraPane.theRenderer.cameras[0])435  + if (CameraPane.theRenderer.ManipCamera() == CameraPane.theRenderer.Cameras()[0])436 436 { 437  - parentcam = CameraPane.theRenderer.cameras[1];437  + parentcam = CameraPane.theRenderer.Cameras()[1];438 438 } 439 439 440  - if (CameraPane.theRenderer.manipCamera == CameraPane.theRenderer.cameras[1])440  + if (CameraPane.theRenderer.ManipCamera() == CameraPane.theRenderer.Cameras()[1])441 441 { 442  - parentcam = CameraPane.theRenderer.cameras[0];442  + parentcam = CameraPane.theRenderer.Cameras()[0];443 443 } 444 444 445 445 if (this == parentcam) .. .. @@ -447,7 +447,7 @@ 447 447 //assert(this instanceof Camera); 448 448 449 449 for (int count = parentcam.GetTransformCount(); --count>=0;) 450  - LA.xformPos(CameraPane.theRenderer.targetLookAt, parentcam.toParent, CameraPane.theRenderer.targetLookAt);450  + LA.xformPos(CameraPane.theRenderer.TargetLookAt(), parentcam.toParent, CameraPane.theRenderer.TargetLookAt());451 451 } 452 452 453 453 copy.marked ^= true; .. .. @@ -467,7 +467,7 @@ 467 467 //assert(this instanceof Camera); 468 468 469 469 for (int count = parentcam.GetTransformCount(); --count>=0;) 470  - LA.xformPos(CameraPane.theRenderer.targetLookAt, parentcam.fromParent, CameraPane.theRenderer.targetLookAt);470  + LA.xformPos(CameraPane.theRenderer.TargetLookAt(), parentcam.fromParent, CameraPane.theRenderer.TargetLookAt());471 471 } 472 472 473 473 copy.Touch(); // display list issue .. .. @@ -602,7 +602,7 @@ 602 602 return; 603 603 } 604 604 605  - if (CameraPane.fromscript)605  + if (Globals.fromscript)606 606 { 607 607 transformcount = 0; 608 608 return; .. .. @@ -4854,7 +4854,7 @@ 4854 4854 return globalTransform; 4855 4855 } 4856 4856 4857  - void PreprocessOcclusion(CameraPane cp)4857  + void PreprocessOcclusion(iCameraPane cp)4858 4858 { 4859 4859 /* 4860 4860 if (AOdone) .. .. @@ -5327,6 +5327,7 @@ 5327 5327 && (Globals.DrawMode() == iCameraPane.SHADOW || Globals.CROWD); 5328 5328 } 5329 5329 5330  + static boolean DEBUG_SELECTION = false;5330 5331 5331 5332 void Draw(iCameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked) 5332 5333 { .. .. @@ -5365,7 +5366,7 @@ 5365 5366 } 5366 5367 5367 5368 if ((//display.DrawMode() == CameraPane.SHADOW || 5368  - display.DrawMode() == CameraPane.SELECTION || CameraPane.DEBUG_SELECTION) && HasTransparency())5369  + display.DrawMode() == iCameraPane.SELECTION || display.IsDebugSelection()) && HasTransparency())5369 5370 { 5370 5371 return; 5371 5372 } .. .. @@ -5406,7 +5407,7 @@ 5406 5407 5407 5408 boolean compiled = false; 5408 5409 5409  - boolean selectmode = display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION;5410  + boolean selectmode = display.DrawMode() == display.SELECTION || display.IsDebugSelection();5410 5411 5411 5412 if (!selectmode && //display.DrawMode() != display.SELECTION && 5412 5413 (touched || (bRep != null && bRep.displaylist <= 0))) .. .. @@ -5484,9 +5485,9 @@ 5484 5485 5485 5486 // frustum culling 5486 5487 if (CameraPane.FRUSTUM && !blocked && !IsInfinite() && GetBRep() != null // && GetBRep().VertexCount() != 1260 // default grid 5487  - && display.DrawMode() != CameraPane.SELECTION)5488  + && display.DrawMode() != iCameraPane.SELECTION)5488 5489 { 5489  - if (display.DrawMode() == CameraPane.SHADOW)5490  + if (display.DrawMode() == iCameraPane.SHADOW)5490 5491 { 5491 5492 if (!link2master // tricky to cull in shadow mode. 5492 5493 && GetBRep().FrustumCull(this, gl, display.LightCamera(), true)) .. .. @@ -5533,7 +5534,7 @@ 5533 5534 5534 5535 5535 5536 if (!culled) 5536  - if (display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION)5537  + if (display.DrawMode() == display.SELECTION || display.IsDebugSelection())5537 5538 { 5538 5539 if (GetBRep() != null) 5539 5540 { .. .. @@ -5973,7 +5974,7 @@ 5973 5974 { 5974 5975 //throw new Error(); 5975 5976 5976  - boolean selectmode = display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION;5977  + boolean selectmode = display.DrawMode() == display.SELECTION || display.IsDebugSelection();5977 5978 5978 5979 int[] strips = bRep.getRawIndices(); 5979 5980 .. .. @@ -6993,83 +6994,83 @@ 6993 6994 int spotw = spot.x + spot.width; 6994 6995 int spoth = spot.y + spot.height; 6995 6996 info.g.fillRect(spot.x, spot.y, spot.width, spot.height); 6996  - if (CameraPane.Xmin > spot.x)6997  - {6998  - CameraPane.Xmin = spot.x;6999  - }7000  - if (CameraPane.Xmax < spotw)7001  - {7002  - CameraPane.Xmax = spotw;7003  - }7004  - if (CameraPane.Ymin > spot.y)7005  - {7006  - CameraPane.Ymin = spot.y;7007  - }7008  - if (CameraPane.Ymax < spoth)7009  - {7010  - CameraPane.Ymax = spoth;7011  - }6997  +// if (CameraPane.Xmin > spot.x)6998  +// {6999  +// CameraPane.Xmin = spot.x;7000  +// }7001  +// if (CameraPane.Xmax < spotw)7002  +// {7003  +// CameraPane.Xmax = spotw;7004  +// }7005  +// if (CameraPane.Ymin > spot.y)7006  +// {7007  +// CameraPane.Ymin = spot.y;7008  +// }7009  +// if (CameraPane.Ymax < spoth)7010  +// {7011  +// CameraPane.Ymax = spoth;7012  +// }7012 7013 spot.translate(32, 32); 7013 7014 spotw = spot.x + spot.width; 7014 7015 spoth = spot.y + spot.height; 7015 7016 info.g.setColor(Color.blue); 7016 7017 info.g.fillRect(spot.x, spot.y, spot.width, spot.height); 7017  - if (CameraPane.Xmin > spot.x)7018  - {7019  - CameraPane.Xmin = spot.x;7020  - }7021  - if (CameraPane.Xmax < spotw)7022  - {7023  - CameraPane.Xmax = spotw;7024  - }7025  - if (CameraPane.Ymin > spot.y)7026  - {7027  - CameraPane.Ymin = spot.y;7028  - }7029  - if (CameraPane.Ymax < spoth)7030  - {7031  - CameraPane.Ymax = spoth;7032  - }7018  +// if (CameraPane.Xmin > spot.x)7019  +// {7020  +// CameraPane.Xmin = spot.x;7021  +// }7022  +// if (CameraPane.Xmax < spotw)7023  +// {7024  +// CameraPane.Xmax = spotw;7025  +// }7026  +// if (CameraPane.Ymin > spot.y)7027  +// {7028  +// CameraPane.Ymin = spot.y;7029  +// }7030  +// if (CameraPane.Ymax < spoth)7031  +// {7032  +// CameraPane.Ymax = spoth;7033  +// }7033 7034 info.g.drawLine(spotw, spoth, spotw, spoth - 15); 7034 7035 info.g.drawLine(spotw, spoth, spotw - 15, spoth); 7035 7036 spot.translate(0, -32); 7036 7037 info.g.setColor(Color.green); 7037 7038 info.g.fillRect(spot.x, spot.y, spot.width, spot.height); 7038  - if (CameraPane.Xmin > spot.x)7039  - {7040  - CameraPane.Xmin = spot.x;7041  - }7042  - if (CameraPane.Xmax < spotw)7043  - {7044  - CameraPane.Xmax = spotw;7045  - }7046  - if (CameraPane.Ymin > spot.y)7047  - {7048  - CameraPane.Ymin = spot.y;7049  - }7050  - if (CameraPane.Ymax < spoth)7051  - {7052  - CameraPane.Ymax = spoth;7053  - }7039  +// if (CameraPane.Xmin > spot.x)7040  +// {7041  +// CameraPane.Xmin = spot.x;7042  +// }7043  +// if (CameraPane.Xmax < spotw)7044  +// {7045  +// CameraPane.Xmax = spotw;7046  +// }7047  +// if (CameraPane.Ymin > spot.y)7048  +// {7049  +// CameraPane.Ymin = spot.y;7050  +// }7051  +// if (CameraPane.Ymax < spoth)7052  +// {7053  +// CameraPane.Ymax = spoth;7054  +// }7054 7055 info.g.drawArc(boundary.x, boundary.y, 7055 7056 boundary.width, boundary.height, 0, 360); 7056 7057 //info.g.drawArc(spot.x, spotw, spot.width/2, boundary.height/2, 0, 360); 7057  - if (CameraPane.Xmin > boundary.x)7058  - {7059  - CameraPane.Xmin = boundary.x;7060  - }7061  - if (CameraPane.Xmax < boundary.x + boundary.width)7062  - {7063  - CameraPane.Xmax = boundary.x + boundary.width;7064  - }7065  - if (CameraPane.Ymin > boundary.y)7066  - {7067  - CameraPane.Ymin = boundary.y;7068  - }7069  - if (CameraPane.Ymax < boundary.y + boundary.height)7070  - {7071  - CameraPane.Ymax = boundary.y + boundary.height;7072  - }7058  +// if (CameraPane.Xmin > boundary.x)7059  +// {7060  +// CameraPane.Xmin = boundary.x;7061  +// }7062  +// if (CameraPane.Xmax < boundary.x + boundary.width)7063  +// {7064  +// CameraPane.Xmax = boundary.x + boundary.width;7065  +// }7066  +// if (CameraPane.Ymin > boundary.y)7067  +// {7068  +// CameraPane.Ymin = boundary.y;7069  +// }7070  +// if (CameraPane.Ymax < boundary.y + boundary.height)7071  +// {7072  +// CameraPane.Ymax = boundary.y + boundary.height;7073  +// }7073 7074 return; 7074 7075 } 7075 7076 } PointFlow.java
.. .. @@ -102,208 +102,7 @@ 102 102 double resizefactor = 1; 103 103 104 104 static cVector tmp = new cVector(); 105  -106  - void CallList(CameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)107  - {108  - CreateHT();109 105 110  - float r = display.modelParams0[0];111  - float g = display.modelParams0[1];112  - float b = display.modelParams0[2];113  - float opacity = display.modelParams5[1];114  -115  - //final GL gl = GLU.getCurrentGL();116  - GL gl = display.GetGL(); // getGL();117  -118  - int s = points.size();119  -120  - boolean cf = gl.glIsEnabled(gl.GL_CULL_FACE);121  - gl.glEnable(gl.GL_CULL_FACE);122  -123  - for (int i=s; --i>=0;)124  - //for (int i=0; i<s; i++)125  - {126  - cVector v = points.get(i);127  -128  - double mindist = Double.MAX_VALUE;129  -130  - double size = minimumSize;131  -132  - double distancenext = 0;133  -134  - if (i > 0)135  - {136  - cVector w = points.get(i-1);137  -138  - double dist = w.distance(v);139  -140  - distancenext = dist;141  -142  - if (mindist > dist)143  - {144  - mindist = dist;145  - size = mindist*resizefactor;146  - }147  - }148  -149  - if (i < s-1)150  - {151  - cVector w = points.get(i+1);152  -153  - double dist = w.distance(v);154  -155  - if (mindist > dist)156  - {157  - mindist = dist;158  - size = mindist*resizefactor;159  - }160  - }161  -162  - if (size < minimumSize)163  - size = minimumSize;164  - if (size > maximumSize)165  - size = maximumSize;166  -167  - double tx = v.x;168  - double ty = v.y;169  - double tz = v.z;170  -171  - // if (tx == 0 && ty == 0 && tz == 0)172  - // continue;173  -174  - gl.glMatrixMode(gl.GL_TEXTURE);175  - gl.glPushMatrix();176  - texmat[12] = texmat[13] = texmat[14] = i;177  -178  - gl.glMultMatrixf(texmat, 0);179  -180  - gl.glMatrixMode(gl.GL_MODELVIEW);181  - gl.glPushMatrix();182  -183  - gl.glTranslated(tx,ty,tz);184  -185  - gl.glScaled(size,size,size);186  -187  -// float cr = colorBuf.get(index4);188  -// float cg = colorBuf.get(index4+1);189  -// float cb = colorBuf.get(index4+2);190  -// float ca = colorBuf.get(index4+3);191  -//192  -// display.modelParams0[0] = r * cr;193  -// display.modelParams0[1] = g * cg;194  -// display.modelParams0[2] = b * cb;195  -//196  -// display.modelParams5[1] = opacity * ca;197  -//198  -// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);199  -// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);200  -//201  -// RandomNode.globalseed = (int)sizeBuf.get(index3+2); // i;202  -// RandomNode.globalseed2 = RandomNode.globalseed;203  -//204  -//// gl.glColor4f(cr,cg,cb,ca);205  -// // gl.glScalef(1024/16,1024/16,1024/16);206  - geo.Draw/*Node*/(display,null,selected, blocked);207  -208  - gl.glPopMatrix();209  -210  - double step = size/4; //211  -212  - if (i == 0 || size == 0 || distancenext > 8*size || distancenext < step)213  - continue;214  -215  - int nbsteps = (int)(distancenext/step);216  -217  - step = distancenext/nbsteps;218  -219  - cVector next = points.get(i-1);220  -221  - tmp.set(next);222  - tmp.sub(v);223  - tmp.normalize();224  - tmp.mul(step);225  -226  - // calculate next size227  - mindist = Double.MAX_VALUE;228  -229  - double nextsize = minimumSize;230  -231  - if (i > 1)232  - {233  - cVector w = points.get(i-2);234  -235  - double dist = w.distance(next);236  -237  - if (mindist > dist)238  - {239  - mindist = dist;240  - nextsize = mindist*resizefactor;241  - }242  - }243  -244  - double dist = v.distance(next);245  -246  - if (mindist > dist)247  - {248  - mindist = dist;249  - nextsize = mindist*resizefactor;250  - }251  -252  - if (nextsize < minimumSize)253  - nextsize = minimumSize;254  - if (nextsize > maximumSize)255  - nextsize = maximumSize;256  - //257  -258  - double count = 0;259  -260  - while (distancenext > 0.000000001) // step261  - {262  - gl.glPushMatrix();263  -264  - gl.glTranslated(tx + tmp.x*count, ty + tmp.y*count, tz + tmp.z*count);265  -266  - double K = count/nbsteps;267  -268  - double intersize = K*nextsize + (1-K)*size;269  -270  - gl.glScaled(intersize,intersize,intersize);271  -272  - geo.Draw/*Node*/(display,null,selected,blocked);273  -274  - count++;275  -276  - distancenext -= step;277  -278  - gl.glPopMatrix();279  - }280  -281  - if (count != nbsteps)282  - assert(count == nbsteps);283  -284  - // gl.glScalef(16.0f/1024,16.0f/1024,16.0f/1024);285  - //gl.glTranslatef(-tx,-ty,-tz);286  -287  - gl.glMatrixMode(gl.GL_TEXTURE);288  - gl.glPopMatrix();289  - }290  -291  - if (!cf)292  - gl.glDisable(gl.GL_CULL_FACE);293  -294  -// display.modelParams0[0] = r;295  -// display.modelParams0[1] = g;296  -// display.modelParams0[2] = b;297  -//298  -// display.modelParams5[1] = opacity;299  -//300  -// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 0, display.modelParams0, 0);301  -// gl.glProgramEnvParameter4fvARB(gl.GL_FRAGMENT_PROGRAM_ARB, 5, display.modelParams5, 0);302  -303  - gl.glMatrixMode(gl.GL_MODELVIEW);304  - }305  -306  -307 106 void createEditWindow(GroupEditor callee, boolean newWindow) 308 107 { 309 108 //editWindow = (new SphereEditor(this, deepCopy(), callee)).GetEditor(); cLinker.java
.. .. @@ -34,7 +34,7 @@ 34 34 //if(count <= 0) 35 35 // return; 36 36 37  - if(display.DrawMode() == display.SELECTION || CameraPane.DEBUG_SELECTION)37  + if(display.DrawMode() == display.SELECTION || display.IsDebugSelection())38 38 { 39 39 super.draw(display, root, selected, blocked); 40 40 return; iCameraPane.java
.. .. @@ -6,6 +6,8 @@ 6 6 static final public int SHADOW = 2; 7 7 static final public int OCCLUSION = 3; 8 8 9  + boolean IsDebugSelection();10  +9 11 boolean IsBoxMode(); 10 12 11 13 void ClearDepth(); .. .. @@ -33,12 +35,15 @@ 33 35 void PushTextureMatrix(double[][] matrix, int count); 34 36 void PopTextureMatrix(double[][] matrix); 35 37 38  + Camera[] Cameras();39  +36 40 Camera EyeCamera(); 37  -38 41 Camera LightCamera(); 39  -42  + Camera ManipCamera();40 43 Camera RenderCamera(); 41 44 45  + cVector TargetLookAt();46  +42 47 // Should be cMaterial 43 48 void PushMaterial(Object3D obj, boolean selected); 44 49 void PushMaterial2(Object3D obj, boolean selected); .. .. @@ -54,4 +59,6 @@ 54 59 void DrawFace(Object3D obj, Vertex pv, Vertex qv, Vertex rv, Face face); 55 60 56 61 void DrawParticles(TriMesh geo, Object3D shape, boolean selected, boolean rotate); 62  +63  + void PrepOcclusion(BoundaryRep br, double[][] transform);57 64 }