.. | .. |
---|
17 | 17 | filecontent = null; |
---|
18 | 18 | } |
---|
19 | 19 | |
---|
| 20 | + boolean HasBigData() |
---|
| 21 | + { |
---|
| 22 | + return filecontent != null; |
---|
| 23 | + } |
---|
| 24 | + |
---|
| 25 | + void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) |
---|
| 26 | + { |
---|
| 27 | + Object3D o; |
---|
| 28 | + |
---|
| 29 | + if (hashtable.containsKey(GetUUID())) |
---|
| 30 | + { |
---|
| 31 | + o = hashtable.get(GetUUID()); |
---|
| 32 | + |
---|
| 33 | + //Grafreed.Assert(this.filecontent == ((FileObject)o).filecontent); |
---|
| 34 | + } |
---|
| 35 | + else |
---|
| 36 | + { |
---|
| 37 | + o = new Object3D("copy of " + this.name); |
---|
| 38 | + |
---|
| 39 | + hashtable.put(GetUUID(), o); |
---|
| 40 | + } |
---|
| 41 | + |
---|
| 42 | + ExtractBigData(o); |
---|
| 43 | + } |
---|
| 44 | + |
---|
| 45 | + void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) |
---|
| 46 | + { |
---|
| 47 | + if (!hashtable.containsKey(GetUUID())) |
---|
| 48 | + return; |
---|
| 49 | + |
---|
| 50 | + Object3D o = hashtable.get(GetUUID()); |
---|
| 51 | + |
---|
| 52 | + RestoreBigData(o); |
---|
| 53 | + } |
---|
| 54 | + |
---|
20 | 55 | boolean IsStatic() |
---|
21 | 56 | { |
---|
22 | 57 | return false; // ???? false; |
---|
23 | 58 | } |
---|
24 | 59 | |
---|
25 | | - void Reset() |
---|
26 | | - { |
---|
27 | | - // filecontent = null; |
---|
28 | | - } |
---|
| 60 | +// void Reset() |
---|
| 61 | +// { |
---|
| 62 | +// // filecontent = null; |
---|
| 63 | +// } |
---|
29 | 64 | |
---|
30 | 65 | void ClearUI() |
---|
31 | 66 | { |
---|
.. | .. |
---|
54 | 89 | else |
---|
55 | 90 | { |
---|
56 | 91 | filecontent = ObjEditor.ReadGFD/*z*/(name); |
---|
| 92 | + if (filecontent != null) |
---|
| 93 | + { |
---|
57 | 94 | filecontent.parent = null; |
---|
58 | 95 | filecontent.fileparent = this; |
---|
59 | 96 | filecontent.RepairTexture(); |
---|
| 97 | + } |
---|
60 | 98 | // stripify on load instead? |
---|
61 | 99 | // OK... |
---|
62 | 100 | // filecontent.Stripify(); // fine. faster and read-only anyway |
---|
.. | .. |
---|
78 | 116 | this.objfile = objfile; |
---|
79 | 117 | } |
---|
80 | 118 | |
---|
| 119 | + void ExtractBigData(Object3D o) |
---|
| 120 | + { |
---|
| 121 | + super.ExtractBigData(o); |
---|
| 122 | + |
---|
| 123 | + o.savefilecontent = this.filecontent; |
---|
| 124 | + |
---|
| 125 | + // filecontent is transient |
---|
| 126 | + this.filecontent = null; |
---|
| 127 | + } |
---|
| 128 | + |
---|
| 129 | + void RestoreBigData(Object3D o) |
---|
| 130 | + { |
---|
| 131 | + super.RestoreBigData(o); |
---|
| 132 | + |
---|
| 133 | + this.filecontent = o.savefilecontent; |
---|
| 134 | + } |
---|
| 135 | + |
---|
81 | 136 | Object3D deepCopy() |
---|
82 | 137 | { |
---|
83 | 138 | FileObject e = new FileObject(name, objfile); |
---|
.. | .. |
---|
85 | 140 | return e; |
---|
86 | 141 | } |
---|
87 | 142 | |
---|
88 | | - protected void deepCopySelf(Object3D other) |
---|
| 143 | + protected void deepCopyNode(Object3D other) |
---|
89 | 144 | { |
---|
90 | | - super.deepCopySelf(other); |
---|
| 145 | + super.deepCopyNode(other); |
---|
91 | 146 | } |
---|
92 | 147 | |
---|
93 | 148 | // void Draw(CameraPane display, Object3D /*Composite*/ root, boolean selected) |
---|