.. | .. |
---|
181 | 181 | return; |
---|
182 | 182 | } |
---|
183 | 183 | |
---|
184 | | - Object3D o = new Object3D(); |
---|
| 184 | + Object3D o = new Object3D("copy of " + this.name); |
---|
185 | 185 | |
---|
186 | 186 | hashtable.put(GetUUID(), o); |
---|
187 | 187 | |
---|
.. | .. |
---|
219 | 219 | if (!hashtable.containsKey(GetUUID())) |
---|
220 | 220 | return; |
---|
221 | 221 | |
---|
| 222 | + if (blockloop) |
---|
| 223 | + return; |
---|
| 224 | + |
---|
| 225 | + blockloop = true; |
---|
| 226 | + |
---|
222 | 227 | Object3D o = hashtable.get(GetUUID()); |
---|
223 | 228 | |
---|
224 | 229 | RestoreBigData(o); |
---|
225 | 230 | |
---|
226 | | - hashtable.remove(GetUUID()); |
---|
| 231 | + //hashtable.remove(GetUUID()); |
---|
227 | 232 | |
---|
228 | 233 | for (int i=0; i<Size(); i++) |
---|
229 | 234 | { |
---|
230 | 235 | get(i).RestoreBigData(hashtable); |
---|
231 | 236 | } |
---|
| 237 | + |
---|
| 238 | + blockloop = false; |
---|
232 | 239 | } |
---|
233 | 240 | |
---|
234 | 241 | void RestoreBigData(Object3D o) |
---|
.. | .. |
---|
2433 | 2440 | { |
---|
2434 | 2441 | editWindow.refreshContents(); |
---|
2435 | 2442 | } |
---|
| 2443 | + else |
---|
| 2444 | + { |
---|
| 2445 | + if (manipWindow != null) |
---|
| 2446 | + { |
---|
| 2447 | + manipWindow.refreshContents(); |
---|
| 2448 | + } |
---|
| 2449 | + } |
---|
| 2450 | + |
---|
2436 | 2451 | //if (parent != null) |
---|
2437 | 2452 | //parent.refreshEditWindow(); |
---|
2438 | 2453 | } |
---|
.. | .. |
---|
4963 | 4978 | } |
---|
4964 | 4979 | } |
---|
4965 | 4980 | |
---|
| 4981 | + ObjEditor GetWindow() |
---|
| 4982 | + { |
---|
| 4983 | + if (editWindow != null) |
---|
| 4984 | + return editWindow; |
---|
| 4985 | + |
---|
| 4986 | + return manipWindow; |
---|
| 4987 | + } |
---|
| 4988 | + |
---|
4966 | 4989 | cTreePath Select(int indexcount, boolean deselect) |
---|
4967 | 4990 | { |
---|
4968 | 4991 | if (hide || dontselect) |
---|
.. | .. |
---|
4999 | 5022 | if (leaf != null) |
---|
5000 | 5023 | { |
---|
5001 | 5024 | cTreePath tp = new cTreePath(this, leaf); |
---|
5002 | | - if (editWindow != null) |
---|
| 5025 | + ObjEditor window = GetWindow(); |
---|
| 5026 | + if (window != null) |
---|
5003 | 5027 | { |
---|
5004 | 5028 | //System.out.println("editWindow = " + editWindow + " vs " + this); |
---|
5005 | | - editWindow.Select(tp, deselect, true); |
---|
| 5029 | + window.Select(tp, deselect, true); |
---|
5006 | 5030 | } |
---|
5007 | 5031 | |
---|
5008 | 5032 | return tp; |
---|
.. | .. |
---|
5028 | 5052 | if (leaf != null) |
---|
5029 | 5053 | { |
---|
5030 | 5054 | cTreePath tp = new cTreePath(this, leaf); |
---|
5031 | | - if (editWindow != null) |
---|
| 5055 | + ObjEditor window = GetWindow(); |
---|
| 5056 | + if (window != null) |
---|
5032 | 5057 | { |
---|
5033 | | - editWindow.Select(tp, deselect, true); |
---|
| 5058 | + window.Select(tp, deselect, true); |
---|
5034 | 5059 | } |
---|
5035 | 5060 | |
---|
5036 | 5061 | return tp; |
---|
.. | .. |
---|
7967 | 7992 | } |
---|
7968 | 7993 | |
---|
7969 | 7994 | transient ObjEditor editWindow; |
---|
| 7995 | + transient ObjEditor manipWindow; |
---|
| 7996 | + |
---|
7970 | 7997 | transient ObjectUI objectUI; |
---|
7971 | 7998 | public static int povDepth = 0; |
---|
7972 | 7999 | private static cVector tbMin = new cVector(); |
---|