.. | .. |
---|
1 | 1 | public class Box extends Object3D implements java.io.Serializable |
---|
2 | 2 | { |
---|
| 3 | + static final long serialVersionUID = 0; |
---|
3 | 4 | |
---|
| 5 | + boolean open; |
---|
| 6 | + |
---|
4 | 7 | Box() |
---|
5 | 8 | { |
---|
6 | 9 | inPnt = new cVector(); |
---|
.. | .. |
---|
8 | 11 | minima = LA.newVector(-0.5, 0, -0.5); |
---|
9 | 12 | maxima = LA.newVector(0.5, 1, 0.5); |
---|
10 | 13 | bRep = new BoundaryRep(); |
---|
11 | | - bRep.redimension(8, 12); |
---|
12 | | - for (int i=0; i < 12; i++) |
---|
13 | | - bRep.setFace(i, faces[i]); |
---|
14 | 14 | |
---|
15 | 15 | recalculate(); |
---|
16 | 16 | CreateMaterial(); |
---|
.. | .. |
---|
23 | 23 | return rec; |
---|
24 | 24 | } |
---|
25 | 25 | |
---|
26 | | - protected void deepCopySelf(Object3D other) |
---|
| 26 | + protected void deepCopyNode(Object3D other) |
---|
27 | 27 | { |
---|
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); |
---|
34 | 34 | } |
---|
35 | 35 | |
---|
36 | 36 | void createEditWindow(GroupEditor callee, boolean newWindow) |
---|
.. | .. |
---|
38 | 38 | //editWindow = new BoxEditor(this, deepCopy(), callee); |
---|
39 | 39 | /**/ |
---|
40 | 40 | if (newWindow) |
---|
41 | | - objectUI = new ObjEditor(this, deepCopy(), callee); |
---|
| 41 | + objectUI = new BoxEditor(this, deepCopy(), callee); |
---|
42 | 42 | else |
---|
43 | | - objectUI = new ObjEditor(this, callee); |
---|
| 43 | + objectUI = new BoxEditor(this, callee); |
---|
44 | 44 | editWindow = objectUI.GetEditor(); |
---|
45 | | - if (!newWindow) |
---|
46 | | - ((ObjEditor)objectUI).SetupUI2(callee); |
---|
| 45 | +// if (!newWindow) |
---|
| 46 | +// ((ObjEditor)objectUI).SetupUI2(callee); |
---|
47 | 47 | /**/ |
---|
48 | 48 | } |
---|
49 | 49 | |
---|
.. | .. |
---|
63 | 63 | |
---|
64 | 64 | void recalculate() |
---|
65 | 65 | { |
---|
| 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 | + |
---|
66 | 79 | for (int i=0; i < 8; i++) |
---|
67 | 80 | { |
---|
68 | 81 | double x = i >= 4 ? maxima.x : minima.x; |
---|
.. | .. |
---|
70 | 83 | double z = i % 2 != 0 ? maxima.z : minima.z; |
---|
71 | 84 | bRep.setVertex(i, x, y, z, umap[i], vmap[i]); |
---|
72 | 85 | } |
---|
73 | | - |
---|
| 86 | + |
---|
74 | 87 | // bRep.Trim(false, false); |
---|
75 | 88 | |
---|
76 | 89 | super.recalculate(); |
---|
.. | .. |
---|
78 | 91 | |
---|
79 | 92 | void getBounds(cVector min, cVector max, boolean xform) |
---|
80 | 93 | { |
---|
81 | | - super.getBounds(minima, maxima, xform); |
---|
| 94 | + super.getBounds(min, max, xform); |
---|
82 | 95 | // july 2014 LA.vecCopy(minima, min); |
---|
83 | 96 | // LA.vecCopy(maxima, max); |
---|
84 | 97 | // if (xform) |
---|
.. | .. |
---|
105 | 118 | cVector minima; |
---|
106 | 119 | cVector maxima; |
---|
107 | 120 | static float umap[] = { |
---|
108 | | - 0, 1, 0, 1, 1, 0, 1, 0 |
---|
| 121 | + 0, 1, 0, 1, 1, 0, 1, 0, |
---|
109 | 122 | }; |
---|
110 | 123 | static float vmap[] = { |
---|
111 | | - 0, 0, 1, 1, 1, 1, 0, 0 |
---|
| 124 | + 1, 1, 0, 0, 1, 1, 0, 0, |
---|
112 | 125 | }; |
---|
113 | 126 | static int faces[][] = { |
---|
114 | 127 | { |
---|
.. | .. |
---|
138 | 151 | } |
---|
139 | 152 | }; |
---|
140 | 153 | |
---|
| 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 | + |
---|
141 | 182 | protected cVector inPnt; |
---|
142 | 183 | } |
---|