Normand Briere
2019-09-24 767be784dc7fe293bf5c5ee6507df242526be3ed
Box.java
....@@ -2,6 +2,8 @@
22 {
33 static final long serialVersionUID = 0;
44
5
+ boolean open;
6
+
57 Box()
68 {
79 inPnt = new cVector();
....@@ -9,9 +11,6 @@
911 minima = LA.newVector(-0.5, 0, -0.5);
1012 maxima = LA.newVector(0.5, 1, 0.5);
1113 bRep = new BoundaryRep();
12
- bRep.redimension(8, 12);
13
- for (int i=0; i < 12; i++)
14
- bRep.setFace(i, faces[i]);
1514
1615 recalculate();
1716 CreateMaterial();
....@@ -24,14 +23,14 @@
2423 return rec;
2524 }
2625
27
- protected void deepCopySelf(Object3D other)
26
+ protected void deepCopyNode(Object3D other)
2827 {
29
- super.deepCopySelf(other);
30
- Box rec = (Box)other;
31
- rec.minima = new cVector();
32
- LA.vecCopy(minima, rec.minima);
33
- rec.maxima = new cVector();
34
- 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);
3534 }
3635
3736 void createEditWindow(GroupEditor callee, boolean newWindow)
....@@ -39,12 +38,12 @@
3938 //editWindow = new BoxEditor(this, deepCopy(), callee);
4039 /**/
4140 if (newWindow)
42
- objectUI = new ObjEditor(this, deepCopy(), callee);
41
+ objectUI = new BoxEditor(this, deepCopy(), callee);
4342 else
44
- objectUI = new ObjEditor(this, callee);
43
+ objectUI = new BoxEditor(this, callee);
4544 editWindow = objectUI.GetEditor();
46
- if (!newWindow)
47
- ((ObjEditor)objectUI).SetupUI2(callee);
45
+// if (!newWindow)
46
+// ((ObjEditor)objectUI).SetupUI2(callee);
4847 /**/
4948 }
5049
....@@ -64,6 +63,19 @@
6463
6564 void recalculate()
6665 {
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
+
6779 for (int i=0; i < 8; i++)
6880 {
6981 double x = i >= 4 ? maxima.x : minima.x;
....@@ -71,7 +83,7 @@
7183 double z = i % 2 != 0 ? maxima.z : minima.z;
7284 bRep.setVertex(i, x, y, z, umap[i], vmap[i]);
7385 }
74
-
86
+
7587 // bRep.Trim(false, false);
7688
7789 super.recalculate();
....@@ -106,10 +118,10 @@
106118 cVector minima;
107119 cVector maxima;
108120 static float umap[] = {
109
- 0, 1, 0, 1, 1, 0, 1, 0
121
+ 0, 1, 0, 1, 1, 0, 1, 0,
110122 };
111123 static float vmap[] = {
112
- 0, 0, 1, 1, 1, 1, 0, 0
124
+ 1, 1, 0, 0, 1, 1, 0, 0,
113125 };
114126 static int faces[][] = {
115127 {
....@@ -139,5 +151,33 @@
139151 }
140152 };
141153
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
+
142182 protected cVector inPnt;
143183 }