.. | .. |
---|
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; |
---|
.. | .. |
---|
5019 | 5043 | |
---|
5020 | 5044 | if (child == null) |
---|
5021 | 5045 | continue; |
---|
| 5046 | + |
---|
5022 | 5047 | if (child.HasTransparency() && child.size() != 0) |
---|
5023 | 5048 | { |
---|
5024 | 5049 | cTreePath leaf = child.Select(indexcount, deselect); |
---|
.. | .. |
---|
5028 | 5053 | if (leaf != null) |
---|
5029 | 5054 | { |
---|
5030 | 5055 | cTreePath tp = new cTreePath(this, leaf); |
---|
5031 | | - if (editWindow != null) |
---|
| 5056 | + ObjEditor window = GetWindow(); |
---|
| 5057 | + if (window != null) |
---|
5032 | 5058 | { |
---|
5033 | | - editWindow.Select(tp, deselect, true); |
---|
| 5059 | + window.Select(tp, deselect, true); |
---|
5034 | 5060 | } |
---|
5035 | 5061 | |
---|
5036 | 5062 | return tp; |
---|
.. | .. |
---|
5772 | 5798 | |
---|
5773 | 5799 | if (!selectmode && //display.DrawMode() != display.SELECTION && |
---|
5774 | 5800 | //(touched || (bRep != null && bRep.displaylist <= 0))) |
---|
5775 | | - (Globals.isLIVE() && Globals.COMPUTESHADOWWHENLIVE || touched && (bRep != null && bRep.displaylist <= 0))) |
---|
| 5801 | + (Globals.isLIVE() && Globals.COMPUTESHADOWWHENLIVE || touched && Globals.COMPUTESHADOWWHENLIVE)) // || (bRep != null && bRep.displaylist <= 0))) |
---|
5776 | 5802 | { |
---|
5777 | 5803 | Globals.lighttouched = true; |
---|
5778 | 5804 | } // all panes... |
---|
.. | .. |
---|
5904 | 5930 | if (GetBRep() != null) |
---|
5905 | 5931 | { |
---|
5906 | 5932 | display.NextIndex(); |
---|
| 5933 | + |
---|
5907 | 5934 | // vertex color conflict : gl.glCallList(list); |
---|
5908 | 5935 | DrawNode(display, root, selected); |
---|
5909 | 5936 | if (this instanceof BezierPatch) |
---|
.. | .. |
---|
7967 | 7994 | } |
---|
7968 | 7995 | |
---|
7969 | 7996 | transient ObjEditor editWindow; |
---|
| 7997 | + transient ObjEditor manipWindow; |
---|
| 7998 | + |
---|
| 7999 | + transient boolean pinned; |
---|
| 8000 | + |
---|
7970 | 8001 | transient ObjectUI objectUI; |
---|
7971 | 8002 | public static int povDepth = 0; |
---|
7972 | 8003 | private static cVector tbMin = new cVector(); |
---|