Normand Briere
2019-09-08 4a303a7b3635adfee8f46ac76af4e1b7b4a7029b
Box.java
....@@ -1,6 +1,9 @@
11 public class Box extends Object3D implements java.io.Serializable
22 {
3
+ static final long serialVersionUID = 0;
34
5
+ boolean open;
6
+
47 Box()
58 {
69 inPnt = new cVector();
....@@ -8,9 +11,6 @@
811 minima = LA.newVector(-0.5, 0, -0.5);
912 maxima = LA.newVector(0.5, 1, 0.5);
1013 bRep = new BoundaryRep();
11
- bRep.redimension(8, 12);
12
- for (int i=0; i < 12; i++)
13
- bRep.setFace(i, faces[i]);
1414
1515 recalculate();
1616 CreateMaterial();
....@@ -23,14 +23,14 @@
2323 return rec;
2424 }
2525
26
- protected void deepCopySelf(Object3D other)
26
+ protected void deepCopyNode(Object3D other)
2727 {
28
- super.deepCopySelf(other);
29
- Box rec = (Box)other;
30
- rec.minima = new cVector();
31
- LA.vecCopy(minima, rec.minima);
32
- rec.maxima = new cVector();
33
- LA.vecCopy(maxima, rec.maxima);
28
+ super.deepCopyNode(other);
29
+// Box rec = (Box)other;
30
+// rec.minima = new cVector();
31
+// LA.vecCopy(minima, rec.minima);
32
+// rec.maxima = new cVector();
33
+// LA.vecCopy(maxima, rec.maxima);
3434 }
3535
3636 void createEditWindow(GroupEditor callee, boolean newWindow)
....@@ -38,12 +38,12 @@
3838 //editWindow = new BoxEditor(this, deepCopy(), callee);
3939 /**/
4040 if (newWindow)
41
- objectUI = new ObjEditor(this, deepCopy(), callee);
41
+ objectUI = new BoxEditor(this, deepCopy(), callee);
4242 else
43
- objectUI = new ObjEditor(this, callee);
43
+ objectUI = new BoxEditor(this, callee);
4444 editWindow = objectUI.GetEditor();
45
- if (!newWindow)
46
- ((ObjEditor)objectUI).SetupUI2(callee);
45
+// if (!newWindow)
46
+// ((ObjEditor)objectUI).SetupUI2(callee);
4747 /**/
4848 }
4949
....@@ -63,6 +63,19 @@
6363
6464 void recalculate()
6565 {
66
+ if (open)
67
+ {
68
+ bRep.redimension(8, 8);
69
+ for (int i=0; i < 8; i++)
70
+ bRep.setFace(i, facesopen[i]);
71
+ }
72
+ else
73
+ {
74
+ bRep.redimension(8, 12);
75
+ for (int i=0; i < 12; i++)
76
+ bRep.setFace(i, faces[i]);
77
+ }
78
+
6679 for (int i=0; i < 8; i++)
6780 {
6881 double x = i >= 4 ? maxima.x : minima.x;
....@@ -70,7 +83,7 @@
7083 double z = i % 2 != 0 ? maxima.z : minima.z;
7184 bRep.setVertex(i, x, y, z, umap[i], vmap[i]);
7285 }
73
-
86
+
7487 // bRep.Trim(false, false);
7588
7689 super.recalculate();
....@@ -78,7 +91,7 @@
7891
7992 void getBounds(cVector min, cVector max, boolean xform)
8093 {
81
- super.getBounds(minima, maxima, xform);
94
+ super.getBounds(min, max, xform);
8295 // july 2014 LA.vecCopy(minima, min);
8396 // LA.vecCopy(maxima, max);
8497 // if (xform)
....@@ -105,10 +118,10 @@
105118 cVector minima;
106119 cVector maxima;
107120 static float umap[] = {
108
- 0, 1, 0, 1, 1, 0, 1, 0
121
+ 0, 1, 0, 1, 1, 0, 1, 0,
109122 };
110123 static float vmap[] = {
111
- 0, 0, 1, 1, 1, 1, 0, 0
124
+ 1, 1, 0, 0, 1, 1, 0, 0,
112125 };
113126 static int faces[][] = {
114127 {
....@@ -138,5 +151,33 @@
138151 }
139152 };
140153
154
+ static int facesopen[][] = {
155
+ {
156
+ 0, 1, 3
157
+ }, {
158
+ 0, 3, 2
159
+ }, {
160
+// 2, 3, 7
161
+// }, {
162
+// 2, 7, 6
163
+// }, {
164
+ 1, 5, 7
165
+ }, {
166
+ 1, 7, 3
167
+ }, {
168
+ 4, 6, 7
169
+ }, {
170
+ 4, 7, 5
171
+ }, {
172
+// 0, 4, 5
173
+// }, {
174
+// 0, 5, 1
175
+// }, {
176
+ 0, 2, 6
177
+ }, {
178
+ 0, 6, 4
179
+ }
180
+ };
181
+
141182 protected cVector inPnt;
142183 }